[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