Refine search
@Test public void testProducerBlockWontGetTimeout() throws Exception { Connection connection = null; try { connection = factory.createConnection("admin", "password"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue trash = session.createQueue("trash"); final MessageProducer producer = session.createProducer(trash); producer.send(session.createTextMessage("foo")); Assert.assertNotNull(server.getPostOffice().getBinding(new SimpleString("trash"))); } finally { if (connection != null) { connection.close(); } } }
@Test public void testAutoCreateOnConsumeFromQueue() throws Exception { Connection connection = null; connection = cf.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); javax.jms.Queue queue = ActiveMQJMSClient.createQueue(QUEUE_NAME); MessageConsumer messageConsumer = session.createConsumer(queue); connection.start(); Message m = messageConsumer.receive(500); Assert.assertNull(m); Queue q = (Queue) server.getPostOffice().getBinding(new SimpleString(QUEUE_NAME)).getBindable(); Assert.assertEquals(0, q.getMessageCount()); Assert.assertEquals(0, q.getMessagesAdded()); connection.close(); }
@Test public void testDuplicateIDCacheJournalRetentionForNonTemporaryQueues() throws Exception { testDuplicateIDCacheMemoryRetention(false); server.stop(); waitForServerToStop(server); server.start(); Assert.assertEquals(0, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size()); }
@Test public void testDuplicateIDCacheJournalRetentionForTemporaryQueues() throws Exception { testDuplicateIDCacheMemoryRetention(true); server.stop(); waitForServerToStop(server); server.start(); Assert.assertEquals(0, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size()); }
@Test public void testDeleteQueue() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); session.createQueue(address, queueName, false); Binding binding = server.getPostOffice().getBinding(queueName); Assert.assertNotNull(binding); session.deleteQueue(queueName); binding = server.getPostOffice().getBinding(queueName); Assert.assertNull(binding); session.close(); }
@Test public void testBasicExpire() throws Exception { ClientProducer producer = clientSession.createProducer(qName); int numMessages = 100; long expiration = System.currentTimeMillis(); for (int i = 0; i < numMessages; i++) { ClientMessage m = createTextMessage(clientSession, "m" + i); m.setExpiration(expiration); producer.send(m); } Thread.sleep(1600); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(qName).getBindable()).getMessageCount()); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(qName).getBindable()).getDeliveringCount()); }
@Test public void testStartWithDuplicateQueues() throws Exception { ActiveMQServer server = getActiveMQServer("duplicate-queues.xml"); try { server.start(); Bindings mytopic_1 = server.getPostOffice().getBindingsForAddress(new SimpleString("mytopic_1")); assertEquals(mytopic_1.getBindings().size(), 0); Bindings mytopic_2 = server.getPostOffice().getBindingsForAddress(new SimpleString("mytopic_2")); assertEquals(mytopic_2.getBindings().size(), 3); } finally { try { server.stop(); } catch (Exception e) { } } }
@Test public void testExpireHalf() throws Exception { ClientProducer producer = clientSession.createProducer(qName); int numMessages = 100; long expiration = System.currentTimeMillis(); for (int i = 0; i < numMessages; i++) { ClientMessage m = createTextMessage(clientSession, "m" + i); if (i % 2 == 0) { m.setExpiration(expiration); } producer.send(m); } Thread.sleep(1600); Assert.assertEquals(numMessages / 2, ((Queue) server.getPostOffice().getBinding(qName).getBindable()).getMessageCount()); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(qName).getBindable()).getDeliveringCount()); }
@Test public void testDurableTrue() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); session.createQueue(address, queueName, true); Binding binding = server.getPostOffice().getBinding(queueName); Queue q = (Queue) binding.getBindable(); Assert.assertTrue(q.isDurable()); session.close(); }
@Test public void testDurableFalse() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); session.createQueue(address, queueName, false); Binding binding = server.getPostOffice().getBinding(queueName); Queue q = (Queue) binding.getBindable(); Assert.assertFalse(q.isDurable()); session.close(); }
@Test public void testTemporaryTrue() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); session.createTemporaryQueue(address, queueName); Binding binding = server.getPostOffice().getBinding(queueName); Queue q = (Queue) binding.getBindable(); Assert.assertTrue(q.isTemporary()); session.close(); }
@Test public void testTemporaryFalse() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); session.createQueue(address, queueName, false); Binding binding = server.getPostOffice().getBinding(queueName); Queue q = (Queue) binding.getBindable(); Assert.assertFalse(q.isTemporary()); session.close(); }
@Test public void testAddressRemoved() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); session.createAddress(address, RoutingType.ANYCAST, true); NotificationTest.flush(notifConsumer); server.getPostOffice().removeAddressInfo(address); ClientMessage[] notifications = NotificationTest.consumeMessages(1, notifConsumer); Assert.assertEquals(ADDRESS_REMOVED.toString(), notifications[0].getObjectProperty(ManagementHelper.HDR_NOTIFICATION_TYPE).toString()); Assert.assertEquals(RoutingType.ANYCAST.getType(), notifications[0].getObjectProperty(ManagementHelper.HDR_ROUTING_TYPE)); Assert.assertEquals(address.toString(), notifications[0].getObjectProperty(ManagementHelper.HDR_ADDRESS).toString()); }
@Test public void testQueueConfigPurgeOnNoConsumerAndRestart() throws Exception { ActiveMQServer server = createServer(true); server.start(); SimpleString address = new SimpleString("test.address"); SimpleString queue = new SimpleString("test.queue"); server.createQueue(address, RoutingType.MULTICAST, queue, null, null, true, false, false, 10, true, true); QueueBinding queueBinding1 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding1.getQueue().isPurgeOnNoConsumers()); server.stop(); server.start(); QueueBinding queueBinding2 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding2.getQueue().isPurgeOnNoConsumers()); }
@Test public void sharedNonDurableUnsubscribeDifferentTopic() throws Exception { context = cf.createContext(); try { JMSConsumer con1 = context.createSharedConsumer(topic1, "mySharedCon"); JMSConsumer con2 = context.createSharedConsumer(topic1, "mySharedCon"); con1.close(); Binding binding = server.getPostOffice().getBinding(new SimpleString("nonDurable.mySharedCon")); assertNotNull(binding); con2.close(); binding = server.getPostOffice().getBinding(new SimpleString("nonDurable.mySharedCon")); assertNull(binding); con1 = context.createSharedConsumer(topic2, "mySharedCon"); } finally { context.close(); } }
@Test public void testQueueConfigExclusiveAndRestart() throws Exception { ActiveMQServer server = createServer(true); server.start(); SimpleString address = new SimpleString("test.address"); SimpleString queue = new SimpleString("test.queue"); server.createQueue(address, RoutingType.MULTICAST, queue, null, null, true, false, false, false,false, 10, true, true, true, true); QueueBinding queueBinding1 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding1.getQueue().isExclusive()); server.stop(); server.start(); QueueBinding queueBinding2 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding2.getQueue().isExclusive()); }
@Test public void testQueueConfigLastValueAndRestart() throws Exception { ActiveMQServer server = createServer(true); server.start(); SimpleString address = new SimpleString("test.address"); SimpleString queue = new SimpleString("test.queue"); server.createQueue(address, RoutingType.MULTICAST, queue, null, null, true, false, false, false,false, 10, true, false, true, true); QueueBinding queueBinding1 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding1.getQueue().isLastValue()); server.stop(); server.start(); QueueBinding queueBinding2 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertTrue(queueBinding2.getQueue().isLastValue()); }
@Test public void testQueueConfigDelayBeforeDispatchAndRestart() throws Exception { long delayBeforeDispatch = 5000L; ActiveMQServer server = createServer(true); server.start(); SimpleString address = new SimpleString("test.address"); SimpleString queue = new SimpleString("test.queue"); server.createQueue(address, RoutingType.MULTICAST, queue, null, null, true, false, false, false,false, 10, true, true, true, null, false,0, delayBeforeDispatch, true); QueueBinding queueBinding1 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertEquals(delayBeforeDispatch, queueBinding1.getQueue().getDelayBeforeDispatch()); server.stop(); server.start(); QueueBinding queueBinding2 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertEquals(delayBeforeDispatch, queueBinding1.getQueue().getDelayBeforeDispatch()); }
@Test(timeout = 60000) public void testSendAMQPReceiveAMQPViaJMSBytes() throws Exception { server.getAddressSettingsRepository().addMatch("#", new AddressSettings().setDefaultAddressRoutingType(RoutingType.ANYCAST)); String testQueueName = "ConnectionFrameSize"; int nMsgs = 1; ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:61616"); sendBytesMessages(nMsgs, new JmsConnectionFactory("amqp://localhost:61616")); int count = getMessageCount(server.getPostOffice(), testQueueName); assertEquals(nMsgs, count); receiveJMS(nMsgs, factory); }
@Test public void testQueueConfigConsumersBeforeDispatchAndRestart() throws Exception { int consumersBeforeDispatch = 5; ActiveMQServer server = createServer(true); server.start(); SimpleString address = new SimpleString("test.address"); SimpleString queue = new SimpleString("test.queue"); server.createQueue(address, RoutingType.MULTICAST, queue, null, null, true, false, false, false,false, 10, true, true, true, null, false, consumersBeforeDispatch, -1, true); QueueBinding queueBinding1 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertEquals(consumersBeforeDispatch, queueBinding1.getQueue().getConsumersBeforeDispatch()); server.stop(); server.start(); QueueBinding queueBinding2 = (QueueBinding)server.getPostOffice().getBinding(queue); Assert.assertEquals(consumersBeforeDispatch, queueBinding1.getQueue().getConsumersBeforeDispatch()); }