[jboss-cvs] JBoss Messaging SVN: r4766 - in branches/Branch_JBMESSAGING-1303: src/main/org/jboss/messaging/core/management/impl and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 4 10:28:08 EDT 2008


Author: jmesnil
Date: 2008-08-04 10:28:08 -0400 (Mon, 04 Aug 2008)
New Revision: 4766

Modified:
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementService.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/AddressControl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/NullManagementService.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
   branches/Branch_JBMESSAGING-1303/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/AddressControlTest.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/ManagementServiceImplTest.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerManagementImplTest.java
Log:
JBMESSAGING-1303: Revisit management interfaces

* unit tests + code clean up

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementService.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementService.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementService.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -47,9 +47,9 @@
 
    void unregisterServer() throws Exception;
 
-   void registerAddress(String address) throws Exception;
+   void registerAddress(SimpleString address) throws Exception;
 
-   void unregisterAddress(String address) throws Exception;
+   void unregisterAddress(SimpleString address) throws Exception;
 
    void registerQueue(Queue queue, SimpleString address, StorageManager storageManager)
          throws Exception;

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -28,7 +28,6 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.security.Role;
-import org.jboss.messaging.core.server.MessageReference;
 import org.jboss.messaging.core.server.Queue;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.util.SimpleString;
@@ -115,13 +114,13 @@
     */
    void removeAllMessagesForAddress(SimpleString address) throws Exception;
 
-   void setSecurityForAddress(String address, Set<Role> roles) throws Exception;
+   void setSecurityForAddress(SimpleString address, Set<Role> roles) throws Exception;
    
-   void removeSecurityForAddress(String address) throws Exception;
+   void removeSecurityForAddress(SimpleString address) throws Exception;
    
-   Set<Role> getSecurityForAddress(String address) throws Exception;
+   Set<Role> getSecurityForAddress(SimpleString address) throws Exception;
    
-   void setQueueAttributes(String queueName, QueueSettings settings) throws Exception;
+   void setQueueAttributes(SimpleString queueName, QueueSettings settings) throws Exception;
    
    Configuration getConfiguration();
 
@@ -151,7 +150,7 @@
     * @return
     * @throws Exception 
     */
