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"/>