[jboss-cvs] JBoss Messaging SVN: r4780 - in branches/Branch_JBMESSAGING-1303: src/main/org/jboss/messaging/jms/server/management/impl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 7 07:36:43 EDT 2008
Author: jmesnil
Date: 2008-08-07 07:36:43 -0400 (Thu, 07 Aug 2008)
New Revision: 4780
Added:
branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSManagementServiceImplTest.java
Modified:
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSManagementService.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* unit tests + code clean up
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSManagementService.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSManagementService.java 2008-08-07 08:32:51 UTC (rev 4779)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSManagementService.java 2008-08-07 11:36:43 UTC (rev 4780)
@@ -41,7 +41,7 @@
{
void registerJMSServer(JMSServerManager server) throws Exception;
- void unregisterJMSServer();
+ void unregisterJMSServer() throws Exception;
void registerQueue(JBossQueue queue, Queue coreQueue, String jndiBinding, JMSServerManager server) throws Exception;
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java 2008-08-07 08:32:51 UTC (rev 4779)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSManagementServiceImpl.java 2008-08-07 11:36:43 UTC (rev 4780)
@@ -74,7 +74,7 @@
+ ":module=JMS,type=Topic,name=" + name.toString());
}
- private ObjectName getConnectionFactoryObjectName(final String name)
+ public static ObjectName getConnectionFactoryObjectName(final String name)
throws Exception
{
return ObjectName.getInstance(ManagementServiceImpl.DOMAIN
@@ -102,19 +102,19 @@
return;
}
ObjectName objectName = getJMSServerObjectName();
+ unregisterJMSServer();
+ mbeanServer.registerMBean(new JMSServerControl(server), objectName);
+ }
+
+ public void unregisterJMSServer() throws Exception
+ {
+ ObjectName objectName = getJMSServerObjectName();
if (mbeanServer.isRegistered(objectName))
{
mbeanServer.unregisterMBean(objectName);
}
- mbeanServer.registerMBean(new JMSServerControl(server), objectName);
}
- public void unregisterJMSServer()
- {
- // TODO Auto-generated method stub
-
- }
-
public void registerQueue(final JBossQueue queue, final Queue coreQueue,
final String jndiBinding, final JMSServerManager server)
throws Exception
@@ -124,12 +124,9 @@
return;
}
ObjectName objectName = getJMSQueueObjectName(queue.getQueueName());
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(objectName);
- }
+ unregisterQueue(queue.getQueueName());
mbeanServer.registerMBean(new JMSQueueControl(queue, coreQueue,
- jndiBinding, server), getJMSQueueObjectName(queue.getQueueName()));
+ jndiBinding, server), objectName);
}
public void unregisterQueue(final String name) throws Exception
@@ -138,7 +135,11 @@
{
return;
}
- mbeanServer.unregisterMBean(getJMSQueueObjectName(name));
+ ObjectName objectName = getJMSQueueObjectName(name);
+ if (mbeanServer.isRegistered(objectName))
+ {
+ mbeanServer.unregisterMBean(objectName);
+ }
}
public void registerTopic(final JBossTopic topic,
@@ -150,10 +151,7 @@
return;
}
ObjectName objectName = getJMSTopicObjectName(topic.getTopicName());
- if (mbeanServer.isRegistered(objectName))
- {
- mbeanServer.unregisterMBean(objectName);
- }
+ unregisterTopic(topic.getTopicName());
mbeanServer.registerMBean(new TopicControl(topic, serverManagement,
jndiBinding), objectName);
}
@@ -164,7 +162,11 @@
{
return;
}
- mbeanServer.unregisterMBean(getJMSTopicObjectName(name));
+ ObjectName objectName = getJMSTopicObjectName(name);
+ if (mbeanServer.isRegistered(objectName))
+ {
+ mbeanServer.unregisterMBean(getJMSTopicObjectName(name));
+ }
}
public void registerConnectionFactory(final String name,
@@ -176,6 +178,7 @@
return;
}
ObjectName objectName = getConnectionFactoryObjectName(name);
+ unregisterConnectionFactory(name);
mbeanServer.registerMBean(new ConnectionFactoryControl(connectionFactory,
connectionFactory.getCoreConnection(), name, bindings), objectName);
}
@@ -187,7 +190,10 @@
return;
}
ObjectName objectName = getConnectionFactoryObjectName(name);
- mbeanServer.unregisterMBean(objectName);
+ if (mbeanServer.isRegistered(objectName))
+ {
+ mbeanServer.unregisterMBean(objectName);
+ }
}
// Package protected ---------------------------------------------
Added: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSManagementServiceImplTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSManagementServiceImplTest.java (rev 0)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSManagementServiceImplTest.java 2008-08-07 11:36:43 UTC (rev 4780)
@@ -0,0 +1,305 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.tests.unit.jms.server.management.impl;
+
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.replay;
+import static org.easymock.classextension.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.client.ClientConnectionFactory;
+import org.jboss.messaging.core.management.MessagingServerManagement;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.jms.JBossQueue;
+import org.jboss.messaging.jms.JBossTopic;
+import org.jboss.messaging.jms.client.JBossConnectionFactory;
+import org.jboss.messaging.jms.server.JMSServerManager;
+import org.jboss.messaging.jms.server.management.ConnectionFactoryControlMBean;
+import org.jboss.messaging.jms.server.management.JMSManagementService;
+import org.jboss.messaging.jms.server.management.JMSQueueControlMBean;
+import org.jboss.messaging.jms.server.management.JMSServerControlMBean;
+import org.jboss.messaging.jms.server.management.TopicControlMBean;
+import org.jboss.messaging.jms.server.management.impl.ConnectionFactoryControl;
+import org.jboss.messaging.jms.server.management.impl.JMSManagementServiceImpl;
+import org.jboss.messaging.jms.server.management.impl.JMSQueueControl;
+import org.jboss.messaging.jms.server.management.impl.TopicControl;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class JMSManagementServiceImplTest extends TestCase
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testRegisterJMSServer() throws Exception
+ {
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSServerObjectName();
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ JMSServerManager.class.getName());
+
+ JMSServerManager server = createMock(JMSServerManager.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+ expect(
+ mbeanServer.registerMBean(isA(JMSServerControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, server);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerJMSServer(server);
+
+ verify(mbeanServer, server);
+ }
+
+ public void testRegisterAlreadyRegisteredJMSServer() throws Exception
+ {
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSServerObjectName();
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ JMSServerManager.class.getName());
+
+ JMSServerManager server = createMock(JMSServerManager.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+ mbeanServer.unregisterMBean(objectName);
+ expect(
+ mbeanServer.registerMBean(isA(JMSServerControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, server);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerJMSServer(server);
+
+ verify(mbeanServer, server);
+ }
+
+ public void testRegisterQueue() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSQueueObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ JMSQueueControl.class.getName());
+
+ JBossQueue queue = new JBossQueue(name);
+ Queue coreQueue = createMock(Queue.class);
+ JMSServerManager server = createMock(JMSServerManager.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+ expect(
+ mbeanServer.registerMBean(isA(JMSQueueControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, coreQueue, server);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerQueue(queue, coreQueue, jndiBinding, server);
+
+ verify(mbeanServer, coreQueue, server);
+ }
+
+ public void testRegisterAlreadyRegisteredQueue() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSQueueObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ JMSQueueControl.class.getName());
+
+ JBossQueue queue = new JBossQueue(name);
+ Queue coreQueue = createMock(Queue.class);
+ JMSServerManager server = createMock(JMSServerManager.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+ mbeanServer.unregisterMBean(objectName);
+ expect(
+ mbeanServer.registerMBean(isA(JMSQueueControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, coreQueue, server);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerQueue(queue, coreQueue, jndiBinding, server);
+
+ verify(mbeanServer, coreQueue, server);
+ }
+
+ public void testRegisterTopic() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSTopicObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ TopicControl.class.getName());
+
+ JBossTopic topic = new JBossTopic(name);
+ MessagingServerManagement serverManagement = createMock(MessagingServerManagement.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+ expect(
+ mbeanServer.registerMBean(isA(TopicControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, serverManagement);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerTopic(topic, serverManagement, jndiBinding);
+
+ verify(mbeanServer, serverManagement);
+ }
+
+ public void testRegisterAlreadyRegisteredTopic() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ ObjectName objectName = JMSManagementServiceImpl
+ .getJMSTopicObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ TopicControl.class.getName());
+
+ JBossTopic topic = new JBossTopic(name);
+ MessagingServerManagement serverManagement = createMock(MessagingServerManagement.class);
+
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+ mbeanServer.unregisterMBean(objectName);
+ expect(
+ mbeanServer.registerMBean(isA(TopicControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, serverManagement);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerTopic(topic, serverManagement, jndiBinding);
+
+ verify(mbeanServer, serverManagement);
+ }
+
+ public void testRegisterConnectionFactory() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ List<String> bindings = new ArrayList<String>();
+ bindings.add(jndiBinding);
+
+ ObjectName objectName = JMSManagementServiceImpl
+ .getConnectionFactoryObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ ConnectionFactoryControl.class.getName());
+
+ JBossConnectionFactory connectionFactory = createMock(JBossConnectionFactory.class);
+ ClientConnectionFactory coreConnection = createMock(ClientConnectionFactory.class);
+ expect(connectionFactory.getCoreConnection()).andReturn(coreConnection);
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+ expect(
+ mbeanServer.registerMBean(isA(ConnectionFactoryControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, connectionFactory, coreConnection);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerConnectionFactory(name, connectionFactory, bindings);
+
+ verify(mbeanServer, connectionFactory, coreConnection);
+ }
+
+ public void testRegisterAlreadyRegisteredConnectionFactory() throws Exception
+ {
+ String name = randomString();
+ String jndiBinding = randomString();
+ List<String> bindings = new ArrayList<String>();
+ bindings.add(jndiBinding);
+
+ ObjectName objectName = JMSManagementServiceImpl
+ .getConnectionFactoryObjectName(name);
+ ObjectInstance objectInstance = new ObjectInstance(objectName,
+ ConnectionFactoryControl.class.getName());
+
+ JBossConnectionFactory connectionFactory = createMock(JBossConnectionFactory.class);
+ ClientConnectionFactory coreConnection = createMock(ClientConnectionFactory.class);
+ expect(connectionFactory.getCoreConnection()).andReturn(coreConnection);
+ MBeanServer mbeanServer = createMock(MBeanServer.class);
+ expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+ mbeanServer.unregisterMBean(objectName);
+ expect(
+ mbeanServer.registerMBean(isA(ConnectionFactoryControlMBean.class),
+ eq(objectName))).andReturn(objectInstance);
+
+ replay(mbeanServer, connectionFactory, coreConnection);
+
+ JMSManagementService service = new JMSManagementServiceImpl(mbeanServer,
+ true);
+ service.registerConnectionFactory(name, connectionFactory, bindings);
+
+ verify(mbeanServer, connectionFactory, coreConnection);
+ }
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
More information about the jboss-cvs-commits
mailing list