From 6121e960f95fe74b0a93cb3d1e27c7439d585eb3 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Mon, 7 Apr 2014 12:44:42 +0000 Subject: QPID-5665 : [Java Broker] Unify VirtualHost model and implementation classes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1585471 13f79535-47bb-0310-9956-ffa450edef68 --- .../security/access/plugins/RuleSetTest.java | 2 +- .../protocol/v0_10/ServerConnectionDelegate.java | 4 +-- .../v0_8/handler/ConnectionOpenMethodHandler.java | 8 ++--- .../plugin/servlet/rest/MessageContentServlet.java | 4 +-- .../plugin/servlet/rest/MessageServlet.java | 19 +++++------ .../org/apache/qpid/server/jmx/JMXManagement.java | 31 ++++++++++++------ .../server/jmx/MBeanInvocationHandlerImpl.java | 37 +++++++++++----------- .../apache/qpid/server/jmx/mbeans/MBeanUtils.java | 4 +-- .../apache/qpid/server/jmx/mbeans/QueueMBean.java | 2 +- .../qpid/server/jmx/mbeans/VirtualHostMBean.java | 18 ++++++----- .../server/jmx/mbeans/VirtualHostManagerMBean.java | 6 ++-- .../jmx/mbeans/VirtualHostManagerMBeanTest.java | 7 ++-- 12 files changed, 78 insertions(+), 64 deletions(-) (limited to 'qpid/java/broker-plugins') diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java index 32037807cd..523640adad 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java @@ -66,7 +66,7 @@ public class RuleSetTest extends QpidTestCase private String _exchangeType = "direct"; private Subject _testSubject = TestPrincipalUtils.createTestSubject(TEST_USER); private AMQQueue _queue; - private VirtualHost _virtualHost; + private VirtualHost _virtualHost; @Override public void setUp() throws Exception diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java index d4af18aaec..1f72b5dde8 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java @@ -41,7 +41,7 @@ import org.apache.qpid.server.protocol.AMQConnectionModel; import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.server.security.auth.AuthenticationResult.AuthenticationStatus; import org.apache.qpid.server.security.auth.SubjectAuthenticationResult; -import org.apache.qpid.server.virtualhost.State; +import org.apache.qpid.server.virtualhost.VirtualHostState; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.transport.*; import org.apache.qpid.transport.network.NetworkConnection; @@ -206,7 +206,7 @@ public class ServerConnectionDelegate extends ServerDelegate return; } - if (vhost.getState() != State.ACTIVE) + if (vhost.getVirtualHostState() != VirtualHostState.ACTIVE) { sconn.setState(Connection.State.CLOSING); sconn.invoke(new ConnectionClose(ConnectionCloseCode.CONNECTION_FORCED, "Virtual host '"+vhostName+"' is not active")); diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ConnectionOpenMethodHandler.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ConnectionOpenMethodHandler.java index 1a29806f62..9ab308cd8a 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ConnectionOpenMethodHandler.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/ConnectionOpenMethodHandler.java @@ -20,6 +20,8 @@ */ package org.apache.qpid.server.protocol.v0_8.handler; +import java.security.AccessControlException; + import org.apache.log4j.Logger; import org.apache.qpid.AMQException; @@ -32,10 +34,8 @@ import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession; import org.apache.qpid.server.protocol.v0_8.state.AMQState; import org.apache.qpid.server.protocol.v0_8.state.AMQStateManager; import org.apache.qpid.server.protocol.v0_8.state.StateAwareMethodListener; -import org.apache.qpid.server.virtualhost.State; import org.apache.qpid.server.virtualhost.VirtualHost; - -import java.security.AccessControlException; +import org.apache.qpid.server.virtualhost.VirtualHostState; public class ConnectionOpenMethodHandler implements StateAwareMethodListener { @@ -92,7 +92,7 @@ public class ConnectionOpenMethodHandler implements StateAwareMethodListener vhost = null; + VirtualHost vhost = null; for(VirtualHost vh : getBroker().getVirtualHosts()) { @@ -91,7 +91,7 @@ public class MessageContentServlet extends AbstractServlet return getQueueFromVirtualHost(queueName, vhost); } - private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost) + private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost) { Queue queue = null; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java index b23f0cb168..f72471b7d4 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java @@ -31,6 +31,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; + import org.apache.qpid.server.consumer.ConsumerImpl; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.MessageReference; @@ -41,8 +44,6 @@ import org.apache.qpid.server.queue.QueueEntry; import org.apache.qpid.server.queue.QueueEntryVisitor; import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.access.Operation; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.SerializationConfig; public class MessageServlet extends AbstractServlet { @@ -134,9 +135,9 @@ public class MessageServlet extends AbstractServlet String vhostName = pathInfoElements[0]; String queueName = pathInfoElements[1]; - VirtualHost vhost = null; + VirtualHost vhost = null; - for(VirtualHost vh : getBroker().getVirtualHosts()) + for(VirtualHost vh : getBroker().getVirtualHosts()) { if(vh.getName().equals(vhostName)) { @@ -148,11 +149,11 @@ public class MessageServlet extends AbstractServlet return getQueueFromVirtualHost(queueName, vhost); } - private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost) + private Queue getQueueFromVirtualHost(String queueName, VirtualHost vhost) { Queue queue = null; - for(Queue q : vhost.getQueues()) + for(Queue q : vhost.getQueues()) { if(q.getName().equals(queueName)) @@ -420,7 +421,7 @@ public class MessageServlet extends AbstractServlet String destQueueName = (String) providedObject.get("destinationQueue"); Boolean move = (Boolean) providedObject.get("move"); - final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class); + final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class); boolean isMoveTransaction = move != null && Boolean.valueOf(move); @@ -461,7 +462,7 @@ public class MessageServlet extends AbstractServlet final Queue sourceQueue = getQueueFromRequest(request); - final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class); + final VirtualHost vhost = sourceQueue.getParent(VirtualHost.class); final List messageIds = new ArrayList(); @@ -485,7 +486,7 @@ public class MessageServlet extends AbstractServlet } - private void authorizeMethod(String methodName, VirtualHost vhost) + private void authorizeMethod(String methodName, VirtualHost vhost) { SecurityManager securityManager = getBroker().getSecurityManager(); securityManager.authoriseMethod(Operation.UPDATE, "VirtualHost.Queue", methodName, vhost.getName()); 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 afad673f84..53eacf18d1 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 @@ -21,7 +21,17 @@ package org.apache.qpid.server.jmx; +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import javax.management.JMException; + import org.apache.log4j.Logger; + import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.jmx.mbeans.LoggingManagementMBean; import org.apache.qpid.server.jmx.mbeans.ServerInformationMBean; @@ -29,21 +39,22 @@ import org.apache.qpid.server.jmx.mbeans.Shutdown; import org.apache.qpid.server.jmx.mbeans.UserManagementMBean; import org.apache.qpid.server.jmx.mbeans.VirtualHostMBean; import org.apache.qpid.server.logging.log4j.LoggingManagementFacade; -import org.apache.qpid.server.model.*; +import org.apache.qpid.server.model.AuthenticationProvider; +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.ManagedObject; +import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider; +import org.apache.qpid.server.model.Port; +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.QpidServiceLoader; import org.apache.qpid.server.util.MapValueConverter; import org.apache.qpid.server.util.ServerScopedRuntimeException; -import javax.management.JMException; -import java.io.IOException; -import java.lang.reflect.Type; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - @ManagedObject( category = false , type = "MANAGEMENT-JMX" ) public class JMXManagement extends AbstractPluginAdapter implements ConfigurationChangeListener { @@ -143,7 +154,7 @@ public class JMXManagement extends AbstractPluginAdapter implemen synchronized (_children) { - for(VirtualHost virtualHost : broker.getVirtualHosts()) + for(VirtualHost virtualHost : broker.getVirtualHosts()) { if(!_children.containsKey(virtualHost)) { 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 5a7674d4fd..97cc7d7737 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 @@ -20,14 +20,15 @@ */ package org.apache.qpid.server.jmx; -import org.apache.log4j.Logger; - -import org.apache.qpid.server.configuration.BrokerProperties; -import org.apache.qpid.server.model.Broker; -import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.security.SecurityManager; -import org.apache.qpid.server.security.access.Operation; -import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.security.AccessControlContext; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.Arrays; import javax.management.Attribute; import javax.management.JMException; @@ -38,15 +39,15 @@ import javax.management.ObjectName; import javax.management.RuntimeErrorException; import javax.management.remote.MBeanServerForwarder; import javax.security.auth.Subject; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.security.AccessControlContext; -import java.security.AccessController; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; -import java.util.Arrays; + +import org.apache.log4j.Logger; + +import org.apache.qpid.server.configuration.BrokerProperties; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.VirtualHost; +import org.apache.qpid.server.security.SecurityManager; +import org.apache.qpid.server.security.access.Operation; +import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; /** * This class can be used by the JMXConnectorServer as an InvocationHandler for the mbean operations. It delegates @@ -200,7 +201,7 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler if (virtualHostName != null) { - VirtualHost virtualHost = _broker.findVirtualHostByName(virtualHostName); + VirtualHost virtualHost = _broker.findVirtualHostByName(virtualHostName); if (virtualHost == null) { throw new IllegalArgumentException("Virtual host with name '" + virtualHostName + "' is not found."); diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java index 575fec58e9..30d85df947 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/MBeanUtils.java @@ -29,7 +29,7 @@ import org.apache.qpid.server.model.VirtualHost; public class MBeanUtils { - public static Queue findQueueFromQueueName(VirtualHost virtualHost, String queueName) throws OperationsException + public static Queue findQueueFromQueueName(VirtualHost virtualHost, String queueName) throws OperationsException { Queue queue = ConfiguredObjectFinder.findConfiguredObjectByName(virtualHost.getQueues(), queueName); if (queue == null) @@ -42,7 +42,7 @@ public class MBeanUtils } } - public static Exchange findExchangeFromExchangeName(VirtualHost virtualHost, String exchangeName) throws OperationsException + public static Exchange findExchangeFromExchangeName(VirtualHost virtualHost, String exchangeName) throws OperationsException { Exchange exchange = ConfiguredObjectFinder.findConfiguredObjectByName(virtualHost.getExchanges(), exchangeName); if (exchange == null) diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java index 4775650954..8fe0bf9e10 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java @@ -298,7 +298,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN } else { - VirtualHost virtualHost = _queue.getParent(VirtualHost.class); + VirtualHost virtualHost = _queue.getParent(VirtualHost.class); Exchange exchange = MBeanUtils.findExchangeFromExchangeName(virtualHost, exchangeName); _queue.setAttribute(Queue.ALTERNATE_EXCHANGE, getAlternateExchange(), exchange); diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java index 906f1a481d..3a5c5957dc 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java @@ -21,7 +21,16 @@ package org.apache.qpid.server.jmx.mbeans; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import javax.management.JMException; +import javax.management.ObjectName; + import org.apache.log4j.Logger; + import org.apache.qpid.server.jmx.AMQManagedObject; import org.apache.qpid.server.jmx.ManagedObject; import org.apache.qpid.server.jmx.ManagedObjectRegistry; @@ -34,18 +43,11 @@ import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.virtualhost.ManagedVirtualHost; -import javax.management.JMException; -import javax.management.ObjectName; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - public class VirtualHostMBean extends AMQManagedObject implements ManagedVirtualHost, ConfigurationChangeListener { private static final Logger LOGGER = Logger.getLogger(VirtualHostMBean.class); - private final VirtualHost _virtualHost; + private final VirtualHost _virtualHost; private final Map _children = new HashMap(); diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java index ca8cc7eb7d..8f282c0d50 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java @@ -36,6 +36,7 @@ import javax.management.ObjectName; import javax.management.OperationsException; import org.apache.log4j.Logger; + import org.apache.qpid.management.common.mbeans.ManagedBroker; import org.apache.qpid.management.common.mbeans.ManagedQueue; import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor; @@ -47,7 +48,6 @@ import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.QueueArgumentsConverter; @MBeanDescription("This MBean exposes the broker level management features") @@ -106,7 +106,7 @@ public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean exchangeTypes = _virtualHostMBean.getVirtualHost().getExchangeTypes(); + Collection exchangeTypes = _virtualHostMBean.getVirtualHost().getExchangeTypeNames(); return exchangeTypes.toArray(new String[exchangeTypes.size()]); } @@ -158,7 +158,7 @@ public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean