[jboss-cvs] JBoss Messaging SVN: r6074 - in trunk: src/main/org/jboss/messaging/core/management and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 13 08:45:31 EDT 2009


Author: jmesnil
Date: 2009-03-13 08:45:31 -0400 (Fri, 13 Mar 2009)
New Revision: 6074

Modified:
   trunk/src/main/org/jboss/messaging/core/client/ClientMessage.java
   trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
   trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
Log:
QueueControl integration tests

Modified: trunk/src/main/org/jboss/messaging/core/client/ClientMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ClientMessage.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/src/main/org/jboss/messaging/core/client/ClientMessage.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -34,8 +34,6 @@
  */
 public interface ClientMessage extends Message
 {
-   long getMessageID();
-
    int getDeliveryCount();
    
    void setDeliveryCount(int deliveryCount);

Modified: trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -40,6 +40,8 @@
 
    String getName();
 
+   String getAddress();
+   
    long getPersistenceID();
 
    boolean isTemporary();

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -225,7 +225,7 @@
                                                   messageCounterManager.getMaxDayCount());
       messageCounterManager.registerMessageCounter(queue.getName().toString(), counter);
       ObjectName objectName = ObjectNames.getQueueObjectName(address, queue.getName());
-      QueueControl queueControl = new QueueControl(queue, postOffice, addressSettingsRepository, counter);
+      QueueControl queueControl = new QueueControl(queue, address.toString(), postOffice, addressSettingsRepository, counter);
       registerInJMX(objectName, new ReplicationAwareQueueControlWrapper(objectName, queueControl, replicationInvoker));
       registerInRegistry(objectName, queueControl);
 

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -63,6 +63,8 @@
 
    private final Queue queue;
 
+   private final String address;
+   
    private final PostOffice postOffice;
 
    private final HierarchicalRepository<AddressSettings> addressSettingsRepository;
@@ -74,11 +76,13 @@
    // Constructors --------------------------------------------------
 
    public QueueControl(final Queue queue,
+                       final String address,
                        final PostOffice postOffice,
                        final HierarchicalRepository<AddressSettings> addressSettingsRepository,
                        final MessageCounter counter)
    {
       this.queue = queue;
+      this.address = address;
       this.postOffice = postOffice;
       this.addressSettingsRepository = addressSettingsRepository;
       this.counter = counter;
@@ -93,6 +97,11 @@
       return queue.getName().toString();
    }
 
