[jboss-cvs] JBoss Messaging SVN: r6174 - trunk/tests/src/org/jboss/messaging/tests/integration/client.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 26 10:42:44 EDT 2009
Author: jmesnil
Date: 2009-03-26 10:42:43 -0400 (Thu, 26 Mar 2009)
New Revision: 6174
Modified:
trunk/tests/src/org/jboss/messaging/tests/integration/client/DeadLetterAddressTest.java
Log:
dead letter address tests
* added test for default settings, sublevel settings & wildcard settings
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/client/DeadLetterAddressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/client/DeadLetterAddressTest.java 2009-03-26 14:38:49 UTC (rev 6173)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/client/DeadLetterAddressTest.java 2009-03-26 14:42:43 UTC (rev 6174)
@@ -21,6 +21,14 @@
*/
package org.jboss.messaging.tests.integration.client;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
+
import org.jboss.messaging.core.client.ClientConsumer;
import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.client.ClientProducer;
@@ -39,11 +47,6 @@
import org.jboss.messaging.tests.util.UnitTestCase;
import org.jboss.messaging.utils.SimpleString;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
*/
@@ -234,6 +237,154 @@
}
+ public void testDeadlLetterAddressWithDefaultAddressSettings() throws Exception
+ {
+ int deliveryAttempt = 3;
+ Xid xid = new XidImpl("bq".getBytes(), 0, "gt".getBytes());
+
+ SimpleString address = randomSimpleString();
+ SimpleString queue = randomSimpleString();
+ SimpleString deadLetterAdress = randomSimpleString();
+ SimpleString deadLetterQueue = randomSimpleString();
+ AddressSettings addressSettings = new AddressSettings();
+ addressSettings.setMaxDeliveryAttempts(deliveryAttempt);
+ addressSettings.setDeadLetterAddress(deadLetterAdress);
+ messagingService.getServer().getAddressSettingsRepository().setDefault(addressSettings);
+
+ clientSession.createQueue(address, queue, false);
+ clientSession.createQueue(deadLetterAdress, deadLetterQueue, false);
+
+ ClientProducer producer = clientSession.createProducer(address);
+ ClientMessage clientMessage = createTextMessage("heyho!", clientSession);
+ producer.send(clientMessage);
+
+ clientSession.start();
+ ClientConsumer clientConsumer = clientSession.createConsumer(queue);
+ for (int i = 0; i < deliveryAttempt; i++)
+ {
+ clientSession.start(xid, XAResource.TMNOFLAGS);
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(i + 1, m.getDeliveryCount());
+ m.acknowledge();
+ clientSession.end(xid, XAResource.TMSUCCESS);
+ clientSession.rollback(xid);
+ }
+ ClientMessage m = clientConsumer.receive(500);
+ assertNull(m);
+ clientConsumer.close();
+
+ clientConsumer = clientSession.createConsumer(deadLetterQueue);
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(m.getBody().readString(), "heyho!");
+ }
+
+ public void testDeadlLetterAddressWithWildcardAddressSettings() throws Exception
+ {
+ int deliveryAttempt = 3;
+ Xid xid = new XidImpl("bq".getBytes(), 0, "gt".getBytes());
+
+ SimpleString address = randomSimpleString();
+ SimpleString queue = randomSimpleString();
+ SimpleString deadLetterAdress = randomSimpleString();
+ SimpleString deadLetterQueue = randomSimpleString();
+ AddressSettings addressSettings = new AddressSettings();
+ addressSettings.setMaxDeliveryAttempts(deliveryAttempt);
+ addressSettings.setDeadLetterAddress(deadLetterAdress);
+ messagingService.getServer().getAddressSettingsRepository().addMatch("*", addressSettings);
+
+ clientSession.createQueue(address, queue, false);
+ clientSession.createQueue(deadLetterAdress, deadLetterQueue, false);
+
+ ClientProducer producer = clientSession.createProducer(address);
+ ClientMessage clientMessage = createTextMessage("heyho!", clientSession);
+ producer.send(clientMessage);
+
+ clientSession.start();
+ ClientConsumer clientConsumer = clientSession.createConsumer(queue);
+ for (int i = 0; i < deliveryAttempt; i++)
+ {
+ clientSession.start(xid, XAResource.TMNOFLAGS);
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(i + 1, m.getDeliveryCount());
+ m.acknowledge();
+ clientSession.end(xid, XAResource.TMSUCCESS);
+ clientSession.rollback(xid);
+ }
+ ClientMessage m = clientConsumer.receive(500);
+ assertNull(m);
+ clientConsumer.close();
+
+ clientConsumer = clientSession.createConsumer(deadLetterQueue);
+ m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(m.getBody().readString(), "heyho!");
+ }
+
+ public void testDeadLetterAddressWithOverridenSublevelAddressSettings() throws Exception
+ {
+ int defaultDeliveryAttempt = 3;
+ int specificeDeliveryAttempt = defaultDeliveryAttempt + 1;
+ Xid xid = new XidImpl("bq".getBytes(), 0, "gt".getBytes());
+
+ SimpleString address = new SimpleString("prefix.address");
+ SimpleString queue = randomSimpleString();
+ SimpleString defaultDeadLetterAddress = randomSimpleString();
+ SimpleString defaultDeadLetterQueue = randomSimpleString();
+ SimpleString specificDeadLetterAddress = randomSimpleString();
+ SimpleString specificDeadLetterQueue = randomSimpleString();
+
+ AddressSettings defaultAddressSettings = new AddressSettings();
+ defaultAddressSettings.setMaxDeliveryAttempts(defaultDeliveryAttempt);
+ defaultAddressSettings.setDeadLetterAddress(defaultDeadLetterAddress);
+ messagingService.getServer().getAddressSettingsRepository().addMatch("*", defaultAddressSettings);
+ AddressSettings specificAddressSettings = new AddressSettings();
+ specificAddressSettings.setMaxDeliveryAttempts(specificeDeliveryAttempt);
+ specificAddressSettings.setDeadLetterAddress(specificDeadLetterAddress);
+ messagingService.getServer().getAddressSettingsRepository().addMatch(address.toString(), specificAddressSettings);
+
+ clientSession.createQueue(address, queue, false);
+ clientSession.createQueue(defaultDeadLetterAddress, defaultDeadLetterQueue, false);
+ clientSession.createQueue(specificDeadLetterAddress, specificDeadLetterQueue, false);
+
+ ClientProducer producer = clientSession.createProducer(address);
+ ClientMessage clientMessage = createTextMessage("heyho!", clientSession);
+ producer.send(clientMessage);
+
+ clientSession.start();
+ ClientConsumer clientConsumer = clientSession.createConsumer(queue);
+ ClientConsumer defaultDeadLetterConsumer = clientSession.createConsumer(defaultDeadLetterQueue);
+ ClientConsumer specificDeadLetterConsumer = clientSession.createConsumer(specificDeadLetterQueue);
+
+ for (int i = 0; i < defaultDeliveryAttempt; i++)
+ {
+ clientSession.start(xid, XAResource.TMNOFLAGS);
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(i + 1, m.getDeliveryCount());
+ m.acknowledge();
+ clientSession.end(xid, XAResource.TMSUCCESS);
+ clientSession.rollback(xid);
+ }
+
+ assertNull(defaultDeadLetterConsumer.receive(500));
+ assertNull(specificDeadLetterConsumer.receive(500));
+
+ // one more redelivery attempt:
+ clientSession.start(xid, XAResource.TMNOFLAGS);
+ ClientMessage m = clientConsumer.receive(500);
+ assertNotNull(m);
+ assertEquals(specificeDeliveryAttempt, m.getDeliveryCount());
+ m.acknowledge();
+ clientSession.end(xid, XAResource.TMSUCCESS);
+ clientSession.rollback(xid);
+
+ assertNull(defaultDeadLetterConsumer.receive(500));
+ assertNotNull(specificDeadLetterConsumer.receive(500));
+ }
+
@Override
protected void setUp() throws Exception
{
More information about the jboss-cvs-commits
mailing list