protected void assertNoMoreMessages() throws ActiveMQException { session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS); ClientMessage msg = consumer.receiveImmediate(); assertNull("there should be no more messages to receive! " + msg, msg); consumer.close(); session.commit(); }
protected void receiveMsgsInRange(int start, int end) throws ActiveMQException { session.start(); ClientConsumer consumer = addClientConsumer(session.createConsumer(ADDRESS)); receiveMessages(consumer, start, end, true); consumer.close(); session.commit(); }
@Test public void testDurableMessageOnDurableQueue() throws Exception { boolean durable = true; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, durable); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(durable)); restart(); session.start(); ClientConsumer consumer = session.createConsumer(queue); Assert.assertNotNull(consumer.receive(500)); consumer.close(); session.deleteQueue(queue); }
@Test public void testAutoDeleteAutoCreatedQueue() throws Exception { // auto-delete-queues defaults to true server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true); assertNotNull(server.locateQueue(queueA)); cf.createSession().createConsumer(queueA).close(); assertNull(server.locateQueue(queueA)); }
/** * @param session * @param queueToRead * @param numberOfBytes * @throws ActiveMQException * @throws IOException */ protected void readMessage(final ClientSession session, final SimpleString queueToRead, final int numberOfBytes) throws ActiveMQException, IOException { session.start(); ClientConsumer consumer = session.createConsumer(queueToRead); ClientMessage clientMessage = consumer.receive(5000); Assert.assertNotNull(clientMessage); clientMessage.acknowledge(); session.commit(); consumer.close(); }
@Test public void testConsumeFromDurableQueue() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createQueue(address, queue, true); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(false)); session.start(); ClientConsumer consumer = session.createConsumer(queue); ClientMessage message = consumer.receive(500); Assert.assertNotNull(message); message.acknowledge(); consumer.close(); session.deleteQueue(queue); }
@Test public void testAutoDeleteAutoCreatedAddress() throws Exception { // auto-delete-addresses defaults to true server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true); assertNotNull(server.getAddressInfo(addressA)); cf.createSession().createConsumer(queueA).close(); assertNull(server.getAddressInfo(addressA)); }
private ClientMessage receiveMessage() throws Exception { final ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(null, null, false, true, true, false, 0); session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS); ClientMessage message = consumer.receive(1000); session.commit(); if (message != null) { message.acknowledge(); } consumer.close(); session.close(); return message; }
private void doTestBasicGroupingMultipleProducers() throws Exception { ClientProducer clientProducer = clientSession.createProducer(qName); ClientProducer clientProducer2 = clientSession.createProducer(qName); ClientProducer clientProducer3 = clientSession.createProducer(qName); ClientConsumer consumer = clientSession.createConsumer(qName); ClientConsumer consumer2 = clientSession.createConsumer(qName); clientSession.start(); int numMessages = 100; for (int i = 0; i < numMessages; i++) { ClientMessage message = createTextMessage(clientSession, "m" + i); clientProducer.send(message); clientProducer2.send(message); clientProducer3.send(message); } CountDownLatch latch = new CountDownLatch(numMessages * 3); DummyMessageHandler dummyMessageHandler = new DummyMessageHandler(latch, true); consumer.setMessageHandler(dummyMessageHandler); DummyMessageHandler dummyMessageHandler2 = new DummyMessageHandler(latch, true); consumer2.setMessageHandler(dummyMessageHandler2); Assert.assertTrue(latch.await(10, TimeUnit.SECONDS)); Assert.assertEquals(300, dummyMessageHandler.list.size()); Assert.assertEquals(0, dummyMessageHandler2.list.size()); consumer.close(); consumer2.close(); }
@Test public void testBINDING_ADDEDWithNonMatchingFilter() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); boolean durable = RandomUtil.randomBoolean(); System.out.println(queue); notifConsumer.close(); notifConsumer = session.createConsumer(notifQueue.toString(), ManagementHelper.HDR_ROUTING_NAME + " <> '" + queue + "' AND " + ManagementHelper.HDR_ADDRESS + " <> '" + address + "'"); NotificationTest.flush(notifConsumer); session.createQueue(address, queue, durable); NotificationTest.consumeMessages(0, notifConsumer); session.deleteQueue(queue); }
@Test public void testMessageExpiredWithoutExpiryAddress() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, false); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(false); message.setExpiration(System.currentTimeMillis() + MessageExpirationTest.EXPIRATION); producer.send(message); Thread.sleep(MessageExpirationTest.EXPIRATION * 2); session.start(); ClientConsumer consumer = session.createConsumer(queue); ClientMessage message2 = consumer.receiveImmediate(); Assert.assertNull(message2); consumer.close(); session.deleteQueue(queue); }
@Test public void testNegativeAutoDeleteAutoCreatedQueue() throws Exception { server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings().setAutoDeleteQueues(false)); server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true); assertNotNull(server.locateQueue(queueA)); cf.createSession().createConsumer(queueA).close(); assertNotNull(server.locateQueue(queueA)); } }
@Test public void testNonDurableMessageOnDurableQueue() throws Exception { boolean durable = true; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, durable); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(!durable)); restart(); session.start(); ClientConsumer consumer = session.createConsumer(queue); Assert.assertNull(consumer.receiveImmediate()); consumer.close(); session.deleteQueue(queue); }
@Test public void testNegativeAutoDeleteAutoCreatedAddress() throws Exception { server.getAddressSettingsRepository().addMatch(addressA.toString(), new AddressSettings().setAutoDeleteAddresses(false)); server.createQueue(addressA, RoutingType.ANYCAST, queueA, null, null, true, false, false, false, true, 1, false, true); assertNotNull(server.getAddressInfo(addressA)); cf.createSession().createConsumer(queueA).close(); assertNotNull(server.getAddressInfo(addressA)); } }
private void doTestBasicGroupingUsingConnectionFactory() throws Exception { ClientProducer clientProducer = clientSession.createProducer(qName); ClientConsumer consumer = clientSession.createConsumer(qName); ClientConsumer consumer2 = clientSession.createConsumer(qName); clientSession.start(); int numMessages = 100; for (int i = 0; i < numMessages; i++) { ClientMessage message = createTextMessage(clientSession, "m" + i); clientProducer.send(message); } CountDownLatch latch = new CountDownLatch(numMessages); DummyMessageHandler dummyMessageHandler = new DummyMessageHandler(latch, true); consumer.setMessageHandler(dummyMessageHandler); DummyMessageHandler dummyMessageHandler2 = new DummyMessageHandler(latch, true); consumer2.setMessageHandler(dummyMessageHandler2); Assert.assertTrue(latch.await(10, TimeUnit.SECONDS)); Assert.assertEquals(100, dummyMessageHandler.list.size()); Assert.assertEquals(0, dummyMessageHandler2.list.size()); consumer.close(); consumer2.close(); }
@Test public void testBINDING_ADDEDWithMatchingFilter() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); boolean durable = RandomUtil.randomBoolean(); System.out.println(queue); notifConsumer.close(); notifConsumer = session.createConsumer(notifQueue.toString(), ManagementHelper.HDR_ROUTING_NAME + "= '" + queue + "'"); NotificationTest.flush(notifConsumer); session.createQueue(address, queue, durable); ClientMessage[] notifications = NotificationTest.consumeMessages(1, notifConsumer); Assert.assertEquals(BINDING_ADDED.toString(), notifications[0].getObjectProperty(ManagementHelper.HDR_NOTIFICATION_TYPE).toString()); Assert.assertEquals(queue.toString(), notifications[0].getObjectProperty(ManagementHelper.HDR_ROUTING_NAME).toString()); Assert.assertEquals(address.toString(), notifications[0].getObjectProperty(ManagementHelper.HDR_ADDRESS).toString()); session.deleteQueue(queue); }
@Test public void testConsumeFromTemporaryQueue() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createTemporaryQueue(address, queue); ClientProducer producer = session.createProducer(address); ClientMessage msg = session.createMessage(false); producer.send(msg); session.start(); ClientConsumer consumer = session.createConsumer(queue); ClientMessage message = consumer.receive(500); assertNotNull(message); message.acknowledge(); consumer.close(); session.deleteQueue(queue); session.close(); }
@Test public void testGetConsumerCount() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(0, queueControl.getConsumerCount()); ClientConsumer consumer = session.createConsumer(queue); Assert.assertEquals(1, queueControl.getConsumerCount()); consumer.close(); Assert.assertEquals(0, queueControl.getConsumerCount()); session.deleteQueue(queue); }
@Test public void testQueueWithWildcard() throws Exception { session.createQueue("a.b", RoutingType.MULTICAST, "queue1"); session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue2"); session.createTemporaryQueue("a.#", RoutingType.MULTICAST, "queue3"); ClientProducer producer = session.createProducer("a.b"); producer.send(session.createMessage(false)); ClientConsumer cons = session.createConsumer("queue2"); session.start(); ClientMessage msg = cons.receive(5000); assertNotNull(msg); msg.acknowledge(); cons.close(); cons = session.createConsumer("queue3"); session.start(); msg = cons.receive(5000); assertNotNull(msg); msg.acknowledge(); cons.close(); session.deleteQueue("queue2"); session.deleteQueue("queue3"); session.close(); }
@Test public void testGetConsumerJSON() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(0, queueControl.getConsumerCount()); ClientConsumer consumer = session.createConsumer(queue); Assert.assertEquals(1, queueControl.getConsumerCount()); System.out.println("Consumers: " + queueControl.listConsumersAsJSON()); JsonArray obj = JsonUtil.readJsonArray(queueControl.listConsumersAsJSON()); assertEquals(1, obj.size()); consumer.close(); Assert.assertEquals(0, queueControl.getConsumerCount()); obj = JsonUtil.readJsonArray(queueControl.listConsumersAsJSON()); assertEquals(0, obj.size()); session.deleteQueue(queue); }