summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-01-18 17:55:53 +0000
committerAlex Rudyy <orudyy@apache.org>2013-01-18 17:55:53 +0000
commit02761632159ea75911384e83f277ffaf463d9fb8 (patch)
tree48038feccf02f9e330ad5425fbf9737d2d2eb908
parent3d736a72c6e202d1213d0b27ff18bb9b237cdfd8 (diff)
downloadqpid-python-02761632159ea75911384e83f277ffaf463d9fb8.tar.gz
QPID-4390: Introduce defaults in jmx management plugin
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-config-qpid-4390@1435277 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java60
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java18
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java12
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXConfiguration.java59
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java46
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java70
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java28
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java9
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java5
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java8
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java29
-rw-r--r--qpid/java/broker/src/main/resources/default.json4
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java34
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java3
19 files changed, 184 insertions, 217 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index 7860c6ee05..9c7ac10892 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -23,6 +23,7 @@ package org.apache.qpid.server.management.plugin;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.UUID;
@@ -58,6 +59,7 @@ import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.User;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
+import org.apache.qpid.server.plugin.PluginFactory;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.SessionManager;
@@ -71,31 +73,57 @@ public class HttpManagement extends AbstractPluginAdapter
{
private final Logger _logger = Logger.getLogger(HttpManagement.class);
+ // 10 minutes by default
+ public static final int DEFAULT_TIMEOUT_IN_SECONDS = 60 * 10;
+
+ public static final String TIME_OUT = "sessionTimeout";
+ public static final String KEY_STORE_PATH = "keyStorePath";
+ public static final String KEY_STORE_PASSWORD = "keyStorePassword";
+ public static final String HTTP_BASIC_AUTHENTICATION_ENABLED = "httpBasicAuthenticationEnabled";
+ public static final String HTTPS_BASIC_AUTHENTICATION_ENABLED = "httpsBasicAuthenticationEnabled";
+ public static final String HTTP_SASL_AUTHENTICATION_ENABLED = "httpSaslAuthenticationEnabled";
+ public static final String HTTPS_SASL_AUTHENTICATION_ENABLED = "httpsSaslAuthenticationEnabled";
+
+ public static final String PLUGIN_NAME = "MANAGEMENT-HTTP";
+
private static final Collection<String> AVAILABLE_ATTRIBUTES = new HashSet<String>(Plugin.AVAILABLE_ATTRIBUTES);
static
{
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.HTTP_BASIC_AUTHENTICATION_ENABLED);
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.HTTPS_BASIC_AUTHENTICATION_ENABLED);
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.HTTP_SASL_AUTHENTICATION_ENABLED);
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.HTTPS_SASL_AUTHENTICATION_ENABLED);
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.TIME_OUT);
- AVAILABLE_ATTRIBUTES.add(HttpManagementFactory.PLUGIN_TYPE);
+ AVAILABLE_ATTRIBUTES.add(HTTP_BASIC_AUTHENTICATION_ENABLED);
+ AVAILABLE_ATTRIBUTES.add(HTTPS_BASIC_AUTHENTICATION_ENABLED);
+ AVAILABLE_ATTRIBUTES.add(HTTP_SASL_AUTHENTICATION_ENABLED);
+ AVAILABLE_ATTRIBUTES.add(HTTPS_SASL_AUTHENTICATION_ENABLED);
+ AVAILABLE_ATTRIBUTES.add(TIME_OUT);
+ AVAILABLE_ATTRIBUTES.add(PluginFactory.PLUGIN_TYPE);
}
-
public static final String ENTRY_POINT_PATH = "/management";
private static final String OPERATIONAL_LOGGING_NAME = "Web";
+ protected static final boolean DEFAULT_HTTP_BASIC_AUTHENTICATION_ENABLED = false;
+ protected static final boolean DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED = true;
+ protected static final boolean DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED = true;
+ protected static final boolean DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED = true;
+
+ @SuppressWarnings("serial")
+ public static final Map<String, Object> DEFAULTS = new HashMap<String, Object>()
+ {{
+ put(HTTP_BASIC_AUTHENTICATION_ENABLED, DEFAULT_HTTP_BASIC_AUTHENTICATION_ENABLED);
+ put(HTTPS_BASIC_AUTHENTICATION_ENABLED, DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED);
+ put(HTTP_SASL_AUTHENTICATION_ENABLED, DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED);
+ put(HTTPS_SASL_AUTHENTICATION_ENABLED, DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED);
+ }};
+
private final Broker _broker;
private Server _server;
private final HttpConfiguration _configuration;
- public HttpManagement(UUID id, Broker broker, HttpConfiguration configuration, Map<String, Object> defaults)
+ public HttpManagement(UUID id, Broker broker, HttpConfiguration configuration)
{
- super(id, defaults);
+ super(id, DEFAULTS, null);
_broker = broker;
_configuration = configuration;
addParent(Broker.class, broker);
@@ -357,29 +385,29 @@ public class HttpManagement extends AbstractPluginAdapter
@Override
public Object getAttribute(String name)
{
- if(HttpManagementFactory.HTTP_BASIC_AUTHENTICATION_ENABLED.equals(name))
+ if(HTTP_BASIC_AUTHENTICATION_ENABLED.equals(name))
{
return _configuration.isHttpBasicAuthenticationEnabled();
}
- else if(HttpManagementFactory.HTTPS_BASIC_AUTHENTICATION_ENABLED.equals(name))
+ else if(HTTPS_BASIC_AUTHENTICATION_ENABLED.equals(name))
{
return _configuration.isHttpsBasicAuthenticationEnabled();
}
- else if(HttpManagementFactory.HTTP_SASL_AUTHENTICATION_ENABLED.equals(name))
+ else if(HTTP_SASL_AUTHENTICATION_ENABLED.equals(name))
{
return _configuration.isHttpSaslAuthenticationEnabled();
}
- else if(HttpManagementFactory.HTTPS_SASL_AUTHENTICATION_ENABLED.equals(name))
+ else if(HTTPS_SASL_AUTHENTICATION_ENABLED.equals(name))
{
return _configuration.isHttpSaslAuthenticationEnabled();
}
- else if(HttpManagementFactory.TIME_OUT.equals(name))
+ else if(TIME_OUT.equals(name))
{
return _configuration.getSessionTimeout();
}
- else if(HttpManagementFactory.PLUGIN_TYPE.equals(name))
+ else if(PluginFactory.PLUGIN_TYPE.equals(name))
{
- return HttpManagementFactory.PLUGIN_NAME;
+ return PLUGIN_NAME;
}
return super.getAttribute(name);
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java
index ceae949ae2..3b4e5cf6c6 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementFactory.java
@@ -18,6 +18,7 @@
*/
package org.apache.qpid.server.management.plugin;
+import static org.apache.qpid.server.management.plugin.HttpManagement.*;
import static org.apache.qpid.server.util.MapValueConverter.getBooleanAttribute;
import static org.apache.qpid.server.util.MapValueConverter.getIntegerAttribute;
import static org.apache.qpid.server.util.MapValueConverter.getStringAttribute;
@@ -31,18 +32,6 @@ import org.apache.qpid.server.plugin.PluginFactory;
public class HttpManagementFactory implements PluginFactory
{
- // 10 minutes by default
- private static final int DEFAULT_TIMEOUT_IN_SECONDS = 60 * 10;
-
- public static final String TIME_OUT = "sessionTimeout";
- public static final String KEY_STORE_PATH = "keyStorePath";
- public static final String KEY_STORE_PASSWORD = "keyStorePassword";
- public static final String HTTP_BASIC_AUTHENTICATION_ENABLED = "httpBasicAuthenticationEnabled";
- public static final String HTTPS_BASIC_AUTHENTICATION_ENABLED = "httpsBasicAuthenticationEnabled";
- public static final String HTTP_SASL_AUTHENTICATION_ENABLED = "httpSaslAuthenticationEnabled";
- public static final String HTTPS_SASL_AUTHENTICATION_ENABLED = "httpsSaslAuthenticationEnabled";
-
- public static final String PLUGIN_NAME = "MANAGEMENT-HTTP";
@Override
public Plugin createInstance(UUID id, Map<String, Object> attributes, Broker broker)
@@ -61,8 +50,7 @@ public class HttpManagementFactory implements PluginFactory
getStringAttribute(KEY_STORE_PATH, attributes, null),
getStringAttribute(KEY_STORE_PASSWORD, attributes, null)
);
- //TODO: create defaults
- Map<String, Object> defaults = null;
- return new HttpManagement( id, broker, configuration, defaults);
+
+ return new HttpManagement( id, broker, configuration);
}
}
diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
index 7951944fae..9984ddf544 100644
--- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
+++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementFactoryTest.java
@@ -51,8 +51,8 @@ public class HttpManagementFactoryTest extends QpidTestCase
public void testCreateInstanceWithoutKeystore() throws Exception
{
- _attributes.put(PluginFactory.PLUGIN_TYPE, HttpManagementFactory.PLUGIN_NAME);
- _attributes.put(HttpManagementFactory.TIME_OUT, SESSION_TIMEOUT);
+ _attributes.put(PluginFactory.PLUGIN_TYPE, HttpManagement.PLUGIN_NAME);
+ _attributes.put(HttpManagement.TIME_OUT, SESSION_TIMEOUT);
HttpManagement management = (HttpManagement) _pluginFactory.createInstance(_id, _attributes, _broker);
@@ -64,10 +64,10 @@ public class HttpManagementFactoryTest extends QpidTestCase
public void testCreateInstanceWithKeystore() throws Exception
{
- _attributes.put(PluginFactory.PLUGIN_TYPE, HttpManagementFactory.PLUGIN_NAME);
- _attributes.put(HttpManagementFactory.KEY_STORE_PASSWORD, KEY_STORE_PASSWORD);
- _attributes.put(HttpManagementFactory.KEY_STORE_PATH, KEY_STORE_PATH);
- _attributes.put(HttpManagementFactory.TIME_OUT, SESSION_TIMEOUT);
+ _attributes.put(PluginFactory.PLUGIN_TYPE, HttpManagement.PLUGIN_NAME);
+ _attributes.put(HttpManagement.KEY_STORE_PASSWORD, KEY_STORE_PASSWORD);
+ _attributes.put(HttpManagement.KEY_STORE_PATH, KEY_STORE_PATH);
+ _attributes.put(HttpManagement.TIME_OUT, SESSION_TIMEOUT);
HttpManagement management = (HttpManagement) _pluginFactory.createInstance(_id, _attributes, _broker);
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXConfiguration.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXConfiguration.java
deleted file mode 100644
index 989708cd88..0000000000
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXConfiguration.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. 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. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.jmx;
-
-public class JMXConfiguration
-{
- private final boolean _platformMBeanServer;
- private final String _managementKeyStorePath;
- private final String _managementKeyStorePassword;
- private final boolean _managementRightsInferAllAccess;
-
- public JMXConfiguration( boolean platformMBeanServer, String managementKeyStorePath,
- String managementKeyStorePassword, boolean managementRightsInferAllAccess)
- {
- _platformMBeanServer = platformMBeanServer;
- _managementKeyStorePath = managementKeyStorePath;
- _managementKeyStorePassword = managementKeyStorePassword;
- _managementRightsInferAllAccess = managementRightsInferAllAccess;
- }
-
- public boolean isPlatformMBeanServer()
- {
- return _platformMBeanServer;
- }
-
- public String getManagementKeyStorePath()
- {
- return _managementKeyStorePath;
- }
-
- public String getManagementKeyStorePassword()
- {
- return _managementKeyStorePassword;
- }
-
- public boolean isManagementRightsInferAllAccess()
- {
- return _managementRightsInferAllAccess;
- }
-
-}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java
index 9e31d8e003..9eb03dd280 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java
@@ -21,6 +21,7 @@
package org.apache.qpid.server.jmx;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.messages.ManagementConsoleMessages;
@@ -64,8 +65,6 @@ import java.util.HashMap;
*/
public class JMXManagedObjectRegistry implements ManagedObjectRegistry
{
- public static final String USE_CUSTOM_RMI_SOCKET_FACTORY = "qpid.use_custom_rmi_socket_factory";
-
private static final Logger _log = Logger.getLogger(JMXManagedObjectRegistry.class);
private static final String OPERATIONAL_LOGGING_NAME = "JMX";
@@ -79,24 +78,21 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry
private final Port _registryPort;
private final Port _connectorPort;
- private final JMXConfiguration _jmxConfiguration;
-
- public JMXManagedObjectRegistry(
+ public JMXManagedObjectRegistry(
Broker broker,
Port connectorPort, Port registryPort,
- JMXConfiguration jmxConfiguration)
+ JMXManagement jmxManagement)
{
_broker = broker;
_registryPort = registryPort;
_connectorPort = connectorPort;
- boolean platformServer = jmxConfiguration.isPlatformMBeanServer();
+ boolean usePlatformServer = (Boolean)jmxManagement.getAttribute(JMXManagement.USE_PLATFORM_MBEAN_SERVER);
_mbeanServer =
- platformServer ? ManagementFactory.getPlatformMBeanServer()
+ usePlatformServer ? ManagementFactory.getPlatformMBeanServer()
: MBeanServerFactory.createMBeanServer(ManagedObject.DOMAIN);
- _jmxConfiguration = jmxConfiguration;
- }
+ }
@Override
public void start() throws IOException
@@ -126,24 +122,15 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry
if (connectorSslEnabled)
{
- String managementKeyStorePath = _jmxConfiguration.getManagementKeyStorePath();
- String managementKeyStorePassword = _jmxConfiguration.getManagementKeyStorePath();
-
- //set the SSL related system properties used by the SSL RMI socket factories to the values
- //given in the configuration file
- checkKeyStorePathExistsAndIsReadable(managementKeyStorePath );
+ checkKeyStorePathExistsAndIsReadable();
- CurrentActor.get().message(ManagementConsoleMessages.SSL_KEYSTORE(managementKeyStorePath));
+ CurrentActor.get().message(ManagementConsoleMessages.SSL_KEYSTORE(System.getProperty("javax.net.ssl.keyStore")));
- if (managementKeyStorePassword == null)
+ if (System.getProperty("javax.net.ssl.keyStorePassword") == null)
{
throw new IllegalConfigurationException(
"JMX management SSL keystore password not defined, unable to start requested SSL protected JMX server");
}
- else
- {
- System.setProperty("javax.net.ssl.keyStorePassword", managementKeyStorePassword);
- }
//create the SSL RMI socket factories
csf = new SslRMIClientSocketFactory();
@@ -165,7 +152,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry
connectorEnv.put(JMXConnectorServer.AUTHENTICATOR, rmipa);
System.setProperty("java.rmi.server.randomIDs", "true");
- boolean useCustomSocketFactory = Boolean.parseBoolean(System.getProperty(USE_CUSTOM_RMI_SOCKET_FACTORY, Boolean.TRUE.toString()));
+ boolean useCustomSocketFactory = Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY, Boolean.TRUE.toString()));
/*
* Start a RMI registry on the management port, to hold the JMX RMI ConnectorServer stub.
@@ -242,7 +229,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry
};
//Add the custom invoker as an MBeanServerForwarder, and start the RMIConnectorServer.
- MBeanServerForwarder mbsf = MBeanInvocationHandlerImpl.newProxyInstance(_broker, _jmxConfiguration);
+ MBeanServerForwarder mbsf = MBeanInvocationHandlerImpl.newProxyInstance(_broker);
_cs.setMBeanServerForwarder(mbsf);
// Install a ManagementLogonLogoffReporter so we can report as users logon/logoff
@@ -278,20 +265,17 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry
return rmiRegistry;
}
- private void checkKeyStorePathExistsAndIsReadable(String keyStorePath) throws FileNotFoundException
+ private void checkKeyStorePathExistsAndIsReadable() throws FileNotFoundException
{
- //check the keystore path value is valid
+ String keyStorePath = System.getProperty("javax.net.ssl.keyStore");
+
if (keyStorePath == null)
{
throw new IllegalConfigurationException(
- "JMX management SSL keystore path not defined, unable to start SSL protected JMX ConnectorServer");
+ "JVM system proprty 'javax.net.ssl.keyStore' is not set, unable to start SSL protected JMX ConnectorServer");
}
else
{
- //ensure the system property is set (for use by SslRMIClientSocketFactory and SslRMIServerSocketFactory)
- System.setProperty("javax.net.ssl.keyStore", keyStorePath);
-
- //check the file is usable
File ksf = new File(keyStorePath);
if (!ksf.exists())
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
index 293af28d6b..25a56f7a00 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
@@ -49,32 +49,55 @@ import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.AbstractPluginAdapter;
+import org.apache.qpid.server.plugin.PluginFactory;
import org.apache.qpid.server.plugin.QpidServiceLoader;
+import org.apache.qpid.server.util.MapValueConverter;
public class JMXManagement extends AbstractPluginAdapter implements ConfigurationChangeListener
{
private static final Logger LOGGER = Logger.getLogger(JMXManagement.class);
- private static final Collection<String> AVAILABLE_ATTRIBUTES = new HashSet<String>(Plugin.AVAILABLE_ATTRIBUTES);
- static
- {
- AVAILABLE_ATTRIBUTES.add(JMXManagementFactory.MANAGEMENT_RIGHTS_INFER_ALL_ACCESS);
- AVAILABLE_ATTRIBUTES.add(JMXManagementFactory.PLUGIN_TYPE);
- AVAILABLE_ATTRIBUTES.add(JMXManagementFactory.USE_PLATFORM_MBEAN_SERVER);
- }
+ public static final String PLUGIN_TYPE = "MANAGEMENT-JMX";
+
+ // attributes
+ public static final String USE_PLATFORM_MBEAN_SERVER = "usePlatformMBeanServer";
+ public static final String NAME = "name";
+
+ // default values
+ public static final String DEFAULT_NAME = "JMXManagement";
+ public static final boolean DEFAULT_USE_PLATFORM_MBEAN_SERVER = true;
+
+ @SuppressWarnings("serial")
+ private static final Collection<String> AVAILABLE_ATTRIBUTES = Collections.unmodifiableCollection(new HashSet<String>(Plugin.AVAILABLE_ATTRIBUTES){{
+ add(NAME);
+ add(USE_PLATFORM_MBEAN_SERVER);
+ add(PluginFactory.PLUGIN_TYPE);
+ }});
+
+ @SuppressWarnings("serial")
+ private static final Map<String, Object> DEFAULTS = new HashMap<String, Object>(){{
+ put(USE_PLATFORM_MBEAN_SERVER, DEFAULT_USE_PLATFORM_MBEAN_SERVER);
+ put(NAME, DEFAULT_NAME);
+ put(PluginFactory.PLUGIN_TYPE, PLUGIN_TYPE);
+ }};
+
+ @SuppressWarnings("serial")
+ private static final Map<String, Class<?>> ATTRIBUTE_TYPES = new HashMap<String, Class<?>>(){{
+ put(USE_PLATFORM_MBEAN_SERVER, Boolean.class);
+ put(NAME, String.class);
+ put(PluginFactory.PLUGIN_TYPE, String.class);
+ }};
private final Broker _broker;
private JMXManagedObjectRegistry _objectRegistry;
private final Map<ConfiguredObject, AMQManagedObject> _children = new HashMap<ConfiguredObject, AMQManagedObject>();
- private final JMXConfiguration _jmxConfiguration;
-
- public JMXManagement(UUID id, Broker broker, JMXConfiguration jmxConfiguration, Map<String, Object> defaults)
+ public JMXManagement(UUID id, Broker broker, Map<String, Object> attributes)
{
- super(id, defaults);
+ super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES));
_broker = broker;
- _jmxConfiguration = jmxConfiguration;
+ addParent(Broker.class, broker);
}
@Override
@@ -129,7 +152,7 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
throw new IllegalStateException("No JMX RMI port found supporting protocol " + Protocol.RMI);
}
- _objectRegistry = new JMXManagedObjectRegistry(_broker, connectorPort, registryPort, _jmxConfiguration);
+ _objectRegistry = new JMXManagedObjectRegistry(_broker, connectorPort, registryPort, this);
_broker.addChangeListener(this);
@@ -294,30 +317,13 @@ public class JMXManagement extends AbstractPluginAdapter implements Configuratio
@Override
public String getName()
{
- return "JMXManagement";
+ return (String)getAttribute(NAME);
}
@Override
public Collection<String> getAttributeNames()
{
- return Collections.unmodifiableCollection(AVAILABLE_ATTRIBUTES);
+ return AVAILABLE_ATTRIBUTES;
}
- @Override
- public Object getAttribute(String name)
- {
- if(JMXManagementFactory.MANAGEMENT_RIGHTS_INFER_ALL_ACCESS.equals(name))
- {
- return _jmxConfiguration.isManagementRightsInferAllAccess();
- }
- else if(JMXManagementFactory.USE_PLATFORM_MBEAN_SERVER.equals(name))
- {
- return _jmxConfiguration.isPlatformMBeanServer();
- }
- else if(JMXManagementFactory.PLUGIN_TYPE.equals(name))
- {
- return JMXManagementFactory.PLUGIN_NAME;
- }
- return super.getAttribute(name);
- }
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java
index 50d87d2172..c2186c372b 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementFactory.java
@@ -18,9 +18,6 @@
*/
package org.apache.qpid.server.jmx;
-import static org.apache.qpid.server.util.MapValueConverter.getBooleanAttribute;
-import static org.apache.qpid.server.util.MapValueConverter.getStringAttribute;
-
import java.util.Map;
import java.util.UUID;
@@ -33,35 +30,16 @@ public class JMXManagementFactory implements PluginFactory
{
private static final Logger LOGGER = Logger.getLogger(JMXManagementFactory.class);
- public static final String USE_PLATFORM_MBEAN_SERVER = "usePlatformMBeanServer";
-
- //TODO: re-factor key store settings
- public static final String KEY_STORE_PATH = "keyStorePath";
- public static final String KEY_STORE_PASSWORD = "keyStorePassword";
-
- //TODO: make it set via system property
- public static final String MANAGEMENT_RIGHTS_INFER_ALL_ACCESS = "managementRightsInferAllAccess";
-
- public static final String PLUGIN_NAME = "MANAGEMENT-JMX";
-
@Override
public Plugin createInstance(UUID id, Map<String, Object> attributes, Broker broker)
{
- if (PLUGIN_NAME.equals(attributes.get(PLUGIN_TYPE)))
+ if (JMXManagement.PLUGIN_TYPE.equals(attributes.get(PLUGIN_TYPE)))
{
- JMXConfiguration jmxConfiguration = new JMXConfiguration(
- getBooleanAttribute(USE_PLATFORM_MBEAN_SERVER, attributes, true),
- getStringAttribute(KEY_STORE_PATH, attributes, null),
- getStringAttribute(KEY_STORE_PASSWORD, attributes, null),
- getBooleanAttribute(MANAGEMENT_RIGHTS_INFER_ALL_ACCESS, attributes, true));
-
- //TODO: create defaults
- Map<String, Object> defaults = null;
- return new JMXManagement(id, broker, jmxConfiguration, defaults);
+ return new JMXManagement(id, broker, attributes);
}
else
{
- if(LOGGER.isDebugEnabled())
+ if (LOGGER.isDebugEnabled())
{
LOGGER.debug("Skipping registration of JMX plugin as JMX Management disabled in config.");
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
index dbd9d0d240..8bc2afb176 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
@@ -22,6 +22,7 @@ package org.apache.qpid.server.jmx;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.actors.ManagementActor;
import org.apache.qpid.server.model.Broker;
@@ -62,16 +63,16 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler
private final boolean _managementRightsInferAllAccess;
private final Broker _broker;
- MBeanInvocationHandlerImpl(Broker broker, boolean managementRightsInferAllAccess)
+ MBeanInvocationHandlerImpl(Broker broker)
{
- _managementRightsInferAllAccess = managementRightsInferAllAccess;
+ _managementRightsInferAllAccess = Boolean.valueOf(System.getProperty(BrokerProperties.PROPERTY_MANAGEMENT_RIGHTS_INFER_ALL_ACCESS, "true"));
_broker = broker;
_logActor = new ManagementActor(broker.getRootMessageLogger());
}
- public static MBeanServerForwarder newProxyInstance(Broker broker, JMXConfiguration configuration)
+ public static MBeanServerForwarder newProxyInstance(Broker broker)
{
- final InvocationHandler handler = new MBeanInvocationHandlerImpl(broker, configuration.isManagementRightsInferAllAccess());
+ final InvocationHandler handler = new MBeanInvocationHandlerImpl(broker);
final Class<?>[] interfaces = new Class[] { MBeanServerForwarder.class };
Object proxy = Proxy.newProxyInstance(MBeanServerForwarder.class.getClassLoader(), interfaces, handler);
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
index e26ef743ff..5af1369239 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/JMXManagementFactoryTest.java
@@ -37,11 +37,14 @@ public class JMXManagementFactoryTest extends QpidTestCase
public void testJMXConfigured() throws Exception
{
- _attributes.put(PluginFactory.PLUGIN_TYPE, JMXManagementFactory.PLUGIN_NAME);
+ _attributes.put(PluginFactory.PLUGIN_TYPE, JMXManagement.PLUGIN_TYPE);
JMXManagement jmxManagement = (JMXManagement) _jmxManagementFactory.createInstance(_id, _attributes, _broker);
assertNotNull(jmxManagement);
+ assertEquals("Unexpected plugin type", JMXManagement.PLUGIN_TYPE, jmxManagement.getAttribute(JMXManagementFactory.PLUGIN_TYPE));
+ assertEquals("Unexpected default mbean platform", JMXManagement.DEFAULT_USE_PLATFORM_MBEAN_SERVER, jmxManagement.getAttribute(JMXManagement.USE_PLATFORM_MBEAN_SERVER));
+ assertEquals("Unexpected default name", JMXManagement.DEFAULT_NAME, jmxManagement.getAttribute(JMXManagement.NAME));
}
public void testCreateInstanceReturnsNullWhenPluginTypeMissing()
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java
index 414aacbdad..58d7604ee2 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java
@@ -23,6 +23,9 @@ public class BrokerProperties
public static final String PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_EXCLUDES = "qpid.broker_default_amqp_protocol_excludes";
public static final String PROPERTY_BROKER_DEFAULT_AMQP_PROTOCOL_INCLUDES = "qpid.broker_default_amqp_protocol_includes";
+ public static final String PROPERTY_MANAGEMENT_RIGHTS_INFER_ALL_ACCESS = "qpid.broker_management_rights_infer_all_access";
+ public static final String PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY = "qpid.broker_use_custom_rmi_socket_factory";
+
private BrokerProperties()
{
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
index 4cf2e5796c..7ecb1954a8 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
@@ -55,7 +55,7 @@ public class ServerConfiguration extends AbstractConfiguration
public static final int DEFAULT_HTTPS_MANAGEMENT_PORT = 8443;
public static final long DEFAULT_MINIMUM_ALERT_REPEAT_GAP = 30000l;
- public static final String USE_CUSTOM_RMI_SOCKET_FACTORY = "qpid.use_custom_rmi_socket_factory";
+ public static final String USE_CUSTOM_RMI_SOCKET_FACTORY = BrokerProperties.PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY;
public static final String QPID_HOME = "QPID_HOME";
public static final String QPID_WORK = "QPID_WORK";
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java
index dbec0f27aa..275a0c736c 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/startup/GroupProviderRecoverer.java
@@ -54,9 +54,7 @@ public class GroupProviderRecoverer implements ConfiguredObjectRecoverer<GroupPr
{
throw new IllegalConfigurationException("Cannot create GroupManager from attributes : " + attributes);
}
- //TODO: add defaults
- Map<String, Object> defaults = null;
- GroupProviderAdapter groupProviderAdapter = new GroupProviderAdapter(configurationEntry.getId(), groupManager, broker, defaults);
+ GroupProviderAdapter groupProviderAdapter = new GroupProviderAdapter(configurationEntry.getId(), groupManager, broker);
return groupProviderAdapter;
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
index 2b0d75e90b..4ebe45e1ee 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
@@ -35,9 +35,9 @@ import org.apache.qpid.server.model.Statistics;
public abstract class AbstractPluginAdapter extends AbstractAdapter implements Plugin
{
- protected AbstractPluginAdapter(UUID id, Map<String, Object> defaults)
+ protected AbstractPluginAdapter(UUID id, Map<String, Object> defaults, Map<String, Object> attributes)
{
- super(id, defaults);
+ super(id, defaults, attributes);
}
@Override
@@ -122,10 +122,6 @@ public abstract class AbstractPluginAdapter extends AbstractAdapter implements P
{
return getId();
}
- else if (NAME.equals(name))
- {
- return getName();
- }
else if (STATE.equals(name))
{
return getActualState();
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
index c73de436cc..ecb10202e9 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/GroupProviderAdapter.java
@@ -47,9 +47,9 @@ public class GroupProviderAdapter extends AbstractAdapter implements
{
private final GroupManager _groupManager;
private final Broker _broker;
- public GroupProviderAdapter(UUID id, GroupManager groupManager, Broker broker, Map<String, Object> defaults)
+ public GroupProviderAdapter(UUID id, GroupManager groupManager, Broker broker)
{
- super(id, defaults);
+ super(id);
if (groupManager == null)
{
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
index 880dfedce4..dd3610373f 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
@@ -146,15 +146,7 @@ public class VirtualHostImpl implements VirtualHost, IConnectionRegistry.Registr
_bindingFactory = new BindingFactory(this);
- String storeType = hostConfig.getConfig().getString("store.type");
- if (storeType == null)
- {
- _messageStore = initialiseMessageStore(hostConfig.getMessageStoreClass());
- }
- else
- {
- _messageStore = new MessageStoreCreator().createMessageStore(storeType);
- }
+ _messageStore = initialiseMessageStore(hostConfig);
configureMessageStore(hostConfig);
@@ -283,14 +275,29 @@ public class VirtualHostImpl implements VirtualHost, IConnectionRegistry.Registr
}
final MessageStore messageStore = (MessageStore) o;
- final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(this, clazz.getSimpleName());
+ return messageStore;
+ }
+
+ private MessageStore initialiseMessageStore(VirtualHostConfiguration hostConfig) throws Exception
+ {
+ String storeType = hostConfig.getConfig().getString("store.type");
+ MessageStore messageStore = null;
+ if (storeType == null)
+ {
+ messageStore = initialiseMessageStore(hostConfig.getMessageStoreClass());
+ }
+ else
+ {
+ messageStore = new MessageStoreCreator().createMessageStore(storeType);
+ }
+
+ final MessageStoreLogSubject storeLogSubject = new MessageStoreLogSubject(this, messageStore.getClass().getSimpleName());
OperationalLoggingListener.listen(messageStore, storeLogSubject);
messageStore.addEventListener(new BeforeActivationListener(), Event.BEFORE_ACTIVATE);
messageStore.addEventListener(new AfterActivationListener(), Event.AFTER_ACTIVATE);
messageStore.addEventListener(new BeforeCloseListener(), Event.BEFORE_CLOSE);
messageStore.addEventListener(new BeforePassivationListener(), Event.BEFORE_PASSIVATE);
-
return messageStore;
}
diff --git a/qpid/java/broker/src/main/resources/default.json b/qpid/java/broker/src/main/resources/default.json
index 44c6744377..a81a3924e3 100644
--- a/qpid/java/broker/src/main/resources/default.json
+++ b/qpid/java/broker/src/main/resources/default.json
@@ -66,8 +66,6 @@
}, {
"type" : "Plugin",
"pluginType" : "MANAGEMENT-JMX",
- "name" : "jmxManagement",
- "usePlatformMBeanServer" : true,
- "managementRightsInferAllAccess" : true
+ "name" : "jmxManagement"
} ]
} \ No newline at end of file
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java
index bac2a1e1b4..559a7f8aaf 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostImplTest.java
@@ -22,7 +22,9 @@ package org.apache.qpid.server.virtualhost;
import static org.mockito.Mockito.mock;
+import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.qpid.server.configuration.VirtualHostConfiguration;
@@ -122,6 +124,14 @@ public class VirtualHostImplTest extends QpidTestCase
assertEquals(State.ACTIVE, vhost.getState());
}
+ public void testVirtualHostHavingStoreSetAsTypeBecomesActive() throws Exception
+ {
+ String virtualHostName = getName();
+ VirtualHost host = createVirtualHostUsingStoreType(virtualHostName);
+ assertNotNull(host);
+ assertEquals(State.ACTIVE, host.getState());
+ }
+
public void testVirtualHostBecomesStoppedOnClose() throws Exception
{
File config = writeConfigFile(getName(), getName(), getName() +".direct", false, new String[0]);
@@ -133,6 +143,17 @@ public class VirtualHostImplTest extends QpidTestCase
assertEquals(0, vhost.getHouseKeepingActiveCount());
}
+ public void testVirtualHostHavingStoreSetAsTypeBecomesStoppedOnClose() throws Exception
+ {
+ String virtualHostName = getName();
+ VirtualHost host = createVirtualHostUsingStoreType(virtualHostName);
+ assertNotNull(host);
+ assertEquals(State.ACTIVE, host.getState());
+ host.close();
+ assertEquals(State.STOPPED, host.getState());
+ assertEquals(0, host.getHouseKeepingActiveCount());
+ }
+
/**
* Tests that specifying an unknown exchange to bind the queue to results in failure to create the vhost
*/
@@ -265,4 +286,17 @@ public class VirtualHostImplTest extends QpidTestCase
return tmpFile;
}
+
+ private VirtualHost createVirtualHostUsingStoreType(String virtualHostName) throws ConfigurationException, Exception
+ {
+ Broker broker = BrokerTestHelper.createBrokerMock();
+ _virtualHostRegistry = broker.getVirtualHostRegistry();
+
+ Configuration config = new PropertiesConfiguration();
+ config.setProperty("store.type", MemoryMessageStore.TYPE);
+ VirtualHostConfiguration configuration = new VirtualHostConfiguration(virtualHostName, config, broker);
+ VirtualHost host = new VirtualHostImpl(_virtualHostRegistry, mock(StatisticsGatherer.class), new SecurityManager(null), configuration);
+ _virtualHostRegistry.registerVirtualHost(host);
+ return host;
+ }
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java
index c6bc9a8d5b..84e38586ff 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java
@@ -21,6 +21,7 @@
package org.apache.qpid.systest.management.jmx;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.ServerConfiguration;
import org.apache.qpid.server.logging.AbstractTestLogging;
import org.apache.qpid.test.utils.JMXTestUtils;
@@ -266,7 +267,7 @@ public class ManagementLoggingTest extends AbstractTestLogging
{
if (isJavaBroker())
{
- setSystemProperty("qpid.use_custom_rmi_socket_factory", "false");
+ setSystemProperty(BrokerProperties.PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY, "false");
startBrokerAndCreateMonitor(true, false);
final JMXTestUtils jmxUtils = new JMXTestUtils(this);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
index ab2a3738bb..43707e0550 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
@@ -61,6 +61,7 @@ import org.apache.qpid.server.BrokerLauncher;
import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.ProtocolExclusion;
import org.apache.qpid.server.ProtocolInclusion;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.ServerConfiguration;
import org.apache.qpid.server.protocol.AmqpProtocolVersion;
import org.apache.qpid.server.store.MessageStoreConstants;
@@ -394,7 +395,7 @@ public class QpidBrokerTestCase extends QpidTestCase
if (_brokerType.equals(BrokerType.INTERNAL) && !existingInternalBroker())
{
- setSystemProperty("qpid.use_custom_rmi_socket_factory", "false");
+ setSystemProperty(BrokerProperties.PROPERTY_USE_CUSTOM_RMI_SOCKET_FACTORY, "false");
testConfig = saveTestConfiguration(port, testConfiguration);
_logger.info("Set test.config property to: " + testConfig);
_logger.info("Set test.virtualhosts property to: " + virtualHostsConfig);