Author: kwall
Date: Fri Jun 15 13:21:51 2012
New Revision: 1350610

URL: http://svn.apache.org/viewvc?rev=1350610&view=rev
Log:
NO-JIRA: Allow JMX to be turned off from configuration

Modified:
    
qpid/branches/java-config-and-management/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanTest.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/JMXActivator.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
    
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
    
qpid/branches/java-config-and-management/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
    
qpid/branches/java-config-and-management/qpid/java/systests/etc/config-systests-settings.xml
    
qpid/branches/java-config-and-management/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/MessageStatisticsTest.java

Modified: 
qpid/branches/java-config-and-management/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanTest.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanTest.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/bdbstore/jmx/src/test/java/org/apache/qpid/server/store/berkeleydb/jmx/BDBHAMessageStoreManagerMBeanTest.java
 Fri Jun 15 13:21:51 2012
@@ -38,6 +38,7 @@ import junit.framework.TestCase;
 
 import org.apache.qpid.AMQStoreException;
 import org.apache.qpid.server.jmx.AMQManagedObject;
+import org.apache.qpid.server.jmx.ManagedObjectRegistry;
 import org.apache.qpid.server.logging.SystemOutMessageLogger;
 import org.apache.qpid.server.logging.actors.CurrentActor;
 import org.apache.qpid.server.logging.actors.TestLogActor;
@@ -68,6 +69,7 @@ public class BDBHAMessageStoreManagerMBe
         CurrentActor.set(new TestLogActor(new SystemOutMessageLogger()));
         _store = mock(BDBHAMessageStore.class);
         _mBeanParent = mock(AMQManagedObject.class);
+        
when(_mBeanParent.getRegistry()).thenReturn(mock(ManagedObjectRegistry.class));
         _mBean = new BDBHAMessageStoreManagerMBean(_store, _mBeanParent);
     }
 

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/JMXActivator.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/JMXActivator.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/JMXActivator.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/JMXActivator.java
 Fri Jun 15 13:21:51 2012
@@ -20,46 +20,89 @@
  */
 package org.apache.qpid.server.jmx;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
 
 public class JMXActivator implements  BundleActivator
 {
-    private static final Logger _logger = Logger.getLogger(JMXActivator.class);
+    private static final Logger LOGGER = Logger.getLogger(JMXActivator.class);
 
 
-    private BundleContext _ctx;
     private String _bundleName;
     private JMXService _jmxService;
 
+    private List<ServiceRegistration> _registeredServices;
+
 
     public void start(final BundleContext ctx) throws Exception
     {
-        _ctx = ctx;
-        _jmxService = new JMXService();
-        _jmxService.start();
-        _bundleName = ctx.getBundle().getSymbolicName();
-
-        // register the service
-        _logger.info("Registering jmx plugin: " + _bundleName);
-        _ctx.registerService(JMXService.class.getName(), _jmxService, null);
-        _ctx.registerService(ConfigurationPluginFactory.class.getName(), 
JMXConfiguration.FACTORY, null);
+        boolean jmxManagementEnabled = 
ApplicationRegistry.getInstance().getConfiguration().getJMXManagementEnabled();
+
+        if (jmxManagementEnabled)
+        {
+            _jmxService = new JMXService();
+            _jmxService.start();
+
+            _bundleName = ctx.getBundle().getSymbolicName();
+            LOGGER.info("Registering jmx plugin: " + _bundleName);
+
+            _registeredServices = registerServices(ctx);
+        }
+        else
+        {
+            LOGGER.debug("Skipping registration of JMX plugin as JMX 
Management disabled in config. ");
+        }
     }
 
     public void stop(final BundleContext bundleContext) throws Exception
     {
-        _logger.info("Stopping jmx plugin: " + _bundleName);
         try
         {
-            _jmxService.close();
+            if (_jmxService != null)
+            {
+                LOGGER.info("Stopping jmx plugin: " + _bundleName);
+                _jmxService.close();
+            }
+
+            if (_registeredServices != null)
+            {
+                unregisterServices();
+            }
         }
         finally
         {
-            // null object references
             _jmxService = null;
-            _ctx = null;
+            _registeredServices = null;
+        }
+    }
+
+
+    private List<ServiceRegistration> registerServices(BundleContext ctx)
+    {
+        List<ServiceRegistration> serviceRegistrations = new 
ArrayList<ServiceRegistration>();
+
+        ServiceRegistration jmxServiceRegistration = 
ctx.registerService(JMXService.class.getName(), _jmxService, null);
+        ServiceRegistration jmxConfigFactoryRegistration = 
ctx.registerService(ConfigurationPluginFactory.class.getName(), 
JMXConfiguration.FACTORY, null);
+
+        serviceRegistrations.add(jmxServiceRegistration);
+        serviceRegistrations.add(jmxConfigFactoryRegistration);
+        return serviceRegistrations;
+    }
+
+    private void unregisterServices()
+    {
+        for (Iterator<ServiceRegistration> iterator = 
_registeredServices.iterator(); iterator.hasNext();)
+        {
+            ServiceRegistration service = iterator.next();
+            service.unregister();
         }
     }
 }

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
 Fri Jun 15 13:21:51 2012
@@ -59,11 +59,20 @@ public class Management
             {
                 if(port.getTransports().contains(Transport.TCP))
                 {
-                    _servers.add(createServer(port.getPort()));
+                    int portNumber = port.getPort();
+                    if (_logger.isInfoEnabled())
+                    {
+                        _logger.info("Creating web server on port " + 
portNumber);
+                    }
+                    _servers.add(createServer(portNumber));
                 }
             }
         }
 