+   public String getAddress()
+   {
+      return address;
+   }
+   
    public String getFilter()
    {
       Filter filter = queue.getFilter();
@@ -147,7 +156,7 @@
 
    public String getDeadLetterAddress()
    {
-      AddressSettings addressSettings = addressSettingsRepository.getMatch(getName());
+      AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
       
       if (addressSettings != null && addressSettings.getDeadLetterAddress() != null)
       {
@@ -161,7 +170,7 @@
 
    public void setDeadLetterAddress(final String deadLetterAddress) throws Exception
    {
-      AddressSettings addressSettings = addressSettingsRepository.getMatch(getName());
+      AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
 
       if (deadLetterAddress != null)
       {
@@ -171,7 +180,7 @@
 
    public String getExpiryAddress()
    {
-      AddressSettings addressSettings = addressSettingsRepository.getMatch(getName());
+      AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
       
       if (addressSettings != null && addressSettings.getExpiryAddress() != null)
       {
@@ -185,7 +194,7 @@
 
    public void setExpiryAddress(final String expiryAddres) throws Exception
    {
-      AddressSettings addressSettings = addressSettingsRepository.getMatch(getName());
+      AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
 
       if (expiryAddres != null)
       {

Modified: trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -112,6 +112,11 @@
       return localQueueControl.getName();
    }
 
+   public String getAddress()
+   {
+      return localQueueControl.getAddress();
+   }
+   
    public long getPersistenceID()
    {
       return localQueueControl.getPersistenceID();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -23,8 +23,10 @@
 package org.jboss.messaging.tests.integration.management;
 
 import static org.jboss.messaging.tests.integration.management.ManagementControlHelper.createQueueControl;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
 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 javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
@@ -38,11 +40,13 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
 import org.jboss.messaging.core.server.Messaging;
 import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 
@@ -66,12 +70,129 @@
    
    private MBeanServer mbeanServer;
 
+   private ClientSession session;
+
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
    // Public --------------------------------------------------------
 
+   public void testAttributes() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      SimpleString filter = new SimpleString("color = 'blue'");
+      boolean durable = randomBoolean();
+      boolean temporary = false;
+      
+      session.createQueue(address, queue, filter, durable, temporary);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      assertEquals(queue.toString(), queueControl.getName());
+      assertEquals(filter.toString(), queueControl.getFilter());
+      assertEquals(durable, queueControl.isDurable());
+      assertEquals(temporary, queueControl.isTemporary());
+
+      session.deleteQueue(queue);
+   }
+   
+   public void testGetNullFilter() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      
+      session.createQueue(address, queue, null, false, false);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      assertEquals(queue.toString(), queueControl.getName());
+      assertEquals(null, queueControl.getFilter());
+
+      session.deleteQueue(queue);
+   }
+   
+   public void testGetDeadLetterAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      final SimpleString deadLetterAddress = randomSimpleString();
+
+      session.createQueue(address, queue, null, false, false);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      assertNull(queueControl.getDeadLetterAddress());
+
+      service.getServer().getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings()
+      {
+         @Override
+         public SimpleString getDeadLetterAddress()
+         {
+            return deadLetterAddress;
+         }
+      });
+      
+      assertEquals(deadLetterAddress.toString(), queueControl.getDeadLetterAddress());
+      
+      session.deleteQueue(queue);
+   }
+   
+   public void testSetDeadLetterAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      String deadLetterAddress = randomString();
+
+      session.createQueue(address, queue, null, false, false);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      queueControl.setDeadLetterAddress(deadLetterAddress);
+
+      assertEquals(deadLetterAddress, queueControl.getDeadLetterAddress());
+      
+      session.deleteQueue(queue);
+   }
+
+   public void testGetExpiryAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      final SimpleString expiryAddress = randomSimpleString();
+
+      session.createQueue(address, queue, null, false, false);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      assertNull(queueControl.getExpiryAddress());
+
+      service.getServer().getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings()
+      {
+         @Override
+         public SimpleString getExpiryAddress()
+         {
+            return expiryAddress;
+         }
+      });
+      
+      assertEquals(expiryAddress.toString(), queueControl.getExpiryAddress());
+      
+      session.deleteQueue(queue);
+   }
+   
+   public void testSetExpiryAddress() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      String expiryAddress = randomString();
+
+      session.createQueue(address, queue, null, false, false);
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      queueControl.setExpiryAddress(expiryAddress);
+
+      assertEquals(expiryAddress, queueControl.getExpiryAddress());
+      
+      session.deleteQueue(queue);
+   }
+   
    /**
     * <ol>
     * <li>send a message to queue</li>
@@ -82,12 +203,6 @@
     */
    public void testMoveAllMessages() throws Exception
    {
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnNonPersistentSend(true);
-      
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
       SimpleString otherAddress = randomSimpleString();
@@ -129,7 +244,6 @@
       session.deleteQueue(queue);
       otherConsumer.close();
       session.deleteQueue(otherQueue);
-      session.close();
    }
 
    /**
@@ -147,11 +261,6 @@
       long matchingValue = randomLong();
       long unmatchingValue = matchingValue + 1;
 
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnPersistentSend(true);
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
       SimpleString otherAddress = randomSimpleString();
@@ -196,7 +305,6 @@
       session.deleteQueue(queue);
       otherConsumer.close();
       session.deleteQueue(otherQueue);
-      session.close();
    }
 
    /**
@@ -209,11 +317,6 @@
     */
    public void testRemoveAllMessages() throws Exception
    {
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnNonPersistentSend(true);
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
 
@@ -240,7 +343,6 @@
 
       consumer.close();
       session.deleteQueue(queue);
-      session.close();
    }
    
    /**
@@ -257,11 +359,6 @@
       long matchingValue = randomLong();
       long unmatchingValue = matchingValue + 1;
 
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnNonPersistentSend(true);
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
 
@@ -300,20 +397,51 @@
 
       consumer.close();
       session.deleteQueue(queue);
-      session.close();
    }
    
+   public void testRemoveMessage() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+
+      session.createQueue(address, queue, null, false, true);
+      ClientProducer producer = session.createProducer(address);
+      session.start();
+
+      // send 2 messages on queue
+      producer.send(session.createClientMessage(false));
+      producer.send(session.createClientMessage(false));
+
+      QueueControlMBean queueControl = createQueueControl(address, queue, mbeanServer);
+      assertEquals(2, queueControl.getMessageCount());
+
+      // the message IDs are set on the server
+      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
+      assertEquals(2, messageInfos.length);
+      long messageID = messageInfos[0].getID();
+
+      // delete 1st message
+      boolean deleted = queueControl.removeMessage(messageID);
+      assertTrue(deleted);
+      assertEquals(1, queueControl.getMessageCount());
+
+      // check there is a single message to consume from queue
+      ClientConsumer consumer = session.createConsumer(queue);
+      ClientMessage m = consumer.receive(500);
+      assertNotNull(m);
+      m = consumer.receive(500);
+      assertNull(m);
+
+      consumer.close();
+      session.deleteQueue(queue);
+   }
+   
    public void testCountMessagesWithFilter() throws Exception
    {
       SimpleString key = new SimpleString("key");
       long matchingValue = randomLong();
       long unmatchingValue = matchingValue + 1;
 
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnNonPersistentSend(true);
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
 
@@ -337,7 +465,6 @@
       assertEquals(1, queueControl.countMessages(key + " =" + unmatchingValue));
 
       session.deleteQueue(queue);
-      session.close();
    }
    
    public void testExpireMessagesWithFilter() throws Exception
@@ -346,11 +473,6 @@
       long matchingValue = randomLong();
       long unmatchingValue = matchingValue + 1;
 
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      sf.setBlockOnNonPersistentSend(true);
-      sf.setBlockOnNonPersistentSend(true);
-      ClientSession session = sf.createSession(false, true, true);
-
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
 
@@ -407,11 +529,18 @@
       conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
       service = Messaging.newNullStorageMessagingService(conf, mbeanServer);
       service.start();
+      
+      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      sf.setBlockOnNonPersistentSend(true);
+      sf.setBlockOnNonPersistentSend(true);
+      session = sf.createSession(false, true, true);
    }
 
    @Override
    protected void tearDown() throws Exception
    {
+      session.close();
+      
       service.stop();
 
       super.tearDown();

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java	2009-03-13 03:06:09 UTC (rev 6073)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java	2009-03-13 12:45:31 UTC (rev 6074)
@@ -73,6 +73,8 @@
 
    private Queue queue;
 
+   private String address;
+   
    private StorageManager storageManager;
 
    private PostOffice postOffice;
@@ -602,7 +604,8 @@
       super.setUp();
 
       queueName = randomSimpleString();
-      queue = createMock(Queue.class);
+      address = randomString();
+      queue = createMock(Queue.class);      
       storageManager = createMock(StorageManager.class);
       postOffice = createMock(PostOffice.class);
       repository = createMock(HierarchicalRepository.class);
@@ -635,7 +638,7 @@
 
    private QueueControl createControl() throws Exception
    {
-      return new QueueControl(queue, postOffice, repository, messageCounter);
+      return new QueueControl(queue, address, postOffice, repository, messageCounter);
    }
 
    // Inner classes -------------------------------------------------




More information about the jboss-cvs-commits mailing list