/** * Constructor for the ClientRequestor. * * The implementation expects a ClientSession with automatic commits of sends and acknowledgements * * @param session a ClientSession uses to handle requests and replies * @param requestAddress the address to send request messages to * @throws Exception */ public ClientRequestor(final ClientSession session, final SimpleString requestAddress) throws Exception { queueSession = session; requestProducer = queueSession.createProducer(requestAddress); replyQueue = new SimpleString(requestAddress + "." + UUID.randomUUID().toString()); queueSession.createTemporaryQueue(replyQueue, replyQueue); replyConsumer = queueSession.createConsumer(replyQueue); }
@Test public void testSplitmanyDelimeters() throws Exception { SimpleString s = new SimpleString("abcd.efghi.jklmn.opqrs.tuvw.xyz"); SimpleString[] strings = s.split('.'); Assert.assertNotNull(strings); Assert.assertEquals(strings.length, 6); Assert.assertEquals(strings[0], new SimpleString("abcd")); Assert.assertEquals(strings[1], new SimpleString("efghi")); Assert.assertEquals(strings[2], new SimpleString("jklmn")); Assert.assertEquals(strings[3], new SimpleString("opqrs")); Assert.assertEquals(strings[4], new SimpleString("tuvw")); Assert.assertEquals(strings[5], new SimpleString("xyz")); }
@Test(expected = IllegalStateException.class) public void cannotAllowNullNameWithAddress() { QueueConfig.builderWith(1L, null, new SimpleString("queue_address")); } }
@Test public void testBasicSendToNoQueue() throws Exception { SimpleString ea = new SimpleString("EA"); SimpleString qName = new SimpleString("q1"); SimpleString eq = new SimpleString("EQ1"); SimpleString eq2 = new SimpleString("EQ2"); clientSession.createQueue(ea, eq, null, false); clientSession.createQueue(ea, eq2, null, false); clientSession.createQueue(qName, qName, null, false); ClientProducer producer = clientSession.createProducer(qName); ClientMessage clientMessage = createTextMessage(clientSession, "heyho!"); clientMessage.setExpiration(System.currentTimeMillis()); producer.send(clientMessage); clientSession.start(); ClientConsumer clientConsumer = clientSession.createConsumer(qName); ClientMessage m = clientConsumer.receiveImmediate(); Assert.assertNull(m); clientConsumer.close(); }
@Test public void testQueueQueryWithFilter() throws Exception { cf = createSessionFactory(locator); ClientSession clientSession = cf.createSession(false, true, true); clientSession.createQueue("a1", queueName, "foo=bar", false); clientSession.createConsumer(queueName); clientSession.createConsumer(queueName); QueueQuery resp = clientSession.queueQuery(new SimpleString(queueName)); Assert.assertEquals(new SimpleString("a1"), resp.getAddress()); Assert.assertEquals(2, resp.getConsumerCount()); Assert.assertEquals(0, resp.getMessageCount()); Assert.assertEquals(new SimpleString("foo=bar"), resp.getFilterString()); clientSession.close(); }
@Test public void testUnlimitedMaxConsumers() throws Exception { int noConsumers = 50; SimpleString address = new SimpleString("test.address"); SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString()); // For each address, create 2 Queues with the same address, assert both queues receive message boolean purgeOnNoConsumers = false; Queue q1 = server.createQueue(address, RoutingType.MULTICAST, queueName, null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, purgeOnNoConsumers, true); ClientSession session = sessionFactory.createSession(); session.start(); for (int i = 0; i < noConsumers; i++) { session.createConsumer(q1.getName()); } }
public void sendMessages(final int start, final int end) throws Exception { try (ClientSession session = factory.createSession(false, false)) { try { session.createQueue(QUEUE, QUEUE, true); } catch (Exception ignored) { } ClientProducer prod = session.createProducer(QUEUE); for (int i = start; i < end; i++) { ClientMessage msg = session.createMessage(true); msg.putIntProperty(new SimpleString("key"), i); msg.getBodyBuffer().writeUTF("message " + i); prod.send(msg); } session.commit(); session.close(); // server.stop(); -- this test was not supposed to stop the server, it should crash } }
protected void doTestO(final ClientSessionFactory sf, final int threadNum) throws Exception { ClientSession sessCreate = sf.createSession(false, true, true); sessCreate.createQueue(MultiThreadRandomReattachTestBase.ADDRESS, new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString()), (SimpleString) null, false); ClientSession sess = sf.createSession(false, true, true); sess.start(); ClientConsumer consumer = sess.createConsumer(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())); for (int i = 0; i < 100; i++) { Assert.assertNull(consumer.receiveImmediate()); } sess.close(); sessCreate.deleteQueue(new SimpleString(threadNum + MultiThreadRandomReattachTestBase.ADDRESS.toString())); sessCreate.close(); }
private void commonTestCode() throws Exception { waitForBindings(3, "test.SomeAddress", 1, 1, true); waitForBindings(1, "test.SomeAddress", 1, 1, false); producer = sessionOne.createProducer(ReplicatedDistributionTest.ADDRESS); for (int i = 0; i < 100; i++) { ClientMessage msg = sessionOne.createMessage(true); msg.putIntProperty(new SimpleString("key"), i); producer.send(msg); } sessionOne.commit(); }
@Test public void testWildcardRoutingVariableLengthsStar() throws Exception { SimpleString addressAB = new SimpleString("a.b.c"); SimpleString addressAC = new SimpleString("a.c"); SimpleString address = new SimpleString("a.*"); SimpleString queueName1 = new SimpleString("Q1"); SimpleString queueName2 = new SimpleString("Q2"); SimpleString queueName = new SimpleString("Q"); clientSession.createQueue(addressAB, queueName1, null, false); clientSession.createQueue(addressAC, queueName2, null, false); clientSession.createQueue(address, queueName, null, false); ClientProducer producer = clientSession.createProducer(addressAB); ClientProducer producer2 = clientSession.createProducer(addressAC); ClientConsumer clientConsumer = clientSession.createConsumer(queueName); clientSession.start(); producer.send(createTextMessage(clientSession, "m1")); producer2.send(createTextMessage(clientSession, "m2")); ClientMessage m = clientConsumer.receive(500); Assert.assertNotNull(m); Assert.assertEquals("m2", m.getBodyBuffer().readString()); m.acknowledge(); m = clientConsumer.receiveImmediate(); Assert.assertNull(m); }
@Test public void testSplit1Delimeter() throws Exception { SimpleString s = new SimpleString("abcd.efghi"); SimpleString[] strings = s.split('.'); Assert.assertNotNull(strings); Assert.assertEquals(strings.length, 2); Assert.assertEquals(strings[0], new SimpleString("abcd")); Assert.assertEquals(strings[1], new SimpleString("efghi")); }
@Test public void testNewlineMatch() throws Exception { filter = FilterImpl.createFilter(new SimpleString("fooprop LIKE '%1234%'")); message.putStringProperty(new SimpleString("fooprop"), new SimpleString("hello1234\n")); Assert.assertTrue(filter.match(message)); }
@Test public void testcreateWithFilter() throws Exception { ClientSession session = createSessionFactory(locator).createSession(false, true, true); SimpleString filterString = new SimpleString("x=y"); session.createQueue(address, queueName, filterString, false); Binding binding = server.getPostOffice().getBinding(queueName); Queue q = (Queue) binding.getBindable(); Assert.assertEquals(q.getFilter().getFilterString(), filterString); session.close(); }
@Test public void testWildcardRoutingStarInMiddle() throws Exception { SimpleString addressAB = new SimpleString("a.b.c"); SimpleString addressAC = new SimpleString("a.c"); SimpleString address = new SimpleString("*.b.*"); SimpleString queueName1 = new SimpleString("Q1"); SimpleString queueName2 = new SimpleString("Q2"); SimpleString queueName = new SimpleString("Q"); clientSession.createQueue(addressAB, queueName1, null, false); clientSession.createQueue(addressAC, queueName2, null, false); clientSession.createQueue(address, queueName, null, false); ClientProducer producer = clientSession.createProducer(addressAB); ClientProducer producer2 = clientSession.createProducer(addressAC); ClientConsumer clientConsumer = clientSession.createConsumer(queueName); clientSession.start(); producer.send(createTextMessage(clientSession, "m1")); producer2.send(createTextMessage(clientSession, "m2")); ClientMessage m = clientConsumer.receive(500); Assert.assertNotNull(m); Assert.assertEquals("m1", m.getBodyBuffer().readString()); m.acknowledge(); m = clientConsumer.receiveImmediate(); Assert.assertNull(m); }
@Test public void testConcat() { SimpleString start = new SimpleString("abcdefg"); SimpleString middle = new SimpleString("hijklmnop"); SimpleString end = new SimpleString("qrstuvwxyz"); Assert.assertEquals(start.concat(middle).concat(end), new SimpleString("abcdefghijklmnopqrstuvwxyz")); Assert.assertEquals(start.concat('.').concat(end), new SimpleString("abcdefg.qrstuvwxyz")); // Testing concat of SimpleString with String for (int i = 0; i < 10; i++) { Assert.assertEquals(new SimpleString("abcdefg-" + i), start.concat("-" + Integer.toString(i))); } }
@Test public void testIdentifier() throws Exception { filter = FilterImpl.createFilter(new SimpleString("MyBoolean")); testBoolean("MyBoolean", true); }
@Test public void testAttributes() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); SimpleString filter = new SimpleString("color = 'blue'"); session.createQueue(address, RoutingType.MULTICAST, queue, filter, durable); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(queue.toString(), queueControl.getName()); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(filter.toString(), queueControl.getFilter()); Assert.assertEquals(durable, queueControl.isDurable()); Assert.assertFalse(queueControl.isTemporary()); session.deleteQueue(queue); }
@Test public void testWildcardRoutingStarAndHash() throws Exception { SimpleString addressAB = new SimpleString("a.b.c.d"); SimpleString addressAC = new SimpleString("a.c"); SimpleString address = new SimpleString("*.b.#"); SimpleString queueName1 = new SimpleString("Q1"); SimpleString queueName2 = new SimpleString("Q2"); SimpleString queueName = new SimpleString("Q"); clientSession.createQueue(addressAB, queueName1, null, false); clientSession.createQueue(addressAC, queueName2, null, false); clientSession.createQueue(address, queueName, null, false); ClientProducer producer = clientSession.createProducer(addressAB); ClientProducer producer2 = clientSession.createProducer(addressAC); ClientConsumer clientConsumer = clientSession.createConsumer(queueName); clientSession.start(); producer.send(createTextMessage(clientSession, "m1")); producer2.send(createTextMessage(clientSession, "m2")); ClientMessage m = clientConsumer.receive(500); Assert.assertNotNull(m); Assert.assertEquals("m1", m.getBodyBuffer().readString()); m.acknowledge(); m = clientConsumer.receiveImmediate(); Assert.assertNull(m); }
@Test public void testUnicode() throws Exception { String myString = "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"; SimpleString s = new SimpleString(myString); byte[] data = s.getData(); s = new SimpleString(data); Assert.assertEquals(myString, s.toString()); }
@Test public void testStartsWith() throws Exception { SimpleString s1 = new SimpleString("abcdefghi"); Assert.assertTrue(s1.startsWith(new SimpleString("abc"))); Assert.assertTrue(s1.startsWith(new SimpleString("abcdef"))); Assert.assertTrue(s1.startsWith(new SimpleString("abcdefghi"))); Assert.assertFalse(s1.startsWith(new SimpleString("abcdefghijklmn"))); Assert.assertFalse(s1.startsWith(new SimpleString("aardvark"))); Assert.assertFalse(s1.startsWith(new SimpleString("z"))); }