+        if (_logger.isDebugEnabled())
+        {
+            _logger.info(_servers.size() + " server(s) defined");
+        }
 
     }
 

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
 Fri Jun 15 13:21:51 2012
@@ -640,16 +640,11 @@ public class ServerConfiguration extends
         return getBooleanValue("queue.auto_register", true);
     }
 
-    public boolean getManagementEnabled()
+    public boolean getJMXManagementEnabled()
     {
         return getBooleanValue("management.enabled", true);
     }
 
-    public void setManagementEnabled(boolean enabled)
-    {
-        getConfig().setProperty("management.enabled", enabled);
-    }
-
     public int getHeartBeatDelay()
     {
         return getIntValue("heartbeat.delay", 5);

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
 Fri Jun 15 13:21:51 2012
@@ -287,25 +287,17 @@ public class ServerConfigurationTest ext
         assertEquals(false, _serverConfig.getQueueAutoRegister());
     }
 
-    public void testGetManagementEnabled() throws ConfigurationException
+    public void testGetJMXManagementEnabled() throws ConfigurationException
     {
         // Check default
         _serverConfig.initialise();
-        assertEquals(true, _serverConfig.getManagementEnabled());
+        assertEquals(true, _serverConfig.getJMXManagementEnabled());
 
         // Check value we set
         _config.setProperty("management.enabled", false);
         _serverConfig = new ServerConfiguration(_config);
         _serverConfig.initialise();
-        assertEquals(false, _serverConfig.getManagementEnabled());
-    }
-
-    public void testSetManagementEnabled() throws ConfigurationException
-    {
-        // Check value we set
-        _serverConfig.initialise();
-        _serverConfig.setManagementEnabled(false);
-        assertEquals(false, _serverConfig.getManagementEnabled());
+        assertEquals(false, _serverConfig.getJMXManagementEnabled());
     }
 
     public void testGetManagementRightsInferAllAccess() throws Exception

Modified: 
qpid/branches/java-config-and-management/qpid/java/systests/etc/config-systests-settings.xml
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/systests/etc/config-systests-settings.xml?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/systests/etc/config-systests-settings.xml
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/systests/etc/config-systests-settings.xml
 Fri Jun 15 13:21:51 2012
@@ -56,6 +56,9 @@
             
<keyStorePath>${QPID_HOME}/../test-profiles/test_resources/ssl/java_broker_keystore.jks</keyStorePath>
             <keyStorePassword>password</keyStorePassword>
         </ssl>
+        <http>
+            <enabled>false</enabled>
+        </http>
     </management>
     <advanced>
         <framesize>65535</framesize>

Modified: 
qpid/branches/java-config-and-management/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/MessageStatisticsTest.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/MessageStatisticsTest.java?rev=1350610&r1=1350609&r2=1350610&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/MessageStatisticsTest.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/MessageStatisticsTest.java
 Fri Jun 15 13:21:51 2012
@@ -50,11 +50,11 @@ public class MessageStatisticsTest exten
     @Override
     public void setUp() throws Exception
     {
-        super.setUp();
-
         _jmxUtils = new JMXTestUtils(this, TEST_USER, TEST_PASSWORD);
         _jmxUtils.setUp();
 
+        super.setUp();
+
         _brokerUrl = getBroker().toString();
         _test1 = new AMQConnection(_brokerUrl, TEST_USER, TEST_PASSWORD, 
"clientid", "test");
         _dev = new AMQConnection(_brokerUrl, TEST_USER, TEST_PASSWORD, 
"clientid", "development");



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to