387806 Removing code to publish configuration mbeans as it is no longer needed
diff --git a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationAdminExporter.java b/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationAdminExporter.java
deleted file mode 100644
index fffecb1..0000000
--- a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationAdminExporter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 VMware Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   VMware Inc. - initial contribution
- *******************************************************************************/
-
-package org.eclipse.virgo.nano.config.internal;
-
-import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import javax.management.JMException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectInstance;
-import javax.management.ObjectName;
-
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.cm.ConfigurationEvent;
-import org.osgi.service.cm.ConfigurationListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-// TODO Remove alien calls made while holding this.monitor 
-public class ConfigurationAdminExporter implements ConfigurationListener {
-
-    private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    private final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-
-    private static final String OBJECT_NAME_PATTERN = "%s:type=Configuration,name=%s";
-
-    private final Map<String, ObjectInstance> configurationInfos = new HashMap<String, ObjectInstance>();
-
-    private final Object monitor = new Object();
-
-    private final String managementDomain;
-
-    private final ConfigurationAdmin configurationAdmin;
-
-    public ConfigurationAdminExporter(String managementDomain, ConfigurationAdmin configurationAdmin) {
-        this.managementDomain = managementDomain;
-        this.configurationAdmin = configurationAdmin;
-    }
-
-    public void init() {
-        synchronized (this.monitor) {
-            try {
-                for (Configuration configuration : configurationAdmin.listConfigurations(null)) {
-                    exportConfiguration(configuration.getPid());
-                }
-            } catch (Exception e) {
-                logger.warn("Could not enumerate existing configurations");
-            }
-        }
-    }
-
-    public void configurationEvent(ConfigurationEvent configurationEvent) {
-        String pid = configurationEvent.getPid();
-        if (ConfigurationEvent.CM_UPDATED == configurationEvent.getType()) {
-            exportConfiguration(pid);
-        } else if (ConfigurationEvent.CM_DELETED == configurationEvent.getType()) {
-            unexportConfiguration(pid);
-        }
-    }
-
-    private ObjectName getObjectName(String pid) throws MalformedObjectNameException, NullPointerException {
-        return new ObjectName(String.format(OBJECT_NAME_PATTERN, this.managementDomain, pid));
-    }
-
-    private void exportConfiguration(String pid) {
-        synchronized (this.monitor) {
-            if (!configurationInfos.containsKey(pid)) {
-                try {
-                    ConfigurationInfo configurationInfo = new ConfigurationAdminConfigurationInfo(this.configurationAdmin, pid);
-                    ObjectInstance objectInstance = server.registerMBean(configurationInfo, getObjectName(pid));
-                    this.configurationInfos.put(pid, objectInstance);
-                } catch (JMException e) {
-                    logger.warn("Unable to register MBean for configuration '{}'", pid);
-                }
-            }
-        }
-    }
-
-    private void unexportConfiguration(String pid) {
-        ObjectName objectName = null;
-        
-        synchronized (this.monitor) {
-            if (configurationInfos.containsKey(pid)) {
-                objectName = configurationInfos.remove(pid).getObjectName();
-            }
-        }
-        
-        if (objectName != null) {
-            try {
-                this.server.unregisterMBean(objectName);
-            } catch (JMException e) {
-                this.logger.warn("Unable to unregister MBean for configuration '{}'", pid);
-            }
-        }
-    }
-
-    /**
-     * 
-     */
-    public void stop() {
-        List<ObjectName> objectNames = new ArrayList<ObjectName>();
-        
-        synchronized (this.monitor) {
-            Set<Entry<String, ObjectInstance>> entries = this.configurationInfos.entrySet();
-            for (Entry<String, ObjectInstance> entry : entries) {
-                objectNames.add(entry.getValue().getObjectName());
-            }
-            this.configurationInfos.clear();
-        }
-        
-        for (ObjectName objectName : objectNames) {
-            try {
-                this.server.unregisterMBean(objectName);
-            } catch (JMException jme) {
-                logger.warn("Unable to unregister MBean '{}' during stop", objectName);
-            }
-        }   
-    }
-}
diff --git a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationInitialiser.java b/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationInitialiser.java
index 372c786..2ed925c 100644
--- a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationInitialiser.java
+++ b/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConfigurationInitialiser.java
@@ -13,16 +13,14 @@
 
 import java.io.IOException;
 
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.cm.ConfigurationListener;
-
 import org.eclipse.virgo.medic.dump.DumpContributor;
 import org.eclipse.virgo.medic.eventlog.EventLogger;
 import org.eclipse.virgo.nano.config.internal.commandline.CommandLinePropertiesSource;
 import org.eclipse.virgo.nano.config.internal.ovf.OvfPropertiesSource;
 import org.eclipse.virgo.util.osgi.ServiceRegistrationTracker;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.cm.ConfigurationAdmin;
 
 /**
  * ConfigurationInitialiser
@@ -35,9 +33,7 @@
 public final class ConfigurationInitialiser {
 
     private final ServiceRegistrationTracker tracker = new ServiceRegistrationTracker();
-    
-    private volatile ConfigurationAdminExporter configAdminExporter;
-    
+        
     private ConsoleConfigurationConvertor consoleConfigurationConvertor;
 
     public KernelConfiguration start(BundleContext context, EventLogger eventLogger) throws IOException {
@@ -58,7 +54,6 @@
         KernelConfiguration configuration = new KernelConfiguration(context);
 
         publishConfiguration(context, eventLogger, configuration, configAdmin);
-        this.configAdminExporter = initializeConfigAdminExporter(context, configuration, configAdmin);
         initializeDumpContributor(context, configAdmin);
         initializeConsoleConfigurationConvertor(context, configAdmin);
         return configuration;
@@ -79,13 +74,6 @@
         ConfigurationAdminDumpContributor dumpContributor = new ConfigurationAdminDumpContributor(configAdmin);
         this.tracker.track(context.registerService(DumpContributor.class.getName(), dumpContributor, null));
     }
-
-    private ConfigurationAdminExporter initializeConfigAdminExporter(BundleContext context, KernelConfiguration configuration, ConfigurationAdmin configAdmin) {
-        ConfigurationAdminExporter exporter = new ConfigurationAdminExporter(configuration.getDomain(), configAdmin);
-        this.tracker.track(context.registerService(ConfigurationListener.class.getName(), exporter, null));
-        exporter.init();
-        return exporter;
-    }
     
     private void initializeConsoleConfigurationConvertor(BundleContext context, ConfigurationAdmin configAdmin) {
         consoleConfigurationConvertor = new ConsoleConfigurationConvertor(context, configAdmin);
@@ -95,12 +83,5 @@
     public void stop() {
         this.tracker.unregisterAll();
         consoleConfigurationConvertor.stop();
-        
-        ConfigurationAdminExporter local = this.configAdminExporter;
-        
-        if (local != null) {
-            this.configAdminExporter = null;
-            local.stop();
-        }
     }
 }
diff --git a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConsoleConfigurationConvertor.java b/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConsoleConfigurationConvertor.java
index ec02c83..5a22fb4 100644
--- a/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConsoleConfigurationConvertor.java
+++ b/org.eclipse.virgo.nano.core/src/main/java/org/eclipse/virgo/nano/config/internal/ConsoleConfigurationConvertor.java
@@ -3,12 +3,9 @@
 
 import java.io.IOException;
 import java.net.BindException;
-import java.net.InetAddress;
 import java.net.ServerSocket;
-import java.net.UnknownHostException;
 import java.util.Dictionary;
 import java.util.Hashtable;
-import java.util.Properties;
 
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
@@ -150,9 +147,10 @@
 
     class ConsoleConfigurator implements ManagedService {
 
-        private Dictionary properties;
+        private Dictionary<String,String> properties;
 
-        @Override
+        @SuppressWarnings("unchecked")
+		@Override
         public void updated(Dictionary props) throws ConfigurationException {
             if (props != null) {
                 this.properties = props;
@@ -164,14 +162,14 @@
                 ConsoleConfigurationConvertor.this.configuratorRegistration.setProperties(this.properties);
             }
 
-            String telnetHost = (String) this.properties.get(TELNET_HOST);
-            String telnetPort = (String) this.properties.get(TELNET_PORT);
-            String telnetEnabled = (String) this.properties.get(TELNET_ENABLED);
+            String telnetHost = this.properties.get(TELNET_HOST);
+            String telnetPort = this.properties.get(TELNET_PORT);
+            String telnetEnabled = this.properties.get(TELNET_ENABLED);
             updateConfiguration(TELNET_PID, telnetHost, telnetPort, telnetEnabled);
 
-            String sshHost = (String) this.properties.get(SSH_HOST);
-            String sshPort = (String) this.properties.get(SSH_PORT);
-            String sshEnabled = (String) this.properties.get(SSH_ENABLED);
+            String sshHost = this.properties.get(SSH_HOST);
+            String sshPort = this.properties.get(SSH_PORT);
+            String sshEnabled = this.properties.get(SSH_ENABLED);
             updateConfiguration(SSH_PID, sshHost, sshPort, sshEnabled);
         }
     }
diff --git a/org.eclipse.virgo.nano.core/src/test/java/org/eclipse/virgo/nano/config/internal/ConfigurationPublisherTests.java b/org.eclipse.virgo.nano.core/src/test/java/org/eclipse/virgo/nano/config/internal/ConfigurationPublisherTests.java
index 7a78556..3efb93c 100644
--- a/org.eclipse.virgo.nano.core/src/test/java/org/eclipse/virgo/nano/config/internal/ConfigurationPublisherTests.java
+++ b/org.eclipse.virgo.nano.core/src/test/java/org/eclipse/virgo/nano/config/internal/ConfigurationPublisherTests.java
@@ -12,7 +12,6 @@
 package org.eclipse.virgo.nano.config.internal;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 
 import java.io.File;
 import java.io.IOException;
@@ -23,8 +22,6 @@
 import java.util.TreeMap;
 
 import org.eclipse.virgo.test.stubs.service.cm.StubConfigurationAdmin;
-import org.eclipse.virgo.nano.config.internal.ConfigurationPublisher;
-import org.eclipse.virgo.nano.config.internal.PropertiesSource;
 import org.junit.Test;
 import org.osgi.service.cm.Configuration;
 
diff --git a/org.eclipse.virgo.nano.war.deployer/.classpath b/org.eclipse.virgo.nano.war.deployer/.classpath
index 0d4eb5e..a53a603 100644
--- a/org.eclipse.virgo.nano.war.deployer/.classpath
+++ b/org.eclipse.virgo.nano.war.deployer/.classpath
@@ -25,7 +25,7 @@
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.0.v20120508-2119/org.eclipse.osgi-3.8.0.v20120508-2119.jar" sourcepath="/NANO_IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic/3.6.0.D-20120820125756/org.eclipse.virgo.medic-3.6.0.D-20120820125756.jar" sourcepath="/NANO_IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic/3.1.0.D-20111205152504/org.eclipse.virgo.medic-sources-3.1.0.D-20111205152504.jar"/>
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic.core/3.6.0.D-20120820125756/org.eclipse.virgo.medic.core-3.6.0.D-20120820125756.jar"/>
-	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.1.0.RELEASE/org.eclipse.gemini.web.core-2.1.0.RELEASE.jar" sourcepath="/NANO_IVY_CACHE/org.eclipse.gemini.web/org.eclipse.gemini.web.core/2.1.0.BUILD-20120525195844/org.eclipse.gemini.web.core-sources-2.1.0.BUILD-20120525195844.jar"/>
+	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.2.0.BUILD-20120820064721/org.eclipse.gemini.web.core-2.2.0.BUILD-20120820064721.jar" sourcepath="/NANO_IVY_CACHE/org.eclipse.gemini.web/org.eclipse.gemini.web.core/2.1.0.BUILD-20120525195844/org.eclipse.gemini.web.core-sources-2.1.0.BUILD-20120525195844.jar"/>
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.equinox.simpleconfigurator.manipulator/2.0.0.v20110808-1657/org.eclipse.equinox.simpleconfigurator.manipulator-2.0.0.v20110808-1657.jar"/>
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.equinox.simpleconfigurator/1.0.300.v20110815-1744/org.eclipse.equinox.simpleconfigurator-1.0.300.v20110815-1744.jar" sourcepath="/NANO_IVY_CACHE/org.eclipse.osgi/org.eclipse.equinox.simpleconfigurator/1.0.300.v20110815-1744/org.eclipse.equinox.simpleconfigurator-sources-1.0.300.v20110815-1744.jar"/>
 	<classpathentry kind="var" path="NANO_IVY_CACHE/org.eclipse.virgo.mirrored/org.slf4j.api/1.6.4.v20120130-2120/org.slf4j.api-1.6.4.v20120130-2120.jar" sourcepath="/NANO_IVY_CACHE/org.slf4j/com.springsource.slf4j.api/1.6.1/com.springsource.slf4j.api-sources-1.6.1.jar"/>