diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-04-11 15:30:38 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-04-11 15:30:38 +0000 |
| commit | 58a7f5e8759446fd6c2cc5876581bc414d78d9bd (patch) | |
| tree | 21b0e5263029bb9bfa9f2c90643ef7d9a6ba38ed /qpid/java/broker-plugins | |
| parent | c7f2cd12b45f051cd1d421d8c440f12d007a50b4 (diff) | |
| download | qpid-python-58a7f5e8759446fd6c2cc5876581bc414d78d9bd.tar.gz | |
QPID-5680 : [Java Broker] move configuration defualts to annotations
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1586683 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
10 files changed, 133 insertions, 113 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java index be2f2e3163..0c7361de90 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProvider.java @@ -50,9 +50,6 @@ public class ACLFileAccessControlProvider @ManagedAttributeField private String _path; - @ManagedAttributeField - private String _type; - public ACLFileAccessControlProvider(Broker broker, Map<String, Object> attributes) { @@ -80,12 +77,6 @@ public class ACLFileAccessControlProvider return _path; } - @ManagedAttribute( automate = true ) - public String getType() - { - return _type; - } - @Override public String setName(String currentName, String desiredName) throws IllegalStateException, AccessControlException { diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java index 8c752061ef..07345e7f0a 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java @@ -20,6 +20,9 @@ */ package org.apache.qpid.server.protocol.v0_10; +import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT; +import static org.apache.qpid.util.Serial.gt; + import java.security.AccessController; import java.security.Principal; import java.security.PrivilegedAction; @@ -44,16 +47,14 @@ import java.util.concurrent.atomic.AtomicReference; import javax.security.auth.Subject; -import org.apache.qpid.server.connection.SessionPrincipal; -import org.apache.qpid.server.consumer.ConsumerImpl; -import org.apache.qpid.server.model.ConfigurationChangeListener; -import org.apache.qpid.server.model.ConfiguredObject; -import org.apache.qpid.server.model.Consumer; -import org.apache.qpid.server.protocol.ConsumerListener; -import org.apache.qpid.server.store.StoreException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.TransactionTimeoutHelper; import org.apache.qpid.server.TransactionTimeoutHelper.CloseAction; +import org.apache.qpid.server.connection.SessionPrincipal; +import org.apache.qpid.server.consumer.ConsumerImpl; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.messages.ChannelMessages; @@ -61,11 +62,16 @@ import org.apache.qpid.server.logging.subjects.ChannelLogSubject; import org.apache.qpid.server.message.InstanceProperties; import org.apache.qpid.server.message.MessageDestination; import org.apache.qpid.server.message.MessageInstance; +import org.apache.qpid.server.model.ConfigurationChangeListener; +import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.server.model.Consumer; import org.apache.qpid.server.protocol.AMQSessionModel; import org.apache.qpid.server.protocol.CapacityChecker; +import org.apache.qpid.server.protocol.ConsumerListener; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.security.AuthorizationHolder; import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.StoreException; import org.apache.qpid.server.store.StoreFuture; import org.apache.qpid.server.store.TransactionLogResource; import org.apache.qpid.server.txn.AlreadyKnownDtxException; @@ -84,12 +90,21 @@ import org.apache.qpid.server.txn.UnknownDtxBranchException; import org.apache.qpid.server.util.Action; import org.apache.qpid.server.util.Deletable; import org.apache.qpid.server.virtualhost.VirtualHostImpl; -import org.apache.qpid.transport.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT; -import static org.apache.qpid.util.Serial.gt; +import org.apache.qpid.transport.Binary; +import org.apache.qpid.transport.Connection; +import org.apache.qpid.transport.MessageCreditUnit; +import org.apache.qpid.transport.MessageFlow; +import org.apache.qpid.transport.MessageFlowMode; +import org.apache.qpid.transport.MessageSetFlowMode; +import org.apache.qpid.transport.MessageStop; +import org.apache.qpid.transport.MessageTransfer; +import org.apache.qpid.transport.Method; +import org.apache.qpid.transport.Range; +import org.apache.qpid.transport.RangeSet; +import org.apache.qpid.transport.RangeSetFactory; +import org.apache.qpid.transport.Session; +import org.apache.qpid.transport.SessionDelegate; +import org.apache.qpid.transport.Xid; public class ServerSession extends Session implements AuthorizationHolder, diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java index e6fd437b90..2c6bc1b44e 100644 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java +++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java @@ -20,6 +20,24 @@ */ package org.apache.qpid.server.management.amqp; +import java.nio.charset.Charset; +import java.security.AccessControlException; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + import org.apache.qpid.server.consumer.ConsumerImpl; import org.apache.qpid.server.consumer.ConsumerTarget; import org.apache.qpid.server.filter.FilterManager; @@ -32,12 +50,12 @@ import org.apache.qpid.server.message.MessageSource; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.message.internal.InternalMessage; import org.apache.qpid.server.message.internal.InternalMessageHeader; -import org.apache.qpid.server.model.ManagedObject; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.model.ConfigurationChangeListener; import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.Model; import org.apache.qpid.server.model.State; -import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.plugin.MessageConverter; import org.apache.qpid.server.plugin.SystemNodeCreator; import org.apache.qpid.server.protocol.AMQSessionModel; @@ -50,13 +68,6 @@ import org.apache.qpid.server.util.Action; import org.apache.qpid.server.util.StateChangeListener; import org.apache.qpid.server.virtualhost.VirtualHostImpl; -import java.nio.charset.Charset; -import java.security.AccessControlException; -import java.text.MessageFormat; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - class ManagementNode implements MessageSource, MessageDestination { diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java index cdb71f4859..ab1fd7cf38 100644 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java +++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java @@ -27,7 +27,7 @@ public class ManagementNodeCreator implements SystemNodeCreator @Override public void register(final SystemNodeRegistry registry) { - ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHostModel()); + ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHost()); registry.registerSystemNode(managementNode); } 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 b4ce0ccf9a..59c5a4428d 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 @@ -20,7 +20,35 @@ */ package org.apache.qpid.server.management.plugin; +import java.lang.reflect.Type; +import java.net.SocketAddress; +import java.security.GeneralSecurityException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.UUID; + +import javax.net.ssl.KeyManager; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import javax.servlet.DispatcherType; + import org.apache.log4j.Logger; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.SessionManager; +import org.eclipse.jetty.server.nio.SelectChannelConnector; +import org.eclipse.jetty.server.ssl.SslSocketConnector; +import org.eclipse.jetty.servlet.FilterHolder; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.eclipse.jetty.util.ssl.SslContextFactory; + import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter; @@ -28,32 +56,23 @@ import org.apache.qpid.server.management.plugin.filter.RedirectingAuthorisationF import org.apache.qpid.server.management.plugin.servlet.DefinedFileServlet; import org.apache.qpid.server.management.plugin.servlet.FileServlet; import org.apache.qpid.server.management.plugin.servlet.LogFileServlet; -import org.apache.qpid.server.management.plugin.servlet.rest.*; +import org.apache.qpid.server.management.plugin.servlet.rest.HelperServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.LogFileListingServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.LogRecordsServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.LoggedOnUserPreferencesServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.LogoutServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.MessageContentServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.MessageServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.RestServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.StructureServlet; +import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServlet; import org.apache.qpid.server.model.*; -import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.adapter.AbstractPluginAdapter; +import org.apache.qpid.server.model.port.PortWithAuthProvider; import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.util.ServerScopedRuntimeException; import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager; -import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.SessionManager; -import org.eclipse.jetty.server.nio.SelectChannelConnector; -import org.eclipse.jetty.server.ssl.SslSocketConnector; -import org.eclipse.jetty.servlet.FilterHolder; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.util.ssl.SslContextFactory; - -import javax.net.ssl.KeyManager; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import javax.servlet.DispatcherType; -import java.lang.reflect.Type; -import java.net.SocketAddress; -import java.security.GeneralSecurityException; -import java.util.*; @ManagedObject( category = false, type = "MANAGEMENT-HTTP" ) public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implements HttpManagementConfiguration<HttpManagement> @@ -62,12 +81,6 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem // 10 minutes by default public static final int DEFAULT_TIMEOUT_IN_SECONDS = 60 * 10; - public static final boolean DEFAULT_HTTP_BASIC_AUTHENTICATION_ENABLED = false; - public static final boolean DEFAULT_HTTPS_BASIC_AUTHENTICATION_ENABLED = true; - public static final boolean DEFAULT_HTTP_SASL_AUTHENTICATION_ENABLED = true; - public static final boolean DEFAULT_HTTPS_SASL_AUTHENTICATION_ENABLED = true; - public static final String DEFAULT_NAME = "httpManagement"; - public static final String TIME_OUT = "sessionTimeout"; public static final String HTTP_BASIC_AUTHENTICATION_ENABLED = "httpBasicAuthenticationEnabled"; public static final String HTTPS_BASIC_AUTHENTICATION_ENABLED = "httpsBasicAuthenticationEnabled"; @@ -80,17 +93,6 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem @SuppressWarnings("serial") - public static final Map<String, Object> DEFAULTS = Collections.unmodifiableMap(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); - put(TIME_OUT, DEFAULT_TIMEOUT_IN_SECONDS); - put(NAME, DEFAULT_NAME); - }}); - - @SuppressWarnings("serial") private static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{ put(HTTP_BASIC_AUTHENTICATION_ENABLED, Boolean.class); put(HTTPS_BASIC_AUTHENTICATION_ENABLED, Boolean.class); @@ -105,9 +107,24 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem private Server _server; + @ManagedAttributeField + private boolean _httpsSaslAuthenticationEnabled; + + @ManagedAttributeField + private boolean _httpSaslAuthenticationEnabled; + + @ManagedAttributeField + private boolean _httpsBasicAuthenticationEnabled; + + @ManagedAttributeField + private boolean _httpBasicAuthenticationEnabled; + + @ManagedAttributeField + private int _sessionTimeout; + public HttpManagement(UUID id, Broker broker, Map<String, Object> attributes) { - super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), broker); + super(id, Collections.<String,Object>emptyMap(), attributes, broker); } @Override @@ -165,7 +182,7 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem public int getSessionTimeout() { - return (Integer)getAttribute(TIME_OUT); + return _sessionTimeout; } @SuppressWarnings("unchecked") @@ -201,8 +218,8 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem throw new IllegalConfigurationException("Key store is not configured. Cannot start management on HTTPS port without keystore"); } SslContextFactory factory = new SslContextFactory(); - final boolean needClientAuth = Boolean.valueOf(String.valueOf(port.getAttribute(Port.NEED_CLIENT_AUTH))); - final boolean wantClientAuth = Boolean.valueOf(String.valueOf(port.getAttribute(Port.WANT_CLIENT_AUTH))); + final boolean needClientAuth = port instanceof PortWithAuthProvider && ((PortWithAuthProvider)port).getNeedClientAuth(); + final boolean wantClientAuth = port instanceof PortWithAuthProvider && ((PortWithAuthProvider)port).getWantClientAuth(); boolean needClientCert = needClientAuth || wantClientAuth; if (needClientCert && trustStores.isEmpty()) { @@ -419,25 +436,25 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem @Override public boolean isHttpsSaslAuthenticationEnabled() { - return (Boolean)getAttribute(HTTPS_SASL_AUTHENTICATION_ENABLED); + return _httpsSaslAuthenticationEnabled; } @Override public boolean isHttpSaslAuthenticationEnabled() { - return (Boolean)getAttribute(HTTP_SASL_AUTHENTICATION_ENABLED); + return _httpSaslAuthenticationEnabled; } @Override public boolean isHttpsBasicAuthenticationEnabled() { - return (Boolean)getAttribute(HTTPS_BASIC_AUTHENTICATION_ENABLED); + return _httpsBasicAuthenticationEnabled; } @Override public boolean isHttpBasicAuthenticationEnabled() { - return (Boolean)getAttribute(HTTP_BASIC_AUTHENTICATION_ENABLED); + return _httpBasicAuthenticationEnabled; } @Override @@ -475,10 +492,4 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem } } - - @Override - public String getPluginType() - { - return PLUGIN_TYPE; - } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java index 227271d439..aebe76b9bd 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementConfiguration.java @@ -23,26 +23,24 @@ package org.apache.qpid.server.management.plugin; import java.net.SocketAddress; import org.apache.qpid.server.model.AuthenticationProvider; -import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.ManagedAttribute; -import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.Plugin; public interface HttpManagementConfiguration<X extends HttpManagementConfiguration<X>> extends Plugin<X> { - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "true" ) boolean isHttpsSaslAuthenticationEnabled(); - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "true" ) boolean isHttpSaslAuthenticationEnabled(); - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "true" ) boolean isHttpsBasicAuthenticationEnabled(); - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "false" ) boolean isHttpBasicAuthenticationEnabled(); - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "600" ) public int getSessionTimeout(); AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress); 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 2fd057437a..2cb611d382 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 @@ -18,15 +18,15 @@ */ package org.apache.qpid.server.management.plugin; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.model.ConfiguredObject; -import org.apache.qpid.test.utils.QpidTestCase; +import static org.mockito.Mockito.mock; import java.util.HashMap; import java.util.Map; import java.util.UUID; -import static org.mockito.Mockito.mock; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.test.utils.QpidTestCase; public class HttpManagementFactoryTest extends QpidTestCase { @@ -40,11 +40,13 @@ public class HttpManagementFactoryTest extends QpidTestCase public void testCreateInstance() throws Exception { + _attributes.put(ConfiguredObject.NAME, getName()); _attributes.put(ConfiguredObject.TYPE, HttpManagement.PLUGIN_TYPE); _attributes.put(HttpManagement.TIME_OUT, SESSION_TIMEOUT); _attributes.put(ConfiguredObject.ID, _id); HttpManagement management = _pluginFactory.createInstance(_attributes, _broker); + management.open(); assertEquals(_broker, management.getParent(Broker.class)); assertEquals(SESSION_TIMEOUT, management.getSessionTimeout()); diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java index d0a357fd28..ff96a4223e 100644 --- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java +++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java @@ -31,7 +31,6 @@ import java.util.UUID; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.test.utils.QpidTestCase; public class HttpManagementTest extends QpidTestCase @@ -54,6 +53,7 @@ public class HttpManagementTest extends QpidTestCase attributes.put(HttpManagement.NAME, getTestName()); attributes.put(HttpManagement.TIME_OUT, 10000l); _management = new HttpManagement(_id, _broker, attributes); + _management.open(); } public void testGetSessionTimeout() 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 53eacf18d1..2d656a992a 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 @@ -24,6 +24,7 @@ package org.apache.qpid.server.jmx; import java.io.IOException; import java.lang.reflect.Type; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -44,6 +45,7 @@ import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfigurationChangeListener; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.ManagedAttribute; +import org.apache.qpid.server.model.ManagedAttributeField; import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider; import org.apache.qpid.server.model.Port; @@ -71,13 +73,6 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen public static final boolean DEFAULT_USE_PLATFORM_MBEAN_SERVER = true; @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(TYPE, PLUGIN_TYPE); - }}; - - @SuppressWarnings("serial") private static final Map<String, Type> ATTRIBUTE_TYPES = new HashMap<String, Type>(){{ put(USE_PLATFORM_MBEAN_SERVER, Boolean.class); put(NAME, String.class); @@ -89,9 +84,12 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen private final Map<ConfiguredObject, AMQManagedObject> _children = new HashMap<ConfiguredObject, AMQManagedObject>(); + @ManagedAttributeField + private boolean _usePlatformMBeanServer; + public JMXManagement(UUID id, Broker broker, Map<String, Object> attributes) { - super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), broker); + super(id, Collections.<String,Object>emptyMap(), attributes, broker); } @Override @@ -363,15 +361,9 @@ public class JMXManagement extends AbstractPluginAdapter<JMXManagement> implemen } } - @Override - public String getPluginType() - { - return PLUGIN_TYPE; - } - - @ManagedAttribute + @ManagedAttribute( automate = true, defaultValue = "true" ) public boolean getUsePlatformMBeanServer() { - return (Boolean)getAttribute(USE_PLATFORM_MBEAN_SERVER); + return _usePlatformMBeanServer; } } 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 d0da48fb3a..e1e3db763c 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 @@ -39,13 +39,13 @@ public class JMXManagementFactoryTest extends QpidTestCase { _attributes.put(ConfiguredObject.ID,UUID.randomUUID()); _attributes.put(ConfiguredObject.TYPE, JMXManagement.PLUGIN_TYPE); + _attributes.put(ConfiguredObject.NAME, getName()); JMXManagement jmxManagement = _jmxManagementFactory.createInstance( _attributes, _broker); jmxManagement.open(); assertNotNull(jmxManagement); assertEquals("Unexpected plugin type", JMXManagement.PLUGIN_TYPE, jmxManagement.getType()); 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)); } |
