You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/11/30 02:53:09 UTC
activemq-artemis git commit: ARTEMIS-1508 Adding a test with Expiry,
to make sure the message copy works correctly
Repository: activemq-artemis
Updated Branches:
refs/heads/master ce9e82429 -> f2b5114af
ARTEMIS-1508 Adding a test with Expiry, to make sure the message copy works correctly
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/f2b5114a
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/f2b5114a
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/f2b5114a
Branch: refs/heads/master
Commit: f2b5114af8dd505e3c5c3efc1f395fe5f066e376
Parents: ce9e824
Author: Clebert Suconic <cl...@apache.org>
Authored: Wed Nov 29 21:12:30 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Wed Nov 29 21:49:31 2017 -0500
----------------------------------------------------------------------
.../integration/amqp/AmqpClientTestSupport.java | 4 +-
.../amqp/AmqpExpiredMessageTest.java | 62 ++++++++++++++++++--
2 files changed, 60 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f2b5114a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
index 054e715..044183f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java
@@ -216,11 +216,11 @@ public class AmqpClientTestSupport extends AmqpTestSupport {
}
protected void createAddressAndQueues(ActiveMQServer server) throws Exception {
- // Default DLQ
+ // Default Queue
server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getQueueName()), RoutingType.ANYCAST));
server.createQueue(SimpleString.toSimpleString(getQueueName()), RoutingType.ANYCAST, SimpleString.toSimpleString(getQueueName()), null, true, false, -1, false, true);
- // Default Queue
+ // Default DLQ
server.addAddressInfo(new AddressInfo(SimpleString.toSimpleString(getDeadLetterAddress()), RoutingType.ANYCAST));
server.createQueue(SimpleString.toSimpleString(getDeadLetterAddress()), RoutingType.ANYCAST, SimpleString.toSimpleString(getDeadLetterAddress()), null, true, false, -1, false, true);
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f2b5114a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
index 61525e9..f5795b6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpExpiredMessageTest.java
@@ -55,7 +55,7 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
// Now try and get the message
AmqpReceiver receiver = session.createReceiver(getQueueName());
receiver.flow(1);
- AmqpMessage received = receiver.receive(1, TimeUnit.SECONDS);
+ AmqpMessage received = receiver.receiveNoWait();
assertNull(received);
Wait.assertEquals(1, queueView::getMessagesExpired);
@@ -64,6 +64,60 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
}
@Test(timeout = 60000)
+ public void testExpiryThroughTTL() throws Exception {
+ AmqpClient client = createAmqpClient();
+ AmqpConnection connection = addConnection(client.connect());
+ AmqpSession session = connection.createSession();
+
+ AmqpSender sender = session.createSender(getQueueName());
+
+ // Get the Queue View early to avoid racing the delivery.
+ final Queue queueView = getProxyToQueue(getQueueName());
+ assertNotNull(queueView);
+
+ AmqpMessage message = new AmqpMessage();
+ message.setTimeToLive(1);
+ message.setText("Test-Message");
+ message.setDurable(true);
+ message.setApplicationProperty("key1", "Value1");
+ sender.send(message);
+ sender.close();
+
+ Thread.sleep(100);
+
+
+ // Now try and get the message
+ AmqpReceiver receiver = session.createReceiver(getQueueName());
+ receiver.flow(1);
+ AmqpMessage received = receiver.receiveNoWait();
+ assertNull(received);
+
+ Wait.assertEquals(1, queueView::getMessagesExpired);
+
+ connection.close();
+
+ // This will stop and start the server
+ // to make sure the message is decoded again from its binary format
+ // avoiding any parsing cached at the server.
+ server.stop();
+ server.start();
+
+ client = createAmqpClient();
+ connection = addConnection(client.connect());
+ session = connection.createSession();
+
+ AmqpReceiver receiverDLQ = session.createReceiver(getDeadLetterAddress());
+ receiverDLQ.flow(1);
+ received = receiverDLQ.receive(5, TimeUnit.SECONDS);
+ Assert.assertEquals(1, received.getTimeToLive());
+ System.out.println("received.heandler.TTL" + received.getTimeToLive());
+ Assert.assertNotNull(received);
+ Assert.assertEquals("Value1", received.getApplicationProperty("key1"));
+
+ connection.close();
+ }
+
+ @Test(timeout = 60000)
public void testSendMessageThatIsNotExpiredUsingAbsoluteTime() throws Exception {
AmqpClient client = createAmqpClient();
AmqpConnection connection = addConnection(client.connect());
@@ -119,7 +173,7 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
// Now try and get the message
AmqpReceiver receiver = session.createReceiver(getQueueName());
receiver.flow(1);
- AmqpMessage received = receiver.receive(1, TimeUnit.SECONDS);
+ AmqpMessage received = receiver.receiveNoWait();
assertNull(received);
Wait.assertEquals(1, queueView::getMessagesExpired);
@@ -154,7 +208,7 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
// Now try and get the message
AmqpReceiver receiver = session.createReceiver(getQueueName());
receiver.flow(1);
- AmqpMessage received = receiver.receive(1, TimeUnit.SECONDS);
+ AmqpMessage received = receiver.receiveNoWait();
assertNull(received);
Wait.assertEquals(1, queueView::getMessagesExpired);
@@ -253,7 +307,7 @@ public class AmqpExpiredMessageTest extends AmqpClientTestSupport {
// Now try and get the message
AmqpReceiver receiver = session.createReceiver(getQueueName());
receiver.flow(1);
- AmqpMessage received = receiver.receive(1, TimeUnit.SECONDS);
+ AmqpMessage received = receiver.receiveNoWait();
assertNull(received);
Wait.assertEquals(1, queueView::getMessagesExpired);