[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