You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/12/29 09:16:09 UTC
[1/2] qpid-broker-j git commit: QPID-6933: [System Tests] Refactor
sorted queue tests as JMS 1.1 system test
Repository: qpid-broker-j
Updated Branches:
refs/heads/master b1a7aacc4 -> fbdb9f9f5
QPID-6933: [System Tests] Refactor sorted queue tests as JMS 1.1 system test
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/fbdb9f9f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/fbdb9f9f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/fbdb9f9f
Branch: refs/heads/master
Commit: fbdb9f9f575917adea1b117c986a4d7b2bbffb55
Parents: 7314ece
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Dec 28 23:27:11 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Fri Dec 29 09:15:19 2017 +0000
----------------------------------------------------------------------
.../extensions/queue/SortedQueueTest.java | 598 +++++++++++++++++++
.../qpid/server/queue/SortedQueueTest.java | 519 ----------------
test-profiles/CPPExcludes | 3 -
test-profiles/JavaPre010Excludes | 1 -
4 files changed, 598 insertions(+), 523 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/fbdb9f9f/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/queue/SortedQueueTest.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/queue/SortedQueueTest.java b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/queue/SortedQueueTest.java
new file mode 100644
index 0000000..5596e4a
--- /dev/null
+++ b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/queue/SortedQueueTest.java
@@ -0,0 +1,598 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.systests.jms_1_1.extensions.queue;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.NamingException;
+
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.server.queue.SortedQueue;
+import org.apache.qpid.systests.JmsTestBase;
+
+public class SortedQueueTest extends JmsTestBase
+{
+ private static final Logger LOGGER = LoggerFactory.getLogger(SortedQueueTest.class);
+ private static final String TEST_SORT_KEY = "testSortKey";
+ private static final String[] VALUES = {" 73", " 18", " 11", "127", "166", "163", " 69", " 60", "191", "144",
+ " 17", "161", "145", "140", "157", " 47", "136", " 56", "176", " 81",
+ "195", " 96", " 2", " 68", "101", "141", "159", "187", "149", " 45",
+ " 64", "100", " 83", " 51", " 79", " 82", "180", " 26", " 61", " 62",
+ " 78", " 46", "147", " 91", "120", "164", " 92", "172", "188", " 50",
+ "111", " 89", " 4", " 8", " 16", "151", "122", "178", " 33", "124",
+ "171", "165", "116", "113", "155", "148", " 29", " 0", " 37", "131",
+ "146", " 57", "112", " 97", " 23", "108", "123", "117", "167", " 52",
+ " 98", " 6", "160", " 25", " 49", " 34", "182", "185", " 30", " 66",
+ "152", " 58", " 86", "118", "189", " 84", " 36", "104", " 7", " 76",
+ " 87", " 1", " 80", " 10", "142", " 59", "137", " 12", " 67", " 22",
+ " 9", "106", " 75", "109", " 93", " 42", "177", "134", " 77", " 88",
+ "114", " 43", "143", "135", " 55", "181", " 32", "174", "175", "184",
+ "133", "107", " 28", "126", "103", " 85", " 38", "158", " 39", "162",
+ "129", "194", " 15", " 24", " 19", " 35", "186", " 31", " 65", " 99",
+ "192", " 74", "156", " 27", " 95", " 54", " 70", " 13", "110", " 41",
+ " 90", "173", "125", "196", "130", "183", "102", "190", "132", "105",
+ " 21", " 53", "139", " 94", "115", " 48", " 44", "179", "128", " 14",
+ " 72", "119", "153", "168", "197", " 40", "150", "138", " 5", "154",
+ "169", " 71", "199", "198", "170", " 3", "121", " 20", " 63", "193"};
+ private static final String[] VALUES_SORTED =
+ Arrays.stream(VALUES).sorted().collect(Collectors.toList()).toArray(new String[VALUES.length]);
+ private static final int NUMBER_OF_MESSAGES = VALUES.length;
+ private static final String[] SUBSET_KEYS = {"000", "100", "200", "300", "400", "500", "600", "700", "800", "900"};
+
+ @Test
+ public void testSortOrder() throws Exception
+ {
+ final String queueName = getTestName();
+ final Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+ sendMessages(queue);
+
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(1).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ consumerConnection.start();
+
+ for (String value : VALUES_SORTED)
+ {
+ Message received = consumer.receive(getReceiveTimeout());
+ assertNotNull("Message is not received", received);
+ assertEquals("Received message with unexpected sorted key value", value,
+ received.getStringProperty(TEST_SORT_KEY));
+ }
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+
+ @Test
+ public void testAutoAckSortedQueue() throws Exception
+ {
+ runThroughSortedQueueForSessionMode(Session.AUTO_ACKNOWLEDGE);
+ }
+
+ @Test
+ public void testTransactedSortedQueue() throws Exception
+ {
+ runThroughSortedQueueForSessionMode(Session.SESSION_TRANSACTED);
+ }
+
+ @Test
+ public void testClientAckSortedQueue() throws Exception
+ {
+ runThroughSortedQueueForSessionMode(Session.CLIENT_ACKNOWLEDGE);
+ }
+
+ private void runThroughSortedQueueForSessionMode(final int sessionMode) throws Exception
+ {
+ final String queueName = getTestName();
+ final Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(0).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(sessionMode == Session.SESSION_TRANSACTED, sessionMode);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ final CountDownLatch receiveLatch = new CountDownLatch(NUMBER_OF_MESSAGES);
+ CountingMessageListener listener = new CountingMessageListener(receiveLatch, consumerSession);
+ consumer.setMessageListener(listener);
+ consumerConnection.start();
+ sendMessages(queue);
+ assertTrue("Messages were not received during expected time",
+ receiveLatch.await(getReceiveTimeout() * NUMBER_OF_MESSAGES, TimeUnit.MILLISECONDS));
+ assertNull("Unexpected exception in message listener", listener.getException());
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+
+ @Test
+ public void testSortedQueueWithAscendingSortedKeys() throws Exception
+ {
+ final String queueName = getTestName();
+ final Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(0).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ final CountDownLatch receiveLatch = new CountDownLatch(NUMBER_OF_MESSAGES);
+ consumer.setMessageListener(new CountingMessageListener(receiveLatch, consumerSession));
+ consumerConnection.start();
+
+ final Connection producerConnection = getConnection();
+ try
+ {
+ final Session producerSession = producerConnection.createSession(true, Session.SESSION_TRANSACTED);
+ final MessageProducer producer = producerSession.createProducer(queue);
+
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ final Message message = producerSession.createMessage();
+ message.setStringProperty(TEST_SORT_KEY, AscendingSortedKeys.getNextKey());
+ producer.send(message);
+ producerSession.commit();
+ }
+ }
+ finally
+ {
+ producerConnection.close();
+ }
+ assertTrue("Messages were not received during expected time",
+ receiveLatch.await(getReceiveTimeout() * NUMBER_OF_MESSAGES, TimeUnit.MILLISECONDS));
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+
+ @Test
+ public void testSortOrderWithNonUniqueKeys() throws Exception
+ {
+ final String queueName = getTestName();
+ final Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+
+ final Connection producerConnection = getConnection();
+ try
+ {
+ final Session producerSession = producerConnection.createSession(true, Session.SESSION_TRANSACTED);
+ final MessageProducer producer = producerSession.createProducer(queue);
+
+ int count = 0;
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ final Message message = producerSession.createTextMessage("Message Text:" + count++);
+ message.setStringProperty(TEST_SORT_KEY, "samesortkeyvalue");
+ producer.send(message);
+ }
+ producerSession.commit();
+ }
+ finally
+ {
+ producerConnection.close();
+ }
+
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(1).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ consumerConnection.start();
+
+ for (int i = 0; i < NUMBER_OF_MESSAGES; i++)
+ {
+ final Message received = consumer.receive(getReceiveTimeout());
+ assertNotNull("Message is not received", received);
+ assertEquals("Received message with unexpected sorted key value", "samesortkeyvalue",
+ received.getStringProperty(TEST_SORT_KEY));
+ assertEquals("Received message with unexpected message value", "Message Text:" + i,
+ ((TextMessage) received).getText());
+ }
+
+ Message received = consumer.receive(getReceiveTimeout() / 4);
+ assertNull("Unexpected message received", received);
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+
+ @Test
+ public void testSortOrderWithUniqueKeySubset() throws Exception
+ {
+ final String queueName = getTestName();
+ final Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+
+ int messageNumber = 100;
+ final Connection producerConnection = getConnection();
+ try
+ {
+ final Session producerSession = producerConnection.createSession(true, Session.SESSION_TRANSACTED);
+ final MessageProducer producer = producerSession.createProducer(queue);
+
+ int count = 0;
+ while (count < messageNumber)
+ {
+ int keyValueIndex = count % SUBSET_KEYS.length;
+ final Message msg = producerSession.createTextMessage("Message Text:" + count);
+ msg.setStringProperty(TEST_SORT_KEY, SUBSET_KEYS[keyValueIndex]);
+ producer.send(msg);
+ count++;
+ }
+ producerSession.commit();
+ }
+ finally
+ {
+ producerConnection.close();
+ }
+
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(1).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ consumerConnection.start();
+
+ for (int i = 0; i < messageNumber; i++)
+ {
+ final Message received = consumer.receive(getReceiveTimeout());
+ assertNotNull("Message is not received", received);
+ assertEquals("Received message with unexpected sorted key value", SUBSET_KEYS[i / 10],
+ received.getStringProperty(TEST_SORT_KEY));
+ }
+
+ Message received = consumer.receive(getReceiveTimeout() / 4);
+ assertNull("Unexpected message received", received);
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+
+ public void testGetNextWithAck() throws Exception
+ {
+ final String queueName = getTestName();
+ Queue queue = createSortedQueue(queueName, TEST_SORT_KEY);
+
+ final Connection producerConnection = getConnection();
+ try
+ {
+ final Session producerSession = producerConnection.createSession(true, Session.SESSION_TRANSACTED);
+ final MessageProducer producer = producerSession.createProducer(queue);
+
+ sendAndCommitMessage(producerSession, producer, "2");
+ sendAndCommitMessage(producerSession, producer, "3");
+ sendAndCommitMessage(producerSession, producer, "1");
+
+ final Connection consumerConnection = getConnectionBuilder().setPrefetch(1).build();
+ try
+ {
+ final Session consumerSession = consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+ final MessageConsumer consumer = consumerSession.createConsumer(queue);
+ consumerConnection.start();
+
+ Message received;
+
+ //Receive 3 in sorted order
+ received = assertReceiveAndValidateMessage(consumer, "1");
+ received.acknowledge();
+ received = assertReceiveAndValidateMessage(consumer, "2");
+ received.acknowledge();
+ received = assertReceiveAndValidateMessage(consumer, "3");
+ received.acknowledge();
+
+ //Send 1
+ sendAndCommitMessage(producerSession, producer, "4");
+
+ //Receive 1 and recover
+ assertReceiveAndValidateMessage(consumer, "4");
+ consumerSession.recover();
+
+ //Receive same 1
+ received = assertReceiveAndValidateMessage(consumer, "4");
+ received.acknowledge();
+
+ //Send 3 out of order
+ sendAndCommitMessage(producerSession, producer, "7");
+ sendAndCommitMessage(producerSession, producer, "6");
+ sendAndCommitMessage(producerSession, producer, "5");
+
+ //Receive 1 of 3 (possibly out of order due to pre-fetch)
+ final Message messageBeforeRollback = assertReceiveMessage(consumer);
+ consumerSession.recover();
+
+ if (getProtocol().equals(Protocol.AMQP_0_10))
+ {
+ //Receive 3 in sorted order (not as per JMS recover)
+ received = assertReceiveAndValidateMessage(consumer, "5");
+ received.acknowledge();
+ received = assertReceiveAndValidateMessage(consumer, "6");
+ received.acknowledge();
+ received = assertReceiveAndValidateMessage(consumer, "7");
+ received.acknowledge();
+ }
+ else
+ {
+ //First message will be the one rolled-back (as per JMS spec).
+ final String messageKeyDeliveredBeforeRollback =
+ messageBeforeRollback.getStringProperty(TEST_SORT_KEY);
+ received = assertReceiveAndValidateMessage(consumer, messageKeyDeliveredBeforeRollback);
+ received.acknowledge();
+
+ //Remaining two messages will be sorted
+ final SortedSet<String> keys = new TreeSet<>(Arrays.asList("5", "6", "7"));
+ keys.remove(messageKeyDeliveredBeforeRollback);
+
+ received = assertReceiveAndValidateMessage(consumer, keys.first());
+ received.acknowledge();
+ received = assertReceiveAndValidateMessage(consumer, keys.last());
+ received.acknowledge();
+ }
+ }
+ finally
+ {
+ consumerConnection.close();
+ }
+ }
+ finally
+ {
+ producerConnection.close();
+ }
+ }
+
+ private Queue createSortedQueue(final String queueName, final String sortKey) throws Exception
+ {
+ createEntityUsingAmqpManagement(queueName,
+ "org.apache.qpid.SortedQueue",
+ Collections.singletonMap(SortedQueue.SORT_KEY, sortKey));
+ return createQueue(queueName);
+ }
+
+ private void sendAndCommitMessage(final Session producerSession, final MessageProducer producer,
+ final String keyValue) throws Exception
+ {
+ final Message message = producerSession.createTextMessage("Message Text: Key Value" + keyValue);
+ message.setStringProperty(TEST_SORT_KEY, keyValue);
+ producer.send(message);
+ producerSession.commit();
+ }
+
+ private Message assertReceiveAndValidateMessage(final MessageConsumer consumer, final String expectedKey)
+ throws Exception
+ {
+ final Message received = assertReceiveMessage(consumer);
+ assertEquals("Received message with unexpected sorted key value", expectedKey,
+ received.getStringProperty(TEST_SORT_KEY));
+ return received;
+ }
+
+ private Message assertReceiveMessage(final MessageConsumer consumer)
+ throws JMSException
+ {
+ final Message received = consumer.receive(getReceiveTimeout());
+ assertNotNull("Received message is unexpectedly null", received);
+ return received;
+ }
+
+ private static class CountingMessageListener implements MessageListener
+ {
+ private final CountDownLatch _messagesReceiveLatch;
+ private final Session _session;
+ private final List<String> _receivedKeys;
+ private int _count = 0;
+ private volatile Exception _exception;
+
+ CountingMessageListener(final CountDownLatch messagesReceiveLatch, final Session session)
+ {
+ _messagesReceiveLatch = messagesReceiveLatch;
+ _session = session;
+ _receivedKeys = new CopyOnWriteArrayList<>();
+ }
+
+ @Override
+ public void onMessage(final Message message)
+ {
+ try
+ {
+ if (_session.getTransacted())
+ {
+ if (_count % 10 == 0)
+ {
+ LOGGER.debug("transacted session rollback");
+ _session.rollback();
+ }
+ else
+ {
+ LOGGER.debug("transacted session commit");
+ _session.commit();
+ _receivedKeys.add(message.getStringProperty(TEST_SORT_KEY));
+ _messagesReceiveLatch.countDown();
+ }
+ }
+ else if (_session.getAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE)
+ {
+ if (_count % 10 == 0)
+ {
+ LOGGER.debug("client ack session recover");
+ _session.recover();
+ }
+ else
+ {
+ LOGGER.debug("client ack session acknowledge");
+ message.acknowledge();
+ _receivedKeys.add(message.getStringProperty(TEST_SORT_KEY));
+ _messagesReceiveLatch.countDown();
+ }
+ }
+ else
+ {
+ LOGGER.debug("auto ack session");
+ _receivedKeys.add(message.getStringProperty(TEST_SORT_KEY));
+ _messagesReceiveLatch.countDown();
+ }
+
+ _count++;
+ LOGGER.debug("Message consumed with key: " + message.getStringProperty(TEST_SORT_KEY));
+ LOGGER.debug("Message consumed with consumed index: " + _receivedKeys.size());
+ }
+ catch (Exception e)
+ {
+ LOGGER.error("Exception in listener", e);
+ _exception = e;
+ }
+ }
+
+ String[] getReceivedKeys()
+ {
+ List<String> keys = new ArrayList<>(_receivedKeys);
+ return keys.toArray(new String[keys.size()]);
+ }
+
+ public Exception getException()
+ {
+ return _exception;
+ }
+ }
+
+ private static class AscendingSortedKeys
+ {
+ static final String[] KEYS = {"Ul4a1", "WaWsv", "2Yz7E", "ix74r", "okgRi", "HlUbF", "LewvM", "lweGy",
+ "TXQ0Z", "0Kyfs", "s7Mxk", "dmoS7", "8RCUA", "W3VFH", "aez9y", "uQIcz", "0h1b1", "cmXIX",
+ "4dEz6", "zHF1q", "D6rBy", "5drc6", "0BmCy", "BCxeC", "t59lR", "aL6AJ", "OHaBz", "WmadA",
+ "B3qem", "CxVEf", "AIYUu", "uJScX", "uoStw", "ogLgc", "AgJHQ", "hUTw7", "Rxrsm", "9GXkX",
+ "7hyVv", "y94nw", "Twano", "TCgPp", "pFrrl", "POUYS", "L7cGc", "0ao3l", "CNHmv", "MaJQs",
+ "OUqFM", "jeskS", "FPfSE", "v1Hln", "14FLR", "KZamH", "G1RhS", "FVMxo", "rKDLJ", "nnP8o",
+ "nFqik", "zmLYD", "1j5L8", "e6e4z", "WDVWJ", "aDGtS", "fcwDa", "nlaBy", "JJs5m", "vLsmS",
+ "No0Qb", "JXljW", "Waim6", "MezSW", "l83Ud", "SjskQ", "uPX7G", "5nmWv", "ZhwG1", "uTacx",
+ "t98iW", "JkzUn", "fmIK1", "i7WMQ", "bgJAz", "n1pmO", "jS1aj", "4W0Tl", "Yf2Ec", "sqVrf",
+ "MojnP", "qQxHP", "pWiOs", "yToGW", "kB5nP", "BpYhV", "Cfgr3", "zbIYY", "VLTy6", "he9IA",
+ "lm0pD", "WreyP", "8hJdt", "QnJ1S", "n8pJ9", "iqv4k", "OUYuF", "8cVD3", "sx5Gl", "cQOnv",
+ "wiHrZ", "oGu6x", "7fsYM", "gf8rI", "7fKYU", "pT8wu", "lCMxy", "prNT6", "5Drn0", "guMb8",
+ "OxWIH", "uZPqg", "SbRYy", "In3NS", "uvf7A", "FLsph", "pmeCd", "BbwgA", "ru4UG", "YOfrY",
+ "W7cTs", "K4GS8", "AOgEe", "618Di", "dpe1v", "3otm6", "oVQp6", "5Mg9r", "Y1mC0", "VIlwP",
+ "aFFss", "Mkgy8", "pv0i7", "S77LH", "XyPZN", "QYxC0", "vkCHH", "MGlTF", "24ARF", "v2eC3",
+ "ZUnqt", "HfyNQ", "FjHXR", "45cIH", "1LB1L", "zqH0W", "fLNg8", "oQ87r", "Cp3mZ", "Zv7z0",
+ "O3iyQ", "EOE1o", "5ZaEz", "tlILt", "MmsIo", "lXFOB", "gtCA5", "yEfy9", "7X3uy", "d7vjM",
+ "XflUq", "Fhtgl", "NOHsz", "GWqqX", "xciqp", "BFkb8", "P6bcg", "lViBv", "2TRI7", "2hEEU",
+ "9XyT9", "29QAz", "U3yw5", "FxX9q", "C2Irc", "8U2nU", "m4bxU", "5iGN5", "mX2GE", "cShY2",
+ "JRJQB", "yvOMI", "4QMc9", "NAFuw", "RmDcr", "faHir", "2ZHdk", "zY1GY", "a00b5", "ZuDtD",
+ "JIqXi", "K20wK", "gdQsS", "5Namm", "lkMUA", "IBe8k", "FcWrW", "FFDui", "tuDyS", "ZJTXH",
+ "AkKTk", "zQt6Q", "FNYIM", "RpBQm", "RsQUq", "Mm8si", "gjUTu", "zz4ZU", "jiVBP", "ReKEW",
+ "5VZjS", "YjB9t", "zFgtB", "8TxD7", "euZA5", "MK07Y", "CK5W7", "16lHc", "6q6L9", "Z4I1v",
+ "UlU3M", "SWfou", "0PktI", "55rfB", "jfREu", "580YD", "Uvlv4", "KASQ8", "AmdQd", "piJSk",
+ "hE1Ql", "LDk6f", "NcICA", "IKxdL", "iwzGk", "uN6r3", "lsQGo", "QClRL", "iKqhr", "FGzgp",
+ "RkQke", "b29RJ", "CIShG", "9eoRc", "F6PT2", "LbRTH", "M3zXL", "GXdoH", "IjTwP", "RBhp0",
+ "yluBx", "mz8gx", "MmKGJ", "Q6Lix", "uupzk", "RACuj", "d85a9", "qaofN", "kZANm", "jtn0X",
+ "lpF6W", "suY4x", "rz7Ut", "wDajX", "1v5hH", "Yw2oU", "ksJby", "WMiS3", "lj07Q", "EdBKc",
+ "6AFT0", "0YAGH", "ThjNn", "JKWYR", "9iGoT", "UmaEv", "3weIF", "CdyBV", "pAhR1", "djsrv",
+ "xReec", "8FmFH", "Dz1R3", "Ta8f6", "DG4sT", "VjCZq", "jSjS3", "Pb1pa", "VNCPd", "Kr8ys",
+ "AXpwE", "ZzJHW", "Nxx9V", "jzUqR", "dhSuH", "DQimp", "07n1c", "HP433", "RzaZA", "cL0aE",
+ "Ss0Zu", "FnPFB", "7lUXZ", "9rlg9", "lH1kt", "ni2v1", "48cHL", "soy9t", "WPmlx", "2Nslm",
+ "hSSvQ", "9y4lw", "ulk41", "ECMvU", "DLhzM", "GrDg7", "x3LDe", "QChxs", "xXTI4", "Gv3Fq",
+ "rhl0J", "QssNC", "brhlQ", "s93Ml", "tl72W", "pvgjS", "Qworu", "DcpWB", "X6Pin", "J2mQi",
+ "BGaQY", "CqqaD", "NhXdu", "dQ586", "Yh1hF", "HRxd8", "PYBf4", "64s8N", "tvdkD", "azIWp",
+ "tAOsr", "v8yFN", "h1zcH", "SmGzv", "bZLvS", "fFDrJ", "Oz8yZ", "0Wr5y", "fcJOy", "7ku1p",
+ "QbxXc", "VerEA", "QWxoT", "hYBCK", "o8Uyd", "FwEJz", "hi5X7", "uAWyp", "I7p2a", "M6qcG",
+ "gIYvE", "HzZT8", "iB08l", "StlDJ", "tjQxs", "k85Ae", "taOXK", "s4786", "2DREs", "atef2",
+ "Vprf2", "VBjhz", "EoToP", "blLA9", "qUJMd", "ydG8U", "8xEKz", "uLtKs", "GSQwj", "S2Dfu",
+ "ciuWz", "i3pyd", "7Ow5C", "IRh48", "vOqCE", "Q6hMC", "yofH3", "KsjRK", "5IhmG", "fqypy",
+ "0MR5X", "Chuy3"};
+
+ private static int _i = 0;
+ private static int _j = 0;
+
+ static
+ {
+ Arrays.sort(KEYS);
+ }
+
+ static String getNextKey()
+ {
+ if (_j == KEYS.length)
+ {
+ _j = 0;
+ _i++;
+ if (_i == KEYS.length)
+ {
+ _i = 0;
+ }
+ }
+ return KEYS[_i] + "-" + KEYS[_j++];
+ }
+ }
+
+ private void sendMessages(final Queue queue) throws JMSException, NamingException
+ {
+ final Connection producerConnection = getConnection();
+ try
+ {
+ final Session producerSession = producerConnection.createSession(true, Session.SESSION_TRANSACTED);
+ final MessageProducer producer = producerSession.createProducer(queue);
+
+ for (String value : VALUES)
+ {
+ final Message msg = producerSession.createMessage();
+ msg.setStringProperty(TEST_SORT_KEY, value);
+ producer.send(msg);
+ }
+
+ producerSession.commit();
+ producer.close();
+ }
+ finally
+ {
+ producerConnection.close();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/fbdb9f9f/systests/src/test/java/org/apache/qpid/server/queue/SortedQueueTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/queue/SortedQueueTest.java b/systests/src/test/java/org/apache/qpid/server/queue/SortedQueueTest.java
deleted file mode 100644
index ee4c144..0000000
--- a/systests/src/test/java/org/apache/qpid/server/queue/SortedQueueTest.java
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.queue;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.TextMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-
-public class SortedQueueTest extends QpidBrokerTestCase
-{
- private static final Logger LOGGER = LoggerFactory.getLogger(SortedQueueTest.class);
- private static final String TEST_SORT_KEY = "testSortKey";
- private static final String[] VALUES = SortedQueueEntryListTest.keys.clone();
- private static final String[] VALUES_SORTED = SortedQueueEntryListTest.keys.clone();
- private static final int NUMBER_OF_MESSAGES = 200;
- private final String[] SUBSET_KEYS = { "000", "100", "200", "300", "400", "500", "600", "700", "800", "900" };
-
- private Connection _producerConnection;
- private Session _producerSession;
- private Connection _consumerConnection;
- private long _receiveInterval;
-
- @Override
- protected void setUp() throws Exception
- {
- super.setUp();
- // Sort value array to generated "expected" order of messages.
- Arrays.sort(VALUES_SORTED);
- _producerConnection = getConnection();
- _consumerConnection = getConnectionWithPrefetch(1);
- _producerSession = _producerConnection.createSession(true, Session.SESSION_TRANSACTED);
- _receiveInterval = getReceiveTimeout();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- _producerSession.close();
- _producerConnection.close();
- _consumerConnection.close();
- super.tearDown();
- }
-
- public void testSortOrder() throws Exception
- {
- final Queue queue = createQueue();
- final MessageProducer producer = _producerSession.createProducer(queue);
-
- for(String value : VALUES)
- {
- final Message msg = _producerSession.createTextMessage("Message Text:" + value);
- msg.setStringProperty(TEST_SORT_KEY, value);
- producer.send(msg);
- }
-
- _producerSession.commit();
- producer.close();
-
- final Session consumerSession = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- final MessageConsumer consumer = consumerSession.createConsumer(queue);
- _consumerConnection.start();
- TextMessage received;
- int messageCount = 0;
- while((received = (TextMessage) consumer.receive(_receiveInterval)) != null)
- {
- assertEquals("Received message with unexpected sorted key value", VALUES_SORTED[messageCount],
- received.getStringProperty(TEST_SORT_KEY));
- assertEquals("Received message with unexpected message value",
- "Message Text:" + VALUES_SORTED[messageCount], received.getText());
- messageCount++;
- }
-
- assertEquals("Incorrect number of messages received", VALUES.length, messageCount);
- }
-
- public void testAutoAckSortedQueue() throws Exception
- {
- runThroughSortedQueueForSessionMode(Session.AUTO_ACKNOWLEDGE);
- }
-
- public void testTransactedSortedQueue() throws Exception
- {
- runThroughSortedQueueForSessionMode(Session.SESSION_TRANSACTED);
- }
-
- public void testClientAckSortedQueue() throws Exception
- {
- runThroughSortedQueueForSessionMode(Session.CLIENT_ACKNOWLEDGE);
- }
-
- private void runThroughSortedQueueForSessionMode(final int sessionMode) throws Exception
- {
- final Queue queue = createQueue();
- final MessageProducer producer = _producerSession.createProducer(queue);
-
- final TestConsumerThread consumerThread = new TestConsumerThread(sessionMode, queue);
- consumerThread.start();
-
- for(String value : VALUES)
- {
- final Message msg = _producerSession.createMessage();
- msg.setStringProperty(TEST_SORT_KEY, value);
- producer.send(msg);
- _producerSession.commit();
- }
-
- consumerThread.join(getConsumerThreadJoinInterval());
-
- assertTrue(String.format("Consumer thread timed out after awaiting : %d ms", getConsumerThreadJoinInterval()), consumerThread.isStopped());
- assertEquals("Incorrect number of messages received", VALUES.length, consumerThread.getConsumed());
-
- producer.close();
- }
-
- public void testSortedQueueWithAscendingSortedKeys() throws Exception
- {
- final Queue queue = createQueue();
- final MessageProducer producer = _producerSession.createProducer(queue);
-
- final TestConsumerThread consumerThread = new TestConsumerThread(Session.AUTO_ACKNOWLEDGE, queue);
- consumerThread.start();
-
- for(int i = 0; i < NUMBER_OF_MESSAGES; i++)
- {
- final String ascendingKey = AscendingSortedKeys.getNextKey();
- final Message msg = _producerSession.createTextMessage("Message Text:" + ascendingKey);
- msg.setStringProperty(TEST_SORT_KEY, ascendingKey);
- producer.send(msg);
- _producerSession.commit();
- }
-
- consumerThread.join(getConsumerThreadJoinInterval());
-
- assertTrue(String.format("Consumer thread timed out after awaiting : %d ms", getConsumerThreadJoinInterval()), consumerThread.isStopped());
- assertEquals("Incorrect number of messages received", NUMBER_OF_MESSAGES, consumerThread.getConsumed());
-
- producer.close();
- }
-
- private long getConsumerThreadJoinInterval()
- {
- return _receiveInterval * NUMBER_OF_MESSAGES;
- }
-
- public void testSortOrderWithNonUniqueKeys() throws Exception
- {
- final Queue queue = createQueue();
- final MessageProducer producer = _producerSession.createProducer(queue);
-
- int count = 0;
- while(count < NUMBER_OF_MESSAGES)
- {
- final Message msg = _producerSession.createTextMessage("Message Text:" + count++);
- msg.setStringProperty(TEST_SORT_KEY, "samesortkeyvalue");
- producer.send(msg);
- }
-
- _producerSession.commit();
- producer.close();
-
- final Session consumerSession = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- final MessageConsumer consumer = consumerSession.createConsumer(queue);
- _consumerConnection.start();
- TextMessage received = null;
- int messageCount = 0;
-
- while((received = (TextMessage) consumer.receive(_receiveInterval)) != null)
- {
- assertEquals("Received message with unexpected sorted key value", "samesortkeyvalue",
- received.getStringProperty(TEST_SORT_KEY));
- assertEquals("Received message with unexpected message value", "Message Text:" + messageCount,
- received.getText());
- messageCount++;
- }
-
- assertEquals("Incorrect number of messages received", NUMBER_OF_MESSAGES, messageCount);
- }
-
- public void testSortOrderWithUniqueKeySubset() throws Exception
- {
- final Queue queue = createQueue();
- final MessageProducer producer = _producerSession.createProducer(queue);
-
- int count = 0;
- while(count < 100)
- {
- int keyValueIndex = count % 10;
- final Message msg = _producerSession.createTextMessage("Message Text:" + count);
- msg.setStringProperty(TEST_SORT_KEY, SUBSET_KEYS[keyValueIndex]);
- producer.send(msg);
- count++;
- }
-
- _producerSession.commit();
- producer.close();
-
- final Session consumerSession = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- final MessageConsumer consumer = consumerSession.createConsumer(queue);
- _consumerConnection.start();
- TextMessage received;
- int messageCount = 0;
-
- while((received = (TextMessage) consumer.receive(_receiveInterval)) != null)
- {
- assertEquals("Received message with unexpected sorted key value", SUBSET_KEYS[messageCount / 10],
- received.getStringProperty(TEST_SORT_KEY));
- messageCount++;
- }
-
- assertEquals("Incorrect number of messages received", 100, messageCount);
- }
-
- public void testGetNextWithAck() throws Exception
- {
- Queue _queue = createQueue();
- MessageProducer producer = _producerSession.createProducer(_queue);
- Message received = null;
-
- //Send 3 out of order
- sendAndCommitMessage(producer,"2");
- sendAndCommitMessage(producer,"3");
- sendAndCommitMessage(producer,"1");
-
- final Session consumerSession = _consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
- final MessageConsumer consumer = consumerSession.createConsumer(_queue);
- _consumerConnection.start();
-
- //Receive 3 in sorted order
- received = assertReceiveAndValidateMessage(consumer, "1");
- received.acknowledge();
- received = assertReceiveAndValidateMessage(consumer, "2");
- received.acknowledge();
- received = assertReceiveAndValidateMessage(consumer, "3");
- received.acknowledge();
-
- //Send 1
- sendAndCommitMessage(producer,"4");
-
- //Receive 1 and recover
- received = assertReceiveAndValidateMessage(consumer, "4");
- consumerSession.recover();
-
- //Receive same 1
- received = assertReceiveAndValidateMessage(consumer, "4");
- received.acknowledge();
-
- //Send 3 out of order
- sendAndCommitMessage(producer,"7");
- sendAndCommitMessage(producer,"6");
- sendAndCommitMessage(producer,"5");
-
- //Receive 1 of 3 (possibly out of order due to pre-fetch)
- final Message messageBeforeRollback = assertReceiveMessage(consumer);
- consumerSession.recover();
-
- if (isBroker010())
- {
- //Receive 3 in sorted order (not as per JMS recover)
- received = assertReceiveAndValidateMessage(consumer, "5");
- received.acknowledge();
- received = assertReceiveAndValidateMessage(consumer, "6");
- received.acknowledge();
- received = assertReceiveAndValidateMessage(consumer, "7");
- received.acknowledge();
- }
- else
- {
- //First message will be the one rolled-back (as per JMS spec).
- final String messageKeyDeliveredBeforeRollback = messageBeforeRollback.getStringProperty(TEST_SORT_KEY);
- received = assertReceiveAndValidateMessage(consumer, messageKeyDeliveredBeforeRollback);
- received.acknowledge();
-
- //Remaining two messages will be sorted
- final SortedSet<String> keys = new TreeSet<String>(Arrays.asList("5", "6", "7"));
- keys.remove(messageKeyDeliveredBeforeRollback);
-
- received = assertReceiveAndValidateMessage(consumer, keys.first());
- received.acknowledge();
- received = assertReceiveAndValidateMessage(consumer, keys.last());
- received.acknowledge();
- }
- }
-
- private Queue createQueue() throws Exception
- {
- final Map<String, Object> arguments = new HashMap<String, Object>();
- arguments.put(SortedQueue.SORT_KEY, TEST_SORT_KEY);
- createEntityUsingAmqpManagement(getTestQueueName(), _producerSession, "org.apache.qpid.SortedQueue", arguments);
- return getQueueFromName(_producerSession, getTestQueueName());
- }
-
- private Message getSortableTestMesssage(final String key) throws Exception
- {
- final Message msg = _producerSession.createTextMessage("Message Text: Key Value" + key);
- msg.setStringProperty(TEST_SORT_KEY, key);
- return msg;
- }
-
- private void sendAndCommitMessage(final MessageProducer producer, final String keyValue) throws Exception
- {
- producer.send(getSortableTestMesssage(keyValue));
- _producerSession.commit();
- }
-
- private Message assertReceiveAndValidateMessage(final MessageConsumer consumer, final String expectedKey) throws Exception
- {
- final Message received = assertReceiveMessage(consumer);
- assertEquals("Received message with unexpected sorted key value", expectedKey,
- received.getStringProperty(TEST_SORT_KEY));
- return received;
- }
-
- private Message assertReceiveMessage(final MessageConsumer consumer)
- throws JMSException
- {
- final Message received = (TextMessage) consumer.receive(_receiveInterval);
- assertNotNull("Received message is unexpectedly null", received);
- return received;
- }
-
- private class TestConsumerThread extends Thread
- {
- private final AtomicInteger _consumed = new AtomicInteger(0);
- private volatile boolean _stopped = false;
- private int _count = 0;
- private int _sessionType = Session.AUTO_ACKNOWLEDGE;
- private Queue _queue;
-
- public TestConsumerThread(final int sessionType, final Queue queue)
- {
- _sessionType = sessionType;
- _queue = queue;
- }
-
- @Override
- public void run()
- {
- try
- {
- Connection conn = null;
- try
- {
- conn = getConnection();
- }
- catch(Exception e)
- {
- throw new RuntimeException("Could not get connection");
- }
-
- final Session session = conn.createSession((_sessionType == Session.SESSION_TRANSACTED ? true : false),
- _sessionType);
- final MessageConsumer consumer = session.createConsumer(_queue);
-
- conn.start();
-
- Message msg;
- while((msg = consumer.receive(_receiveInterval)) != null)
- {
- if(_sessionType == Session.SESSION_TRANSACTED)
- {
- if (_count%10 == 0)
- {
- LOGGER.debug("transacted session rollback");
- session.rollback();
- }
- else
- {
- LOGGER.debug("transacted session commit");
- session.commit();
- _consumed.incrementAndGet();
- }
- }
- else if(_sessionType == Session.CLIENT_ACKNOWLEDGE)
- {
- if (_count%10 == 0)
- {
- LOGGER.debug("client ack session recover");
- session.recover();
- }
- else
- {
- LOGGER.debug("client ack session acknowledge");
- msg.acknowledge();
- _consumed.incrementAndGet();
- }
- }
- else
- {
- LOGGER.debug("auto ack session");
- _consumed.incrementAndGet();
- }
-
- _count++;
- LOGGER.debug("Message consumed with key: " + msg.getStringProperty(TEST_SORT_KEY));
- LOGGER.debug("Message consumed with consumed index: " + _consumed.get());
- }
-
- _stopped = true;
- session.close();
- conn.close();
- }
- catch(JMSException e)
- {
- LOGGER.error("Exception in listener", e);
- }
- }
-
- public boolean isStopped()
- {
- return _stopped;
- }
-
- public int getConsumed()
- {
- return _consumed.get();
- }
- }
-
- private static class AscendingSortedKeys
- {
- public static final String[] KEYS = { "Ul4a1", "WaWsv", "2Yz7E", "ix74r", "okgRi", "HlUbF", "LewvM", "lweGy",
- "TXQ0Z", "0Kyfs", "s7Mxk", "dmoS7", "8RCUA", "W3VFH", "aez9y", "uQIcz", "0h1b1", "cmXIX",
- "4dEz6", "zHF1q", "D6rBy", "5drc6", "0BmCy", "BCxeC", "t59lR", "aL6AJ", "OHaBz", "WmadA",
- "B3qem", "CxVEf", "AIYUu", "uJScX", "uoStw", "ogLgc", "AgJHQ", "hUTw7", "Rxrsm", "9GXkX",
- "7hyVv", "y94nw", "Twano", "TCgPp", "pFrrl", "POUYS", "L7cGc", "0ao3l", "CNHmv", "MaJQs",
- "OUqFM", "jeskS", "FPfSE", "v1Hln", "14FLR", "KZamH", "G1RhS", "FVMxo", "rKDLJ", "nnP8o",
- "nFqik", "zmLYD", "1j5L8", "e6e4z", "WDVWJ", "aDGtS", "fcwDa", "nlaBy", "JJs5m", "vLsmS",
- "No0Qb", "JXljW", "Waim6", "MezSW", "l83Ud", "SjskQ", "uPX7G", "5nmWv", "ZhwG1", "uTacx",
- "t98iW", "JkzUn", "fmIK1", "i7WMQ", "bgJAz", "n1pmO", "jS1aj", "4W0Tl", "Yf2Ec", "sqVrf",
- "MojnP", "qQxHP", "pWiOs", "yToGW", "kB5nP", "BpYhV", "Cfgr3", "zbIYY", "VLTy6", "he9IA",
- "lm0pD", "WreyP", "8hJdt", "QnJ1S", "n8pJ9", "iqv4k", "OUYuF", "8cVD3", "sx5Gl", "cQOnv",
- "wiHrZ", "oGu6x", "7fsYM", "gf8rI", "7fKYU", "pT8wu", "lCMxy", "prNT6", "5Drn0", "guMb8",
- "OxWIH", "uZPqg", "SbRYy", "In3NS", "uvf7A", "FLsph", "pmeCd", "BbwgA", "ru4UG", "YOfrY",
- "W7cTs", "K4GS8", "AOgEe", "618Di", "dpe1v", "3otm6", "oVQp6", "5Mg9r", "Y1mC0", "VIlwP",
- "aFFss", "Mkgy8", "pv0i7", "S77LH", "XyPZN", "QYxC0", "vkCHH", "MGlTF", "24ARF", "v2eC3",
- "ZUnqt", "HfyNQ", "FjHXR", "45cIH", "1LB1L", "zqH0W", "fLNg8", "oQ87r", "Cp3mZ", "Zv7z0",
- "O3iyQ", "EOE1o", "5ZaEz", "tlILt", "MmsIo", "lXFOB", "gtCA5", "yEfy9", "7X3uy", "d7vjM",
- "XflUq", "Fhtgl", "NOHsz", "GWqqX", "xciqp", "BFkb8", "P6bcg", "lViBv", "2TRI7", "2hEEU",
- "9XyT9", "29QAz", "U3yw5", "FxX9q", "C2Irc", "8U2nU", "m4bxU", "5iGN5", "mX2GE", "cShY2",
- "JRJQB", "yvOMI", "4QMc9", "NAFuw", "RmDcr", "faHir", "2ZHdk", "zY1GY", "a00b5", "ZuDtD",
- "JIqXi", "K20wK", "gdQsS", "5Namm", "lkMUA", "IBe8k", "FcWrW", "FFDui", "tuDyS", "ZJTXH",
- "AkKTk", "zQt6Q", "FNYIM", "RpBQm", "RsQUq", "Mm8si", "gjUTu", "zz4ZU", "jiVBP", "ReKEW",
- "5VZjS", "YjB9t", "zFgtB", "8TxD7", "euZA5", "MK07Y", "CK5W7", "16lHc", "6q6L9", "Z4I1v",
- "UlU3M", "SWfou", "0PktI", "55rfB", "jfREu", "580YD", "Uvlv4", "KASQ8", "AmdQd", "piJSk",
- "hE1Ql", "LDk6f", "NcICA", "IKxdL", "iwzGk", "uN6r3", "lsQGo", "QClRL", "iKqhr", "FGzgp",
- "RkQke", "b29RJ", "CIShG", "9eoRc", "F6PT2", "LbRTH", "M3zXL", "GXdoH", "IjTwP", "RBhp0",
- "yluBx", "mz8gx", "MmKGJ", "Q6Lix", "uupzk", "RACuj", "d85a9", "qaofN", "kZANm", "jtn0X",
- "lpF6W", "suY4x", "rz7Ut", "wDajX", "1v5hH", "Yw2oU", "ksJby", "WMiS3", "lj07Q", "EdBKc",
- "6AFT0", "0YAGH", "ThjNn", "JKWYR", "9iGoT", "UmaEv", "3weIF", "CdyBV", "pAhR1", "djsrv",
- "xReec", "8FmFH", "Dz1R3", "Ta8f6", "DG4sT", "VjCZq", "jSjS3", "Pb1pa", "VNCPd", "Kr8ys",
- "AXpwE", "ZzJHW", "Nxx9V", "jzUqR", "dhSuH", "DQimp", "07n1c", "HP433", "RzaZA", "cL0aE",
- "Ss0Zu", "FnPFB", "7lUXZ", "9rlg9", "lH1kt", "ni2v1", "48cHL", "soy9t", "WPmlx", "2Nslm",
- "hSSvQ", "9y4lw", "ulk41", "ECMvU", "DLhzM", "GrDg7", "x3LDe", "QChxs", "xXTI4", "Gv3Fq",
- "rhl0J", "QssNC", "brhlQ", "s93Ml", "tl72W", "pvgjS", "Qworu", "DcpWB", "X6Pin", "J2mQi",
- "BGaQY", "CqqaD", "NhXdu", "dQ586", "Yh1hF", "HRxd8", "PYBf4", "64s8N", "tvdkD", "azIWp",
- "tAOsr", "v8yFN", "h1zcH", "SmGzv", "bZLvS", "fFDrJ", "Oz8yZ", "0Wr5y", "fcJOy", "7ku1p",
- "QbxXc", "VerEA", "QWxoT", "hYBCK", "o8Uyd", "FwEJz", "hi5X7", "uAWyp", "I7p2a", "M6qcG",
- "gIYvE", "HzZT8", "iB08l", "StlDJ", "tjQxs", "k85Ae", "taOXK", "s4786", "2DREs", "atef2",
- "Vprf2", "VBjhz", "EoToP", "blLA9", "qUJMd", "ydG8U", "8xEKz", "uLtKs", "GSQwj", "S2Dfu",
- "ciuWz", "i3pyd", "7Ow5C", "IRh48", "vOqCE", "Q6hMC", "yofH3", "KsjRK", "5IhmG", "fqypy",
- "0MR5X", "Chuy3" };
-
- private static int _i = 0;
- private static int _j = 0;
-
- static
- {
- Arrays.sort(KEYS);
- }
-
- public static String getNextKey()
- {
- if(_j == KEYS.length)
- {
- _j = 0;
- _i++;
- if(_i == KEYS.length)
- {
- _i = 0;
- }
- }
- return new StringBuffer().append(KEYS[_i]).append("-").append(KEYS[_j++]).toString();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/fbdb9f9f/test-profiles/CPPExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/CPPExcludes b/test-profiles/CPPExcludes
index 9a249f2..cb245cf 100755
--- a/test-profiles/CPPExcludes
+++ b/test-profiles/CPPExcludes
@@ -33,9 +33,6 @@ org.apache.qpid.server.queue.AMQPriorityQueueTest#*
// the 0-10 c++ broker does not implement the extended LVQ semantics which the Qpid Broker-J does
org.apache.qpid.server.queue.ConflationQueueTest#*
-// the 0-10 c++ broker does not implement sorted queues
-org.apache.qpid.server.queue.SortedQueueTest#*
-
// the 0-10 c++ broker does not implement DLQ
org.apache.qpid.test.unit.client.MaxDeliveryCountTest#*
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/fbdb9f9f/test-profiles/JavaPre010Excludes
----------------------------------------------------------------------
diff --git a/test-profiles/JavaPre010Excludes b/test-profiles/JavaPre010Excludes
index d59fab3..7c78ca5 100644
--- a/test-profiles/JavaPre010Excludes
+++ b/test-profiles/JavaPre010Excludes
@@ -39,7 +39,6 @@ org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testJMSDesti
// The new addressing based syntax is not supported for AMQP 0-8/0-9 versions
org.apache.qpid.client.failover.AddressBasedFailoverBehaviourTest#*
-org.apache.qpid.server.queue.AddressBasedSortedQueueTest#*
// Those tests are written against the 0.10 path
org.apache.qpid.client.SynchReceiveTest#testReceiveNoWait
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] qpid-broker-j git commit: QPID-6933: [System Tests] Fix
ConnectionStartTest
Posted by or...@apache.org.
QPID-6933: [System Tests] Fix ConnectionStartTest
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/7314ece6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/7314ece6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/7314ece6
Branch: refs/heads/master
Commit: 7314ece6c9822dce8d4edbc57a7340771681d75c
Parents: b1a7aac
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Dec 28 23:29:01 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Fri Dec 29 09:15:19 2017 +0000
----------------------------------------------------------------------
.../qpid/systests/jms_1_1/connection/ConnectionStartTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/7314ece6/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/connection/ConnectionStartTest.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/connection/ConnectionStartTest.java b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/connection/ConnectionStartTest.java
index 7169e34..0d17c6d 100644
--- a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/connection/ConnectionStartTest.java
+++ b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/connection/ConnectionStartTest.java
@@ -92,7 +92,7 @@ public class ConnectionStartTest extends JmsTestBase
connection.start();
assertTrue("Message is not received in timely manner", awaitMessage.await(getReceiveTimeout(), TimeUnit.MILLISECONDS));
- assertTrue("Message received before connection start", deliveryTime.get() > beforeStartTime);
+ assertTrue("Message received before connection start", deliveryTime.get() >= beforeStartTime);
}
finally
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org