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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 24 11:53:05 EDT 2008


Author: jmesnil
Date: 2008-07-24 11:53:05 -0400 (Thu, 24 Jul 2008)
New Revision: 4726

Modified:
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
   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/management/JMSServerControlMBean.java
   branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
   branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* added expireMessage(messageID) & expireMessages(filter) to QueueControlMBean

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/ManagementRegistration.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -23,7 +23,10 @@
 package org.jboss.messaging.core.management;
 
 import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -34,6 +37,11 @@
  */
 public interface ManagementRegistration
 {
+   void setPostOffice(PostOffice postOffice);
+
+   void setQueueSettingsRepository(
+         HierarchicalRepository<QueueSettings> queueSettingsRepository);
+
    void registerServer(MessagingServerManagement server)
          throws Exception;
 

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -80,4 +80,15 @@
    boolean removeMessage(
          @Parameter(name = "messageID", desc = "A message ID") long messageID)
          throws Exception;
+
+   @Operation(desc = "Remove the message corresponding to the given filter (and returns the number of expired messages)", impact = ACTION)
+   int expireMessages(
+         @Parameter(name = "filter", desc = "A message filter") String filter)
+         throws Exception;
+
+   @Operation(desc = "Remove the message corresponding to the given messageID", impact = ACTION)
+   boolean expireMessage(
+         @Parameter(name = "messageID", desc = "A message ID") long messageID)
+         throws Exception;
+
 }

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/ManagementRegistrationImpl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -31,7 +31,10 @@
 import org.jboss.messaging.core.management.MessagingServerManagement;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.util.SimpleString;
 
 /**
@@ -52,6 +55,8 @@
 
    private final MBeanServer mbeanServer;
    private MessagingServerManagement server;
+   private PostOffice postOffice;
+   private HierarchicalRepository<QueueSettings> queueSettingsRepository;
 
    // Static --------------------------------------------------------
 
@@ -86,6 +91,17 @@
 
    // ManagementRegistration implementation -------------------------
 
+   public void setPostOffice(PostOffice postOffice)
+   {
+      this.postOffice = postOffice;
+   }
+
+   public void setQueueSettingsRepository(
+         HierarchicalRepository<QueueSettings> queueSettingsRepository)
+   {
+      this.queueSettingsRepository = queueSettingsRepository;
+   }
+
    public void registerServer(MessagingServerManagement server)
          throws Exception
    {
@@ -112,7 +128,7 @@
          mbeanServer.unregisterMBean(getMessagingServerObjectName());
       }
    }
-   
+
    public void registerAddress(String address) throws Exception
    {
       ObjectName objectName = getAddressObjectName(address);
@@ -135,8 +151,8 @@
       mbeanServer.unregisterMBean(getAddressObjectName(address));
    }
 
-   public void registerQueue(Queue queue, SimpleString address, StorageManager storageManager)
-         throws Exception
+   public void registerQueue(Queue queue, SimpleString address,
+         StorageManager storageManager) throws Exception
    {
       ObjectName objectName = getQueueObjectName(address, queue.getName());
       if (mbeanServer.isRegistered(objectName))
@@ -145,7 +161,7 @@
                + " is already registered. Unregister it");
          mbeanServer.unregisterMBean(objectName);
       }
-      QueueControlMBean queueControl = new QueueControl(queue, storageManager);
+      QueueControlMBean queueControl = new QueueControl(queue, storageManager, postOffice, queueSettingsRepository);
       mbeanServer.registerMBean(queueControl, objectName);
       if (log.isDebugEnabled())
       {

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -35,9 +35,12 @@
 import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.MessageReference;
 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.util.SimpleString;
 
 /**
@@ -55,17 +58,23 @@
 
    public final Queue queue;
    private final StorageManager storageManager;
+   private final PostOffice postOffice;
+   private final HierarchicalRepository<QueueSettings> queueSettingsRepository;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   public QueueControl(Queue queue, StorageManager storageManager)
+   public QueueControl(Queue queue, StorageManager storageManager,
+         PostOffice postOffice,
+         HierarchicalRepository<QueueSettings> queueSettingsRepository)
          throws NotCompliantMBeanException
    {
       super(QueueControlMBean.class);
       this.queue = queue;
       this.storageManager = storageManager;
+      this.postOffice = postOffice;
+      this.queueSettingsRepository = queueSettingsRepository;
    }
 
    // Public --------------------------------------------------------
@@ -197,6 +206,43 @@
       }
    }
 
+   public boolean expireMessage(long messageID) throws Exception
+   {
+      List<MessageReference> refs = queue.list(null);
+      for (MessageReference ref : refs)
+      {
+         if (ref.getMessage().getMessageID() == messageID)
+         {
+            ref.expire(storageManager, postOffice, queueSettingsRepository);
+            queue.removeReferenceWithID(messageID);
+            return true;
+         }
+      }
+      return false;
+   }
+
+   public int expireMessages(String filterStr) throws Exception
+   {
+      try
+      {
+         Filter filter = null;
+         if (filterStr != null)
+         {
+            filter = new FilterImpl(new SimpleString(filterStr));
+         }
+         List<MessageReference> refs = queue.list(filter);
+         for (MessageReference ref : refs)
+         {
+            ref.expire(storageManager, postOffice, queueSettingsRepository);
+            queue.removeReferenceWithID(ref.getMessage().getMessageID());
+         }
+         return refs.size();
+      } catch (MessagingException e)
+      {
+         throw new IllegalStateException(e.getMessage());
+      }
+   }
+
    // StandardMBean overrides ---------------------------------------
 
    @Override

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-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -127,6 +127,7 @@
       	}
       	 
          flowControllers.put(address, new FlowControllerImpl(address, this));
+         managementRegistration.registerAddress(address.toString());
    	}
    	
    	return added;
@@ -144,6 +145,7 @@
          {
       		storageManager.deleteDestination(address);
          }
+      	managementRegistration.unregisterAddress(address.toString());
       }
 
       return removed;

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -173,10 +173,12 @@
       this.connectionManager = cm;
       this.sessionListener = cm;   
       queueSettingsRepository.setDefault(new QueueSettings());
+      managementRegistration.setQueueSettingsRepository(queueSettingsRepository);
       scheduledExecutor = new ScheduledThreadPoolExecutor(configuration.getScheduledThreadPoolMaxSize(), new JBMThreadFactory("JBM-scheduled-threads"));                  
       queueFactory = new QueueFactoryImpl(scheduledExecutor, queueSettingsRepository);      
       postOffice = new PostOfficeImpl(storageManager, queueFactory, configuration.isRequireDestinations());
       postOffice.setManagementRegistration(managementRegistration);
+      managementRegistration.setPostOffice(postOffice);
       threadPool = Executors.newFixedThreadPool(configuration.getThreadPoolMaxSize(), new JBMThreadFactory("JBM-session-threads"));
       executorFactory = new OrderedExecutorFactory(threadPool);                 
       securityRepository = new HierarchicalObjectRepository<Set<Role>>();

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/JMSServerManager.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -35,6 +35,9 @@
  */
 public interface JMSServerManager extends Serializable
 {
+   
+   String getVersion();
+
    /**
     * Has the Server been started.
     * @return true if the server us running

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-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -131,6 +131,11 @@
    {
       return messagingServerManagement.isStarted();
    }
+   
+   public String getVersion()
+   {
+      return messagingServerManagement.getVersion();
+   }
 
    public boolean createQueue(String queueName, String jndiBinding) throws Exception
    {

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -44,107 +44,49 @@
     */
    boolean isStarted();
 
+   String getVersion();
+
    // Operations ----------------------------------------------------
 
-   /**
-    * Creates a JMS Queue.
-    * 
-    * @param queueName
-    *           The name of the queue to create
-    * @param jndiBinding
-    *           the name of the binding for JNDI
-    * @return true if the queue is created or if it already existed and was
-    *         added to JNDI
-    * 
-    * @throws Exception
-    *            if problems were encountered creating the queue.
-    */
    @Operation(desc = "Create a JMS Queue", impact = ACTION)
    boolean createQueue(
          @Parameter(name = "name", desc = "Name of the queue to create") String name,
          @Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
          throws Exception;
 
-   /**
-    * destroys a queue and removes it from JNDI
-    * 
-    * @param name
-    *           the name of the queue to destroy
-    * @return true if destroyed
-    * @throws Exception
-    *            if a problem occurred destroying the queue
-    */
    @Operation(desc = "Destroy a JMS Queue", impact = ACTION)
    boolean destroyQueue(
          @Parameter(name = "name", desc = "Name of the queue to destroy") String name)
          throws Exception;
 
-   /**
-    * Creates a JMS Topic
-    * 
-    * @param topicName
-    *           the name of the topic
-    * @param jndiBinding
-    *           the name of the binding for JNDI
-    * @throws Exception
-    *            if a problem occurred creating the topic
-    */
    @Operation(desc = "Create a JMS Topic", impact = ACTION)
    boolean createTopic(
          @Parameter(name = "name", desc = "Name of the topic to create") String name,
          @Parameter(name = "jndiBinding", desc = "the name of the binding for JNDI") String jndiBinding)
          throws Exception;
 
-   /**
-    * destroys a topic and removes it from JNDI
-    * 
-    * @param name
-    *           the name of the topic to destroy
-    * @throws Exception
-    *            if a problem occurred destroying the topic
-    */
    @Operation(desc = "Destroy a JMS Topic", impact = ACTION)
    boolean destroyTopic(
          @Parameter(name = "name", desc = "Name of the topic to destroy") String name)
          throws Exception;
 
-   /**
-    * Creates a connection factory
-    * 
-    * @param name
-    *           the name of this connection factory
-    * @param clientID
-    *           the client id
-    * @param dupsOKBatchSize
-    *           the bath size
-    * @param consumerWindowSize
-    *           The consumer window size
-    * @param consumerMaxRate
-    *           the Consumer max rate
-    * @param producerWindowSize
-    *           the producer window size
-    * @param producerMaxRate
-    *           the producer max rate
-    * @param jndiBinding
-    *           the binding name for JNDI
-    * @throws Exception
-    *            if a problem occurred creating the connection factory
-    */
-   void createConnectionFactory(String name, String clientID,
-         int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
-         int producerWindowSize, int producerMaxRate,
-         boolean blockOnAcknowledge,
-         boolean defaultSendNonPersistentMessagesBlocking,
-         boolean defaultSendPersistentMessagesBlocking, String jndiBinding)
+   @Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
+   void createConnectionFactory(
+         @Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name,
+         @Parameter(name = "jndiBinding", desc = "JNDI Binding") String jndiBinding,
+         @Parameter(name = "clientID", desc = "ClientID for created connections") String clientID,
+         @Parameter(name = "dupsOKBatchSize", desc = "Size of the batch when using DUPS_OK") int dupsOKBatchSize,
+         @Parameter(name = "consumerWindowSize", desc = "Consumer's window size") int consumerWindowSize,
+         @Parameter(name = "consumerMaxRate", desc = "Consumer's max rate") int consumerMaxRate,
+         @Parameter(name = "producerWindowSize", desc = "Producer's window size") int producerWindowSize,
+         @Parameter(name = "producerMaxRate", desc = "Producer's max rate") int producerMaxRate,
+         @Parameter(name = "blockOnAcknowledge", desc = "Does acknowlegment block?") boolean blockOnAcknowledge,
+         @Parameter(name = "defaultSendNonPersistentMessagesBlocking", desc = "Does sending non persistent messages block?") boolean defaultSendNonPersistentMessagesBlocking,
+         @Parameter(name = "defaultSendPersistentMessagesBlocking", desc = "Does sending persistent messages block") boolean defaultSendPersistentMessagesBlocking)
          throws Exception;
 
-   /**
-    * destroys a connection factory.
-    * 
-    * @param name
-    *           the name of the connection factory to destroy
-    * @throws Exception
-    *            if a problem occurred destroying the connection factory
-    */
-   void destroyConnectionFactory(String name) throws Exception;
+   @Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
+   void destroyConnectionFactory(
+         @Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name)
+         throws Exception;
 }

Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -75,12 +75,12 @@
 
    // JMSServerControlMBean implementation --------------------------
 
-   public void createConnectionFactory(String name, String clientID,
-         int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
-         int producerWindowSize, int producerMaxRate,
+   public void createConnectionFactory(String name, String jndiBinding,
+         String clientID, int dupsOKBatchSize, int consumerWindowSize,
+         int consumerMaxRate, int producerWindowSize,
+         int producerMaxRate,
          boolean blockOnAcknowledge,
-         boolean defaultSendNonPersistentMessagesBlocking,
-         boolean defaultSendPersistentMessagesBlocking, String jndiBinding)
+         boolean defaultSendNonPersistentMessagesBlocking, boolean defaultSendPersistentMessagesBlocking)
          throws Exception
    {
       List<String> bindings = new ArrayList<String>();
@@ -151,6 +151,11 @@
    {
       return server.isStarted();
    }
+   
+   public String getVersion()
+   {
+      return server.getVersion();
+   }
 
    // NotificationEmitter implementation ----------------------------
 

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -22,6 +22,7 @@
 
 package org.jboss.messaging.tests.unit.core.management.impl;
 
+import static org.easymock.EasyMock.anyLong;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expectLastCall;
@@ -44,14 +45,18 @@
 
 import junit.framework.TestCase;
 
+import org.easymock.EasyMock;
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.management.impl.QueueControl;
 import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.MessageReference;
 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.util.SimpleString;
 
 /**
@@ -79,13 +84,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getName()).andReturn(new SimpleString(name));
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(name, control.getName());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetFilter() throws Exception
@@ -96,13 +104,16 @@
       expect(filter.getFilterString()).andReturn(new SimpleString(filterStr));
       expect(queue.getFilter()).andReturn(filter);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager, filter);
+      replay(queue, storageManager, postOffice, repository, filter);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(filterStr, control.getFilter());
 
-      verify(queue, storageManager, filter);
+      verify(queue, storageManager, postOffice, repository, filter);
    }
 
    public void testGetFilterWithNull() throws Exception
@@ -110,13 +121,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getFilter()).andReturn(null);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertNull(control.getFilter());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testIsClustered() throws Exception
@@ -126,13 +140,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.isClustered()).andReturn(clustered);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(clustered, control.isClustered());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testIsDurable() throws Exception
@@ -142,13 +159,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.isDurable()).andReturn(durable);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(durable, control.isDurable());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testIsTemporary() throws Exception
@@ -158,13 +178,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.isTemporary()).andReturn(temp);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(temp, control.isTemporary());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetMessageCount() throws Exception
@@ -174,13 +197,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getMessageCount()).andReturn(count);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(count, control.getMessageCount());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetMessagesAdded() throws Exception
@@ -190,13 +216,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getMessagesAdded()).andReturn(count);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(count, control.getMessagesAdded());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetMaxSizeBytes() throws Exception
@@ -206,13 +235,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getMaxSizeBytes()).andReturn(size);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(size, control.getMaxSizeBytes());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetSizeBytes() throws Exception
@@ -222,13 +254,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getSizeBytes()).andReturn(size);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(size, control.getSizeBytes());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetScheduledCount() throws Exception
@@ -238,13 +273,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getScheduledCount()).andReturn(count);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(count, control.getScheduledCount());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetConsumerCount() throws Exception
@@ -254,13 +292,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getConsumerCount()).andReturn(count);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(count, control.getConsumerCount());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetDeliveringCount() throws Exception
@@ -270,13 +311,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getDeliveringCount()).andReturn(count);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(count, control.getDeliveringCount());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testGetPersistenceID() throws Exception
@@ -286,13 +330,16 @@
       Queue queue = createMock(Queue.class);
       expect(queue.getPersistenceID()).andReturn(id);
       StorageManager storageManager = createMock(StorageManager.class);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControl control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(id, control.getPersistenceID());
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testRemoveAllMessages() throws Exception
@@ -300,13 +347,16 @@
       Queue queue = createMock(Queue.class);
       StorageManager storageManager = createMock(StorageManager.class);
       queue.deleteAllReferences(storageManager);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       control.removeAllMessages();
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testRemoveAllMessagesThrowsException() throws Exception
@@ -315,10 +365,13 @@
       StorageManager storageManager = createMock(StorageManager.class);
       queue.deleteAllReferences(storageManager);
       expectLastCall().andThrow(new MessagingException());
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       try
       {
          control.removeAllMessages();
@@ -328,7 +381,7 @@
 
       }
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testRemoveMessage() throws Exception
@@ -340,13 +393,16 @@
       StorageManager storageManager = createMock(StorageManager.class);
       expect(queue.deleteReference(messageID, storageManager)).andReturn(
             deleted);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       assertEquals(deleted, control.removeMessage(messageID));
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testRemoveMessageThrowsException() throws Exception
@@ -357,10 +413,13 @@
       StorageManager storageManager = createMock(StorageManager.class);
       expect(queue.deleteReference(messageID, storageManager)).andThrow(
             new MessagingException());
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager);
+      replay(queue, storageManager, postOffice, repository);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       try
       {
          control.removeMessage(messageID);
@@ -370,7 +429,7 @@
 
       }
 
-      verify(queue, storageManager);
+      verify(queue, storageManager, postOffice, repository);
    }
 
    public void testListMessages() throws Exception
@@ -395,10 +454,13 @@
       Queue queue = createMock(Queue.class);
       StorageManager storageManager = createMock(StorageManager.class);
       expect(queue.list(isA(Filter.class))).andReturn(refs);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
 
-      replay(queue, storageManager, ref, message);
+      replay(queue, storageManager, postOffice, repository, ref, message);
 
-      QueueControlMBean control = new QueueControl(queue, storageManager);
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
       TabularData data = control.listMessages(filterStr);
       assertEquals(1, data.size());
       CompositeData info = data.get(new Object[] { message.getMessageID() });
@@ -412,9 +474,98 @@
       assertEquals(message.getPriority(), info.get("priority"));
       assertEquals(message.isExpired(), info.get("expired"));
       assertEquals(message.getExpiration(), info.get("expiration"));
-      verify(queue, storageManager, ref, message);
+
+      verify(queue, storageManager, postOffice, repository, ref, message);
    }
 
+   public void testExpireMessageWithMessageID() throws Exception
+   {
+      long messageID = randomLong();
+
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref = createMock(MessageReference.class);
+      ServerMessage message = createMock(ServerMessage.class);
+      expect(message.getMessageID()).andStubReturn(messageID);
+      expect(ref.getMessage()).andReturn(message);
+      refs.add(ref);
+      Queue queue = createMock(Queue.class);
+      StorageManager storageManager = createMock(StorageManager.class);
+      expect(queue.list(null)).andReturn(refs);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+      ref.expire(storageManager, postOffice, repository);
+      expect(queue.removeReferenceWithID(messageID)).andReturn(true);
+
+      replay(queue, storageManager, postOffice, repository, ref, message);
+
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
+      assertTrue(control.expireMessage(messageID));
+
+      verify(queue, storageManager, postOffice, repository, ref, message);
+   }
+
+   public void testExpireMessageWithNoMatch() throws Exception
+   {
+      long messageID = randomLong();
+
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref = createMock(MessageReference.class);
+      ServerMessage message = createMock(ServerMessage.class);
+      expect(message.getMessageID()).andStubReturn(messageID + 1);
+      expect(ref.getMessage()).andReturn(message);
+      refs.add(ref);
+      Queue queue = createMock(Queue.class);
+      StorageManager storageManager = createMock(StorageManager.class);
+      expect(queue.list(null)).andReturn(refs);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+      replay(queue, storageManager, postOffice, repository, ref, message);
+
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
+      assertFalse(control.expireMessage(messageID));
+
+      verify(queue, storageManager, postOffice, repository, ref, message);
+   }
+
+   public void testExpireMessagesWithFilter() throws Exception
+   {
+      long messageID_1 = randomLong();
+      long messageID_2 = randomLong();
+
+      List<MessageReference> refs = new ArrayList<MessageReference>();
+      MessageReference ref_1 = createMock(MessageReference.class);
+      ServerMessage message_1 = createMock(ServerMessage.class);
+      expect(message_1.getMessageID()).andStubReturn(messageID_1);
+      expect(ref_1.getMessage()).andReturn(message_1);
+      MessageReference ref_2 = createMock(MessageReference.class);
+      ServerMessage message_2 = createMock(ServerMessage.class);
+      expect(message_2.getMessageID()).andStubReturn(messageID_2);
+      expect(ref_2.getMessage()).andReturn(message_2);
+      refs.add(ref_1);
+      refs.add(ref_2);
+      Queue queue = createMock(Queue.class);
+      StorageManager storageManager = createMock(StorageManager.class);
+      expect(queue.list(isA(Filter.class))).andReturn(refs);
+      PostOffice postOffice = createMock(PostOffice.class);
+      HierarchicalRepository<QueueSettings> repository = createMock(HierarchicalRepository.class);
+      ref_1.expire(storageManager, postOffice, repository);
+      ref_2.expire(storageManager, postOffice, repository);
+      expect(queue.removeReferenceWithID(messageID_1)).andReturn(true);
+      expect(queue.removeReferenceWithID(messageID_2)).andReturn(true);
+
+      replay(queue, storageManager, postOffice, repository, ref_1, ref_2,
+            message_1, message_2);
+
+      QueueControlMBean control = new QueueControl(queue, storageManager,
+            postOffice, repository);
+      assertEquals(2, control.expireMessages("foo = true"));
+
+      verify(queue, storageManager, postOffice, repository, ref_1, ref_2,
+            message_1, message_2);
+   }
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java	2008-07-24 15:43:36 UTC (rev 4725)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java	2008-07-24 15:53:05 UTC (rev 4726)
@@ -293,11 +293,11 @@
       };
 
       mbeanServer.addNotificationListener(serverON, listener, null, null);
-      control.createConnectionFactory(name, clientID, dupsOKBatchSize,
-            consumerWindowSize, consumerMaxRate, producerWindowSize,
-            producerMaxRate, blockOnAcknowledge,
-            defaultSendNonPersistentMessagesBlocking,
-            defaultSendPersistentMessagesBlocking, jndiBinding);
+      control.createConnectionFactory(name, jndiBinding, clientID,
+            dupsOKBatchSize, consumerWindowSize, consumerMaxRate,
+            producerWindowSize, producerMaxRate,
+            blockOnAcknowledge,
+            defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
 
       boolean gotNotification = latch.await(500, MILLISECONDS);
       assertTrue(gotNotification);




More information about the jboss-cvs-commits mailing list