public void testCreateAndDestroyQueueWithEmptyStringForFilter() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); String filter = ""; boolean durable = true; HornetQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name)); serverControl.createQueue(address.toString(), name.toString(), filter, durable); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, mbeanServer); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(name.toString(), queueControl.getName()); Assert.assertNull(queueControl.getFilter()); Assert.assertEquals(durable, queueControl.isDurable()); Assert.assertEquals(false, queueControl.isTemporary()); serverControl.destroyQueue(name.toString()); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name)); }
protected AddressControl createManagementControl(final SimpleString address) throws Exception { return ManagementControlHelper.createAddressControl(address, mbeanServer); }
protected BridgeControl createBridgeControl(final String name, final MBeanServer mbeanServer) throws Exception { return ManagementControlHelper.createBridgeControl(name, mbeanServer); }
protected HornetQServerControl createManagementControl() throws Exception { return ManagementControlHelper.createHornetQServerControl(mbeanServer); }
public void testCreateAndDestroyBridge() throws Exception { String name = RandomUtil.randomString(); String sourceAddress = RandomUtil.randomString(); String sourceQueue = RandomUtil.randomString(); String targetAddress = RandomUtil.randomString(); String targetQueue = RandomUtil.randomString(); HornetQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(name)); assertEquals(0, serverControl.getBridgeNames().length); ServerLocator locator = HornetQClient.createServerLocatorWithoutHA( new TransportConfiguration(UnitTestCase.INVM_CONNECTOR_FACTORY)); ClientSessionFactory csf = locator.createSessionFactory(); ClientSession session = csf.createSession(); session.createQueue(sourceAddress, sourceQueue); session.createQueue(targetAddress, targetQueue); serverControl.createBridge( name, sourceQueue, targetAddress, null, // forwardingAddress null, // filterString HornetQClient.DEFAULT_RETRY_INTERVAL, HornetQClient.DEFAULT_RETRY_INTERVAL_MULTIPLIER, HornetQClient.DEFAULT_RECONNECT_ATTEMPTS, false, // duplicateDetection 1, // confirmationWindowSize HornetQClient.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD, connectorConfig.getName(), // liveConnector false, false, null, null); checkResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(name)); String[] bridgeNames = serverControl.getBridgeNames(); assertEquals(1, bridgeNames.length); assertEquals(name, bridgeNames[0]); BridgeControl bridgeControl = ManagementControlHelper.createBridgeControl(name, mbeanServer); assertEquals(name, bridgeControl.getName()); assertTrue(bridgeControl.isStarted()); // check that a message sent to the sourceAddress is put in the tagetQueue ClientProducer producer = session.createProducer(sourceAddress); ClientMessage message = session.createMessage(false); String text = RandomUtil.randomString(); message.putStringProperty("prop", text); producer.send(message); session.start(); ClientConsumer targetConsumer = session.createConsumer(targetQueue); message = targetConsumer.receive(5000); assertNotNull(message); assertEquals(text, message.getStringProperty("prop")); ClientConsumer sourceConsumer = session.createConsumer(sourceQueue); assertNull(sourceConsumer.receiveImmediate()); serverControl.destroyBridge(name); checkNoResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(name)); assertEquals(0, serverControl.getBridgeNames().length); // check that a message is no longer diverted message = session.createMessage(false); String text2 = RandomUtil.randomString(); message.putStringProperty("prop", text2); producer.send(message); assertNull(targetConsumer.receiveImmediate()); message = sourceConsumer.receive(5000); assertNotNull(message); assertEquals(text2, message.getStringProperty("prop")); sourceConsumer.close(); targetConsumer.close(); session.deleteQueue(sourceQueue); session.deleteQueue(targetQueue); session.close(); locator.close(); }
public void testCreateAndDestroyDivert() throws Exception { String address = RandomUtil.randomString(); String name = RandomUtil.randomString(); String routingName = RandomUtil.randomString(); String forwardingAddress = RandomUtil.randomString(); HornetQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getDivertObjectName(name)); assertEquals(0, serverControl.getDivertNames().length); serverControl.createDivert( name.toString(), routingName, address, forwardingAddress, true, null, null); checkResource(ObjectNameBuilder.DEFAULT.getDivertObjectName(name)); DivertControl divertControl = ManagementControlHelper.createDivertControl(name.toString(), mbeanServer); assertEquals(name.toString(), divertControl.getUniqueName()); assertEquals(address, divertControl.getAddress()); assertEquals(forwardingAddress, divertControl.getForwardingAddress()); assertEquals(routingName, divertControl.getRoutingName()); assertTrue(divertControl.isExclusive()); assertNull(divertControl.getFilter()); assertNull(divertControl.getTransformerClassName()); String[] divertNames = serverControl.getDivertNames(); assertEquals(1, divertNames.length); assertEquals(name, divertNames[0]); // check that a message sent to the address is diverted exclusively ServerLocator locator = HornetQClient.createServerLocatorWithoutHA( new TransportConfiguration(UnitTestCase.INVM_CONNECTOR_FACTORY)); ClientSessionFactory csf = locator.createSessionFactory(); ClientSession session = csf.createSession(); String divertQueue = RandomUtil.randomString(); String queue = RandomUtil.randomString(); session.createQueue(forwardingAddress, divertQueue); session.createQueue(address, queue); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(false); String text = RandomUtil.randomString(); message.putStringProperty("prop", text); producer.send(message); ClientConsumer consumer = session.createConsumer(queue); ClientConsumer divertedConsumer = session.createConsumer(divertQueue); session.start(); assertNull(consumer.receiveImmediate()); message = divertedConsumer.receive(5000); assertNotNull(message); assertEquals(text, message.getStringProperty("prop")); serverControl.destroyDivert(name.toString()); checkNoResource(ObjectNameBuilder.DEFAULT.getDivertObjectName(name)); assertEquals(0, serverControl.getDivertNames().length); // check that a message is no longer diverted message = session.createMessage(false); String text2 = RandomUtil.randomString(); message.putStringProperty("prop", text2); producer.send(message); assertNull(divertedConsumer.receiveImmediate()); message = consumer.receive(5000); assertNotNull(message); assertEquals(text2, message.getStringProperty("prop")); consumer.close(); divertedConsumer.close(); session.deleteQueue(queue); session.deleteQueue(divertQueue); session.close(); locator.close(); }