-   List<MessageReference> expireMessages(Filter filter,
+   int expireMessages(Filter filter,
          SimpleString address) throws Exception;
 
    /**
@@ -165,7 +164,7 @@
     * @param simpleAddress
     * @return
     */
-   List<MessageReference> sendMessagesToDLQ(Filter filter,
+   int sendMessagesToDLQ(Filter filter,
          SimpleString simpleAddress) throws Exception;
 
    /**
@@ -174,6 +173,6 @@
     * @param simpleAddress
     * @return
     */
-   List<MessageReference> changeMessagesPriority(Filter filter,
+   int changeMessagesPriority(Filter filter,
          byte newPriority, SimpleString address) throws Exception;
 }

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/AddressControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/AddressControl.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/AddressControl.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -53,14 +53,14 @@
 
    // Attributes ----------------------------------------------------
 
-   private final String address;
+   private final SimpleString address;
    private MessagingServerManagement server;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public AddressControl(final String address,
+   public AddressControl(final SimpleString address,
          final MessagingServerManagement server)
          throws NotCompliantMBeanException
    {
@@ -75,15 +75,14 @@
 
    public String getAddress()
    {
-      return address;
+      return address.toString();
    }
 
    public String[] getQueueNames() throws Exception
    {
       try
       {
-         List<Queue> queues = server.getQueuesForAddress(new SimpleString(
-               address));
+         List<Queue> queues = server.getQueuesForAddress(address);
          String[] queueNames = new String[queues.size()];
          for (int i = 0; i < queues.size(); i++)
          {

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -65,7 +65,7 @@
       return ObjectName.getInstance(DOMAIN + ":module=Core,type=Server");
    }
 
-   public static ObjectName getAddressObjectName(final String address)
+   public static ObjectName getAddressObjectName(final SimpleString address)
          throws Exception
    {
       return ObjectName.getInstance(String.format(
@@ -105,14 +105,8 @@
    public void registerServer(final MessagingServerManagement server)
          throws Exception
    {
+      //unregisterServer();
       ObjectName objectName = getMessagingServerObjectName();
-      if (mbeanServer.isRegistered(objectName))
-      {
-         log.warn("Core server" + objectName
-               + " is already registered. Unregister it");
-         mbeanServer.unregisterMBean(objectName);
-         this.server = null;
-      }
       MessagingServerControl managedServer = new MessagingServerControl(server,
             server.getConfiguration());
       mbeanServer.registerMBean(managedServer, objectName);
@@ -126,18 +120,14 @@
       if (mbeanServer.isRegistered(objectName))
       {
          mbeanServer.unregisterMBean(getMessagingServerObjectName());
+         this.server = null;
       }
    }
 
-   public void registerAddress(final String address) throws Exception
+   public void registerAddress(final SimpleString address) throws Exception
    {
+      unregisterAddress(address);
       ObjectName objectName = getAddressObjectName(address);
-      if (mbeanServer.isRegistered(objectName))
-      {
-         log.warn("address " + objectName
-               + " is already registered. Unregister it");
-         mbeanServer.unregisterMBean(objectName);
-      }
       AddressControlMBean addressControl = new AddressControl(address, server);
       mbeanServer.registerMBean(addressControl, objectName);
       if (log.isDebugEnabled())
@@ -146,7 +136,7 @@
       }
    }
 
-   public void unregisterAddress(final String address) throws Exception
+   public void unregisterAddress(final SimpleString address) throws Exception
    {
       ObjectName objectName = getAddressObjectName(address);
       if (mbeanServer.isRegistered(objectName))
@@ -158,13 +148,8 @@
    public void registerQueue(final Queue queue, final SimpleString address,
          final StorageManager storageManager) throws Exception
    {
+      unregisterQueue(queue.getName(), address);
       ObjectName objectName = getQueueObjectName(address, queue.getName());
-      if (mbeanServer.isRegistered(objectName))
-      {
-         log.warn("queue " + objectName
-               + " is already registered. Unregister it");
-         mbeanServer.unregisterMBean(objectName);
-      }
       QueueControlMBean queueControl = new QueueControl(queue, storageManager,
             postOffice, queueSettingsRepository);
       mbeanServer.registerMBean(queueControl, objectName);

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/MessagingServerManagementImpl.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -23,7 +23,6 @@
 package org.jboss.messaging.core.management.impl;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -204,7 +203,7 @@
       return false;
    }
 
-   public List<MessageReference> expireMessages(final Filter filter,
+   public int expireMessages(final Filter filter,
          final SimpleString address) throws Exception
    {
       Binding binding = postOffice.getBinding(address);
@@ -217,12 +216,12 @@
             queue.expireMessage(ref.getMessage().getMessageID(),
                   storageManager, postOffice, queueSettingsRepository);
          }
-         return refs;
+         return refs.size();
       }
-      return Collections.emptyList();
+      return 0;
    }
 
-   public List<MessageReference> sendMessagesToDLQ(final Filter filter,
+   public int sendMessagesToDLQ(final Filter filter,
          final SimpleString address) throws Exception
    {
       Binding binding = postOffice.getBinding(address);
@@ -235,12 +234,12 @@
             queue.sendMessageToDLQ(ref.getMessage().getMessageID(),
                   storageManager, postOffice, queueSettingsRepository);
          }
-         return refs;
+         return refs.size();
       }
-      return Collections.emptyList();
+      return 0;
    }
 
-   public List<MessageReference> changeMessagesPriority(final Filter filter,
+   public int changeMessagesPriority(final Filter filter,
          final byte newPriority, final SimpleString address) throws Exception
    {
       Binding binding = postOffice.getBinding(address);
@@ -254,9 +253,9 @@
                   newPriority, storageManager, postOffice,
                   queueSettingsRepository);
          }
-         return refs;
+         return refs.size();
       }
-      return Collections.emptyList();
+      return 0;
    }
 
    public QueueSettings getQueueSettings(final SimpleString simpleAddress)
@@ -278,27 +277,27 @@
       return queues;
    }
 
-   public void setSecurityForAddress(final String address, final Set<Role> roles)
+   public void setSecurityForAddress(final SimpleString address, final Set<Role> roles)
          throws Exception
    {
-      this.securityRepository.addMatch(address, roles);
+      this.securityRepository.addMatch(address.toString(), roles);
    }
 
-   public void removeSecurityForAddress(final String address) throws Exception
+   public void removeSecurityForAddress(final SimpleString address) throws Exception
    {
-      this.securityRepository.removeMatch(address);
+      this.securityRepository.removeMatch(address.toString());
    }
 
-   public Set<Role> getSecurityForAddress(final String address)
+   public Set<Role> getSecurityForAddress(final SimpleString address)
          throws Exception
    {
-      return this.securityRepository.getMatch(address);
+      return this.securityRepository.getMatch(address.toString());
    }
 
-   public void setQueueAttributes(final String queueName,
+   public void setQueueAttributes(final SimpleString queueName,
          final QueueSettings settings) throws Exception
    {
-      this.queueSettingsRepository.addMatch(queueName, settings);
+      this.queueSettingsRepository.addMatch(queueName.toString(), settings);
    }
 
    public Configuration getConfiguration()

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/NullManagementService.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/NullManagementService.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/NullManagementService.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -73,11 +73,11 @@
    {
    }
 
-   public void registerAddress(String address) throws Exception
+   public void registerAddress(SimpleString address) throws Exception
    {
    }
 
-   public void unregisterAddress(String address) throws Exception
+   public void unregisterAddress(SimpleString address) throws Exception
    {
    }
 

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -128,7 +128,7 @@
       	}
       	 
          flowControllers.put(address, new FlowControllerImpl(address, this));
-         managementService.registerAddress(address.toString());
+         managementService.registerAddress(address);
    	}
    	
    	return added;
@@ -146,7 +146,7 @@
          {
       		storageManager.deleteDestination(address);
          }
-      	managementService.unregisterAddress(address.toString());
+      	managementService.unregisterAddress(address);
       }
 
       return removed;
@@ -314,7 +314,7 @@
          bindings = prevBindings;
       } else
       {
-         managementService.registerAddress(binding.getAddress().toString());
+         managementService.registerAddress(binding.getAddress());
       }
                      
       bindings.add(binding);  
@@ -363,7 +363,7 @@
       {
          mappings.remove(binding.getAddress());
                            
-         managementService.unregisterAddress(binding.getAddress().toString());
+         managementService.unregisterAddress(binding.getAddress());
          
          binding.getQueue().setFlowController(null);
       }

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -292,30 +292,23 @@
    public int expireMessages(final Filter filter,
          final JBossDestination destination) throws Exception
    {
-      List<MessageReference> refs = messagingServerManagement.expireMessages(
-            filter, destination.getSimpleAddress());
-
-      return refs.size();
+      return messagingServerManagement.expireMessages(filter, destination
+            .getSimpleAddress());
    }
 
    public int sendMessagesToDLQ(final Filter filter,
          final JBossDestination destination) throws Exception
    {
-      List<MessageReference> refs = messagingServerManagement
-            .sendMessagesToDLQ(filter, destination.getSimpleAddress());
-
-      return refs.size();
+      return messagingServerManagement.sendMessagesToDLQ(filter, destination
+            .getSimpleAddress());
    }
 
    public int changeMessagesPriority(final Filter filter,
          final byte newPriority, final JBossDestination destination)
          throws Exception
    {
-      List<MessageReference> refs = messagingServerManagement
-            .changeMessagesPriority(filter, newPriority, destination
-                  .getSimpleAddress());
-
-      return refs.size();
+      return messagingServerManagement.changeMessagesPriority(filter,
+            newPriority, destination.getSimpleAddress());
    }
 
    // Public --------------------------------------------------------

Modified: branches/Branch_JBMESSAGING-1303/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -53,6 +53,7 @@
 import org.jboss.messaging.jms.server.management.TopicControlMBean;
 import org.jboss.messaging.jms.server.management.impl.JMSManagementRegistrationImpl;
 import org.jboss.messaging.microcontainer.JBMBootstrapServer;
+import org.jboss.messaging.util.SimpleString;
 import org.jboss.test.messaging.tools.ConfigurationHelper;
 import org.jboss.test.messaging.tools.ServerManagement;
 import org.jboss.test.messaging.tools.jboss.MBeanConfigurationElement;
@@ -536,14 +537,14 @@
 
    public void configureSecurityForDestination(String destName, boolean isQueue, Set<Role> roles) throws Exception
    {
-      String prefix = isQueue ? "queuejms." : "topicjms.";
+      SimpleString destination = new SimpleString((isQueue ? "queuejms." : "topicjms.") + destName);
       if (roles != null)
       {
-         getMessagingServer().getServerManagement().setSecurityForAddress(prefix + destName, roles);
+         getMessagingServer().getServerManagement().setSecurityForAddress(destination, roles);
       }
       else
       {
-         getMessagingServer().getServerManagement().removeSecurityForAddress(prefix + destName);
+         getMessagingServer().getServerManagement().removeSecurityForAddress(destination);
       }
    }
 
@@ -659,18 +660,18 @@
 
    public Set<Role> getSecurityConfig() throws Exception
    {
-      return getMessagingServer().getServerManagement().getSecurityForAddress("*");
+      return getMessagingServer().getServerManagement().getSecurityForAddress(new SimpleString("*"));
    }
 
    public void setSecurityConfig(Set<Role> defConfig) throws Exception
    {
-      getMessagingServer().getServerManagement().removeSecurityForAddress("*");
-      getMessagingServer().getServerManagement().setSecurityForAddress("*", defConfig);      
+      getMessagingServer().getServerManagement().removeSecurityForAddress(new SimpleString("*"));
+      getMessagingServer().getServerManagement().setSecurityForAddress(new SimpleString("*"), defConfig);      
    }
 
    public void setRedeliveryDelayOnDestination(String dest, boolean queue, long delay) throws Exception
    {
-      String condition = (queue ? "queuejms." : "topicjms.") + dest;
+      SimpleString condition = new SimpleString((queue ? "queuejms." : "topicjms.") + dest);
       QueueSettings queueSettings = new QueueSettings();
       queueSettings.setRedeliveryDelay(delay);
       getMessagingServer().getServerManagement().setQueueAttributes(condition, queueSettings);      

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/AddressControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/AddressControlTest.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/AddressControlTest.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -88,20 +88,20 @@
 
    public void testGetAddress() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
 
       replay(server);
 
       AddressControl control = new AddressControl(address, server);
-      assertEquals(address, control.getAddress());
+      assertEquals(address.toString(), control.getAddress());
 
       verify(server);
    }
 
    public void testGetQueueNames() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       List<Queue> queues = new ArrayList<Queue>();
       Queue queue_1 = createMock(Queue.class);
@@ -110,8 +110,7 @@
       expect(queue_2.getName()).andStubReturn(randomSimpleString());
       queues.add(queue_1);
       queues.add(queue_2);
-      expect(server.getQueuesForAddress(new SimpleString(address))).andReturn(
-            queues);
+      expect(server.getQueuesForAddress(address)).andReturn(queues);
 
       replay(server, queue_1, queue_2);
 
@@ -126,7 +125,7 @@
 
    public void testGetRoleInfos() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       Set<Role> roles = new HashSet<Role>();
       Role role_1 = new Role(randomString(), randomBoolean(), randomBoolean(),
@@ -157,7 +156,7 @@
 
    public void testGetRoles() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       Set<Role> roles = new HashSet<Role>();
       Role role_1 = new Role(randomString(), randomBoolean(), randomBoolean(),
@@ -183,7 +182,7 @@
 
    public void testAddRole() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       expect(server.getSecurityForAddress(address)).andReturn(
             new HashSet<Role>());
@@ -199,7 +198,7 @@
 
    public void testAddRoleWhichAlreadExists() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       Set<Role> roles = new HashSet<Role>();
       Role role = new Role(randomString(), randomBoolean(), randomBoolean(),
@@ -225,7 +224,7 @@
 
    public void testRemoveRole() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       Set<Role> roles = new HashSet<Role>();
       Role role = new Role(randomString(), randomBoolean(), randomBoolean(),
@@ -243,7 +242,7 @@
 
    public void testRemoveRoleFromEmptySet() throws Exception
    {
-      String address = randomString();
+      SimpleString address = randomSimpleString();
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       expect(server.getSecurityForAddress(address)).andReturn(
             new HashSet<Role>());

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/ManagementServiceImplTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/ManagementServiceImplTest.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/ManagementServiceImplTest.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -28,6 +28,7 @@
 import static org.easymock.EasyMock.isA;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectInstance;
@@ -36,11 +37,18 @@
 import junit.framework.TestCase;
 
 import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.management.AddressControlMBean;
 import org.jboss.messaging.core.management.ManagementService;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.MessagingServerManagement;
+import org.jboss.messaging.core.management.QueueControlMBean;
+import org.jboss.messaging.core.management.impl.AddressControl;
 import org.jboss.messaging.core.management.impl.ManagementServiceImpl;
 import org.jboss.messaging.core.management.impl.MessagingServerControl;
+import org.jboss.messaging.core.management.impl.QueueControl;
+import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.util.SimpleString;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -71,7 +79,7 @@
       Configuration configuration = createMock(Configuration.class);
       MessagingServerManagement server = createMock(MessagingServerManagement.class);
       expect(server.getConfiguration()).andReturn(configuration);
-      expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+      //expect(mbeanServer.isRegistered(objectName)).andReturn(false);
       expect(
             mbeanServer.registerMBean(isA(MessagingServerControlMBean.class),
                   eq(objectName))).andReturn(objectInstance);
@@ -84,6 +92,31 @@
       verify(mbeanServer, server);
    }
 
+   public void testRegisterAlreadyRegisteredMessagingServer() throws Exception
+   {
+      ObjectName objectName = ManagementServiceImpl
+            .getMessagingServerObjectName();
+      ObjectInstance objectInstance = new ObjectInstance(objectName,
+            MessagingServerControl.class.getName());
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      Configuration configuration = createMock(Configuration.class);
+      MessagingServerManagement server = createMock(MessagingServerManagement.class);
+      expect(server.getConfiguration()).andReturn(configuration);
+      //expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+      //mbeanServer.unregisterMBean(objectName);
+      expect(
+            mbeanServer.registerMBean(isA(MessagingServerControlMBean.class),
+                  eq(objectName))).andReturn(objectInstance);
+
+      replay(mbeanServer, server);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.registerServer(server);
+
+      verify(mbeanServer, server);
+   }
+
    public void testUnregisterMessagingServer() throws Exception
    {
       ObjectName objectName = ManagementServiceImpl
@@ -101,6 +134,141 @@
       verify(mbeanServer);
    }
 
+   public void testRegisterAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl
+            .getAddressObjectName(address);
+      ObjectInstance objectInstance = new ObjectInstance(objectName,
+            AddressControl.class.getName());
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+      expect(
+            mbeanServer.registerMBean(isA(AddressControlMBean.class),
+                  eq(objectName))).andReturn(objectInstance);
+
+      replay(mbeanServer);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.registerAddress(address);
+
+      verify(mbeanServer);
+   }
+
+   public void testRegisterAlreadyRegisteredAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl
+            .getAddressObjectName(address);
+      ObjectInstance objectInstance = new ObjectInstance(objectName,
+            AddressControl.class.getName());
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+      mbeanServer.unregisterMBean(objectName);
+      expect(
+            mbeanServer.registerMBean(isA(AddressControlMBean.class),
+                  eq(objectName))).andReturn(objectInstance);
+
+      replay(mbeanServer);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.registerAddress(address);
+
+      verify(mbeanServer);
+   }
+
+   public void testUnregisterAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl
+            .getAddressObjectName(address);
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+      mbeanServer.unregisterMBean(objectName);
+
+      replay(mbeanServer);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.unregisterAddress(address);
+
+      verify(mbeanServer);
+   }
+
+   public void testRegisterQueue() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString name = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl.getQueueObjectName(address,
+            name);
+      ObjectInstance objectInstance = new ObjectInstance(objectName,
+            QueueControl.class.getName());
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      Queue queue = createMock(Queue.class);
+      expect(queue.getName()).andStubReturn(name);
+      StorageManager storageManager = createMock(StorageManager.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(false);
+      expect(
+            mbeanServer.registerMBean(isA(QueueControlMBean.class),
+                  eq(objectName))).andReturn(objectInstance);
+
+      replay(mbeanServer, queue, storageManager);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.registerQueue(queue, address, storageManager);
+
+      verify(mbeanServer, queue, storageManager);
+   }
+
+   public void testRegisterAlreadyRegisteredQueue() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString name = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl.getQueueObjectName(address,
+            name);
+      ObjectInstance objectInstance = new ObjectInstance(objectName,
+            QueueControl.class.getName());
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      Queue queue = createMock(Queue.class);
+      expect(queue.getName()).andStubReturn(name);
+      StorageManager storageManager = createMock(StorageManager.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+      mbeanServer.unregisterMBean(objectName);
+      expect(
+            mbeanServer.registerMBean(isA(QueueControlMBean.class),
+                  eq(objectName))).andReturn(objectInstance);
+
+      replay(mbeanServer, queue, storageManager);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.registerQueue(queue, address, storageManager);
+
+      verify(mbeanServer, queue, storageManager);
+   }
+
+   public void testUnregisterQueue() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString name = randomSimpleString();
+      ObjectName objectName = ManagementServiceImpl.getQueueObjectName(address,
+            name);
+
+      MBeanServer mbeanServer = createMock(MBeanServer.class);
+      expect(mbeanServer.isRegistered(objectName)).andReturn(true);
+      mbeanServer.unregisterMBean(objectName);
+
+      replay(mbeanServer);
+
+      ManagementService service = new ManagementServiceImpl(mbeanServer);
+      service.unregisterQueue(name, address);
+
+      verify(mbeanServer);
+   }
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerManagementImplTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerManagementImplTest.java	2008-08-01 15:15:29 UTC (rev 4765)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerManagementImplTest.java	2008-08-04 14:28:08 UTC (rev 4766)
@@ -22,21 +22,38 @@
 
 package org.jboss.messaging.tests.unit.core.management.impl;
 
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
 import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.easymock.EasyMock;
 import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.filter.Filter;
+import org.jboss.messaging.core.filter.impl.FilterImpl;
 import org.jboss.messaging.core.management.impl.MessagingServerManagementImpl;
 import org.jboss.messaging.core.persistence.StorageManager;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.server.ConnectionManager;
+import org.jboss.messaging.core.server.MessageReference;
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.QueueSettings;
+import org.jboss.messaging.core.version.Version;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.util.SimpleString;
@@ -44,14 +61,14 @@
 /**
  * 
  * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
- *
+ * 
  */
 public class MessagingServerManagementImplTest extends UnitTestCase
 {
    // Constants -----------------------------------------------------
-   
+
    // Attributes ----------------------------------------------------
-   
+
    private PostOffice mockPostOffice;
    private StorageManager mockStorageManager;
    private Configuration mockConfiguration;
@@ -59,24 +76,27 @@
    private HierarchicalRepository<Set<Role>> mockSecurityRepository;
    private HierarchicalRepository<QueueSettings> mockQueueSettingsRepository;
    private MessagingServer mockServer;
+
    // Static --------------------------------------------------------
-   
+
    // Constructors --------------------------------------------------
-   
+
    // Public --------------------------------------------------------
-   
+
    public void setUp() throws Exception
    {
       super.setUp();
-      
+
       mockPostOffice = EasyMock.createNiceMock(PostOffice.class);
       mockStorageManager = EasyMock.createNiceMock(StorageManager.class);
       mockConnectionManager = EasyMock.createNiceMock(ConnectionManager.class);
       mockConfiguration = EasyMock.createNiceMock(Configuration.class);
-      mockSecurityRepository = EasyMock.createNiceMock(HierarchicalRepository.class);
-      mockQueueSettingsRepository = EasyMock.createNiceMock(HierarchicalRepository.class);
+      mockSecurityRepository = EasyMock
+            .createNiceMock(HierarchicalRepository.class);
+      mockQueueSettingsRepository = EasyMock
+            .createNiceMock(HierarchicalRepository.class);
       mockServer = EasyMock.createNiceMock(MessagingServer.class);
-      
+
    }
 
    public void testcreateQueue() throws Exception
@@ -87,226 +107,631 @@
       mockPostOffice = EasyMock.createMock(PostOffice.class);
 
       EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(null);
-      
-      EasyMock.expect(mockPostOffice.addBinding(destination, name, null, true, false)).andReturn(null);
-      
+
+      EasyMock.expect(
+            mockPostOffice.addBinding(destination, name, null, true, false))
+            .andReturn(null);
+
       EasyMock.replay(mockPostOffice);
-      
+
       MessagingServerManagementImpl impl = createImpl();
-      
+
       impl.createQueue(destination, name);
-      
+
       EasyMock.verify(mockPostOffice);
 
       EasyMock.reset(mockPostOffice);
-      
-      EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(EasyMock.createNiceMock(Binding.class));
-      
+
+      EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(
+            EasyMock.createNiceMock(Binding.class));
+
       EasyMock.replay(mockPostOffice);
 
       impl.createQueue(destination, name);
-      
+
       EasyMock.verify(mockPostOffice);
-      
+
    }
 
+   public void testCreateQueueWithFullParameters() throws Exception
+   {
+      SimpleString destination = RandomUtil.randomSimpleString();
+      SimpleString name = RandomUtil.randomSimpleString();
+      SimpleString filterStr = new SimpleString("color = 'green'");
+      boolean durable = false;
+      boolean temporary = true;
+
+      mockPostOffice = EasyMock.createMock(PostOffice.class);
+
+      EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(null);
+
+      EasyMock.expect(
+            mockPostOffice.addBinding(eq(destination), eq(name),
+                  isA(Filter.class), eq(durable), eq(temporary))).andReturn(
+            null);
+
+      EasyMock.replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+
+      impl.createQueue(destination, name, filterStr, durable, temporary);
+
+      EasyMock.verify(mockPostOffice);
+
+      EasyMock.reset(mockPostOffice);
+
+      EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(
+            EasyMock.createNiceMock(Binding.class));
+
+      EasyMock.replay(mockPostOffice);
+
+      impl.createQueue(destination, name, filterStr, durable, temporary);
+
+      EasyMock.verify(mockPostOffice);
+
+   }
+
    public void testConnectionCount() throws Exception
    {
-      
+
       mockConnectionManager = EasyMock.createMock(ConnectionManager.class);
       EasyMock.expect(mockConnectionManager.size()).andReturn(123);
-      
+
       EasyMock.replay(mockConnectionManager);
-      
+
       MessagingServerManagementImpl impl = createImpl();
-      
+
       assertEquals(impl.getConnectionCount(), 123);
-      
+
    }
-   
+
    public void testDestroyQueue() throws Exception
    {
       SimpleString name = RandomUtil.randomSimpleString();
-      
+
       mockPostOffice = EasyMock.createMock(PostOffice.class);
-      
+
       Binding binding = EasyMock.createMock(Binding.class);
-      
+
       Queue queue = EasyMock.createMock(Queue.class);
 
-      
       EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(binding);
       EasyMock.expect(binding.getQueue()).andReturn(queue);
-      
+
       queue.deleteAllReferences(mockStorageManager);
-      
-      
+
       EasyMock.expect(queue.getName()).andReturn(name).atLeastOnce();
-      
+
       EasyMock.expect(mockPostOffice.removeBinding(name)).andReturn(binding);
-      
+
       EasyMock.replay(mockPostOffice, binding, queue);
-      
+
       MessagingServerManagementImpl impl = createImpl();
-      
+
       impl.destroyQueue(name);
-      
+
       EasyMock.verify(mockPostOffice, binding, queue);
-      
+
       EasyMock.reset(mockPostOffice, binding, queue);
-      
+
       EasyMock.expect(mockPostOffice.getBinding(name)).andReturn(null);
-      
+
       EasyMock.replay(mockPostOffice, binding, queue);
 
       impl.destroyQueue(name);
-      
+
       EasyMock.verify(mockPostOffice, binding, queue);
-      
+
    }
-   
+
    public void testAddDestination() throws Exception
    {
       SimpleString address = RandomUtil.randomSimpleString();
-      
+
       mockPostOffice = EasyMock.createMock(PostOffice.class);
-      
-      EasyMock.expect(mockPostOffice.addDestination(address, false)).andReturn(false);
-      
+
+      EasyMock.expect(mockPostOffice.addDestination(address, false)).andReturn(
+            false);
+
       EasyMock.replay(mockPostOffice);
-      
+
       MessagingServerManagementImpl impl = createImpl();
       assertFalse(impl.addDestination(address));
-      
+
       EasyMock.reset(mockPostOffice);
-      
-      EasyMock.expect(mockPostOffice.addDestination(address, false)).andReturn(true);
-      
+
+      EasyMock.expect(mockPostOffice.addDestination(address, false)).andReturn(
+            true);
+
       EasyMock.replay(mockPostOffice);
 
       assertTrue(impl.addDestination(address));
-      
+
       EasyMock.verify(mockPostOffice);
-      
+
    }
-   
+
    public void testRemoveDestination() throws Exception
    {
       SimpleString address = RandomUtil.randomSimpleString();
-      
+
       mockPostOffice = EasyMock.createMock(PostOffice.class);
-      
-      EasyMock.expect(mockPostOffice.removeDestination(address, false)).andReturn(false);
-      
+
+      EasyMock.expect(mockPostOffice.removeDestination(address, false))
+            .andReturn(false);
+
       EasyMock.replay(mockPostOffice);
-      
+
       MessagingServerManagementImpl impl = createImpl();
       assertFalse(impl.removeDestination(address));
-      
+
       EasyMock.reset(mockPostOffice);
-      
-      EasyMock.expect(mockPostOffice.removeDestination(address, false)).andReturn(true);
-      
+
+      EasyMock.expect(mockPostOffice.removeDestination(address, false))
+            .andReturn(true);
+
       EasyMock.replay(mockPostOffice);
 
       assertTrue(impl.removeDestination(address));
-      
+
       EasyMock.verify(mockPostOffice);
-      
+
    }
 
-   
    public void testRemoveAllMessagesForAddress() throws Exception
    {
       SimpleString address = RandomUtil.randomSimpleString();
 
       int numberOfQueues = 10;
-      
+
       ArrayList<Queue> queues = new ArrayList<Queue>();
       ArrayList<Binding> bindings = new ArrayList<Binding>();
-      
+
       for (int i = 0; i < numberOfQueues; i++)
       {
          Queue queue = EasyMock.createMock(Queue.class);
          queues.add(queue);
-         
+
          Binding binding = EasyMock.createMock(Binding.class);
          bindings.add(binding);
-         
+
          EasyMock.expect(binding.getQueue()).andReturn(queue);
-         
+
          queue.deleteAllReferences(mockStorageManager);
       }
-      
+
       mockPostOffice = EasyMock.createMock(PostOffice.class);
-      
-      EasyMock.expect(mockPostOffice.getBindingsForAddress(address)).andReturn(bindings);
 
+      EasyMock.expect(mockPostOffice.getBindingsForAddress(address)).andReturn(
+            bindings);
+
       EasyMock.replay(mockPostOffice);
-      
+
       EasyMock.replay(queues.toArray());
-      
+
       EasyMock.replay(bindings.toArray());
-      
+
       MessagingServerManagementImpl impl = createImpl();
-      
+
       impl.removeAllMessagesForAddress(address);
 
       EasyMock.verify(mockPostOffice);
-      
+
       EasyMock.verify(queues.toArray());
-      
+
       EasyMock.verify(bindings.toArray());
-      
-   
+
    }
-   
-   
+
+   public void testRemoveMessageForAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+      expect(binding.getQueue()).andReturn(queue);
+      expect(queue.deleteReference(messageID, mockStorageManager)).andReturn(
+            true);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertTrue(impl.removeMessageFromAddress(messageID, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager);
+   }
+
+   public void testRemoveMessageForUnkownAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertFalse(impl.removeMessageFromAddress(messageID, address));
+
+      verify(mockPostOffice);
+   }
+
+   public void testExpireMessage() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+      expect(binding.getQueue()).andReturn(queue);
+      expect(
+            queue.expireMessage(messageID, mockStorageManager, mockPostOffice,
+                  mockQueueSettingsRepository)).andReturn(true);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertTrue(impl.expireMessage(messageID, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager);
+   }
+
+   public void testExpireMessageForUnkownAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertFalse(impl.expireMessage(messageID, address));
+
+      verify(mockPostOffice);
+   }
+
+   public void testExpireMessages() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+      expect(binding.getQueue()).andReturn(queue);
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref = createMock(MessageReference.class);
+      refs.add(ref);
+      ServerMessage message = createMock(ServerMessage.class);
+      expect(message.getMessageID()).andReturn(messageID);
+      expect(ref.getMessage()).andReturn(message);
+      expect(queue.list(filter)).andReturn(refs);
+      expect(
+            queue.expireMessage(messageID, mockStorageManager, mockPostOffice,
+                  mockQueueSettingsRepository)).andReturn(true);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(1, impl.expireMessages(filter, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+   }
+
+   public void testExpireMessagesForUnknownAddress() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(0, impl.expireMessages(filter, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager);
+   }
+
+   public void testSendMessagesToDLQ() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+      expect(binding.getQueue()).andReturn(queue);
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref = createMock(MessageReference.class);
+      refs.add(ref);
+      ServerMessage message = createMock(ServerMessage.class);
+      expect(message.getMessageID()).andReturn(messageID);
+      expect(ref.getMessage()).andReturn(message);
+      expect(queue.list(filter)).andReturn(refs);
+      expect(
+            queue.sendMessageToDLQ(messageID, mockStorageManager,
+                  mockPostOffice, mockQueueSettingsRepository)).andReturn(true);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(1, impl.sendMessagesToDLQ(filter, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+   }
+
+   public void testSendMessagesToDLQForUnknownAddress() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+
+      mockPostOffice = createMock(PostOffice.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(0, impl.sendMessagesToDLQ(filter, address));
+
+      verify(mockPostOffice);
+   }
+
+   public void testChangeMessagesPriority() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+      long messageID = randomLong();
+      byte newPriority = (byte) 9;
+
+      mockPostOffice = createMock(PostOffice.class);
+      Binding binding = createMock(Binding.class);
+      Queue queue = createMock(Queue.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+      expect(binding.getQueue()).andReturn(queue);
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref = createMock(MessageReference.class);
+      refs.add(ref);
+      ServerMessage message = createMock(ServerMessage.class);
+      expect(message.getMessageID()).andReturn(messageID);
+      expect(ref.getMessage()).andReturn(message);
+      expect(queue.list(filter)).andReturn(refs);
+      expect(
+            queue.changeMessagePriority(messageID, newPriority,
+                  mockStorageManager, mockPostOffice,
+                  mockQueueSettingsRepository)).andReturn(true);
+
+      replay(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(1, impl.changeMessagesPriority(filter, newPriority, address));
+
+      verify(mockPostOffice, binding, queue, mockStorageManager, ref, message);
+   }
+
+   public void testChangeMessagesPriorityForUnknownAddress() throws Exception
+   {
+      Filter filter = new FilterImpl(new SimpleString("color = 'green'"));
+      SimpleString address = randomSimpleString();
+      byte newPriority = (byte) 9;
+
+      mockPostOffice = createMock(PostOffice.class);
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(0, impl.changeMessagesPriority(filter, newPriority, address));
+
+      verify(mockPostOffice);
+   }
+
    public void testGetQueuesForAddress() throws Exception
    {
-      
+
       int numberOfQueues = 10;
-      
+
       ArrayList<Queue> queues = new ArrayList<Queue>();
       ArrayList<Binding> bindings = new ArrayList<Binding>();
-      
+
       for (int i = 0; i < numberOfQueues; i++)
       {
          Queue queue = EasyMock.createMock(Queue.class);
 
          queues.add(queue);
-         
+
          Binding binding = EasyMock.createMock(Binding.class);
-         
+
          bindings.add(binding);
-         
+
          EasyMock.expect(binding.getQueue()).andReturn(queue);
       }
-      
 
       SimpleString address = RandomUtil.randomSimpleString();
-      
-      EasyMock.expect(mockPostOffice.getBindingsForAddress(address)).andReturn(bindings);
-      
+
+      EasyMock.expect(mockPostOffice.getBindingsForAddress(address)).andReturn(
+            bindings);
+
       EasyMock.replay(mockPostOffice);
       EasyMock.replay(queues.toArray());
       EasyMock.replay(bindings.toArray());
-      
+
       MessagingServerManagementImpl impl = createImpl();
       assertEquals(numberOfQueues, impl.getQueuesForAddress(address).size());
 
       EasyMock.verify(mockPostOffice);
       EasyMock.verify(queues.toArray());
       EasyMock.verify(bindings.toArray());
-      
+
    }
 
-   
-   
+   public void testIsStarted() throws Exception
+   {
+      expect(mockServer.isStarted()).andReturn(true);
+
+      replay(mockServer);
+      MessagingServerManagementImpl impl = createImpl();
+      assertTrue(impl.isStarted());
+
+      verify(mockServer);
+   }
+
+   public void testGetVersion() throws Exception
+   {
+      String fullVersion = randomString();
+      Version version = createMock(Version.class);
+      expect(version.getFullVersion()).andReturn(fullVersion);
+      expect(mockServer.getVersion()).andReturn(version);
+
+      replay(mockServer, version);
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(fullVersion, impl.getVersion());
+
+      verify(mockServer, version);
+   }
+
+   public void testGetConfiguration() throws Exception
+   {
+      replay(mockConfiguration);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(mockConfiguration, impl.getConfiguration());
+
+      verify(mockConfiguration);
+   }
+
+   public void testGetQueueSettings() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      QueueSettings settings = new QueueSettings();
+      expect(mockQueueSettingsRepository.getMatch(address.toString()))
+            .andReturn(settings);
+
+      replay(mockQueueSettingsRepository);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(settings, impl.getQueueSettings(address));
+
+      verify(mockQueueSettingsRepository);
+   }
+
+   public void testSetQueueAttributes() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      QueueSettings settings = new QueueSettings();
+      mockQueueSettingsRepository.addMatch(address.toString(), settings);
+
+      replay(mockQueueSettingsRepository);
+
+      MessagingServerManagementImpl impl = createImpl();
+      impl.setQueueAttributes(address, settings);
+
+      verify(mockQueueSettingsRepository);
+   }
+
+   public void testSetSecurityForAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      Set<Role> roles = new HashSet<Role>();
+      roles.add(new Role(randomString()));
+      mockSecurityRepository.addMatch(address.toString(), roles);
+
+      replay(mockSecurityRepository);
+
+      MessagingServerManagementImpl impl = createImpl();
+      impl.setSecurityForAddress(address, roles);
+
+      verify(mockSecurityRepository);
+   }
+
+   public void testGetSecurityForAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      Set<Role> roles = new HashSet<Role>();
+      Role role = new Role(randomString());
+      roles.add(role);
+      expect(mockSecurityRepository.getMatch(address.toString())).andReturn(
+            roles);
+
+      replay(mockSecurityRepository);
+
+      MessagingServerManagementImpl impl = createImpl();
+      Set<Role> matchedRoles = impl.getSecurityForAddress(address);
+      assertNotNull(matchedRoles);
+      assertEquals(1, matchedRoles.size());
+
+      verify(mockSecurityRepository);
+   }
+
+   public void testRemoveSecurityForAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      Set<Role> roles = new HashSet<Role>();
+      roles.add(new Role(randomString()));
+      mockSecurityRepository.removeMatch(address.toString());
+
+      replay(mockSecurityRepository);
+
+      MessagingServerManagementImpl impl = createImpl();
+      impl.removeSecurityForAddress(address);
+
+      verify(mockSecurityRepository);
+   }
+
+   public void testGetQueue() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      Queue queue = createMock(Queue.class);
+      Binding binding = createMock(Binding.class);
+      expect(binding.getQueue()).andReturn(queue);
+      expect(mockPostOffice.getBinding(address)).andReturn(binding);
+
+      replay(mockPostOffice, binding, queue);
+
+      MessagingServerManagementImpl impl = createImpl();
+      assertEquals(queue, impl.getQueue(address));
+
+      verify(mockPostOffice, binding, queue);
+   }
+
+   public void testGetQueueForUnknownAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      expect(mockPostOffice.getBinding(address)).andReturn(null);
+
+      replay(mockPostOffice);
+
+      MessagingServerManagementImpl impl = createImpl();
+      try
+      {
+         impl.getQueue(address);
+         fail("IllegalArgumentExcepion");
+      } catch (IllegalArgumentException e)
+      {
+      }
+
+      verify(mockPostOffice);
+   }
+
    // Package protected ---------------------------------------------
-   
+
    // Protected -----------------------------------------------------
-   
+
    // Private -------------------------------------------------------
 
    private MessagingServerManagementImpl createImpl()
@@ -317,5 +742,5 @@
    }
 
    // Inner classes -------------------------------------------------
-   
+
 }




More information about the jboss-cvs-commits mailing list