private Set<String> getCoreQueueNames() { final ManagementService managementService = getManagementService(); if (managementService == null) { return Collections.emptySet(); } else { Set<String> result = new HashSet<String>(); for (Object obj : managementService.getResources(QueueControl.class)) { QueueControl qc = QueueControl.class.cast(obj); result.add(qc.getName()); } return result; } }
private Set<String> getCoreQueueNames() { final ManagementService managementService = getManagementService(); if (managementService == null) { return Collections.emptySet(); } else { Set<String> result = new HashSet<String>(); for (Object obj : managementService.getResources(QueueControl.class)) { QueueControl qc = QueueControl.class.cast(obj); result.add(qc.getName()); } return result; } }
@Override public String[] getQueueNames(String routingType) { checkStarted(); clearIO(); try { Object[] queueControls = server.getManagementService().getResources(QueueControl.class); List<String> names = new ArrayList<>(); for (int i = 0; i < queueControls.length; i++) { QueueControl queueControl = (QueueControl) queueControls[i]; if (routingType != null && queueControl.getRoutingType().equals(routingType.toUpperCase())) { names.add(queueControl.getName()); } else if (routingType == null) { names.add(queueControl.getName()); } } String[] result = new String[names.size()]; return names.toArray(result); } finally { blockOnIO(); } }
public static List<QueueControl> getQueues(final DurabilityType durability, AddressControl addressControl, ManagementService managementService) { try { List<QueueControl> matchingQueues = new ArrayList<>(); String[] queues = addressControl.getQueueNames(); for (String queue : queues) { QueueControl coreQueueControl = (QueueControl) managementService.getResource(ResourceNames.QUEUE + queue); // Ignore the "special" subscription if (coreQueueControl != null && !coreQueueControl.getName().equals(addressControl.getAddress())) { if (durability == DurabilityType.ALL || durability == DurabilityType.DURABLE && coreQueueControl.isDurable() || durability == DurabilityType.NON_DURABLE && !coreQueueControl.isDurable()) { matchingQueues.add(coreQueueControl); } } } return matchingQueues; } catch (Exception e) { return Collections.emptyList(); } }
public static List<QueueControl> getQueues(final DurabilityType durability, AddressControl addressControl, ManagementService managementService) { try { List<QueueControl> matchingQueues = new ArrayList<>(); String[] queues = addressControl.getQueueNames(); for (String queue : queues) { QueueControl coreQueueControl = (QueueControl) managementService.getResource(ResourceNames.QUEUE + queue); // Ignore the "special" subscription if (coreQueueControl != null && !coreQueueControl.getName().equals(addressControl.getAddress())) { if (durability == DurabilityType.ALL || durability == DurabilityType.DURABLE && coreQueueControl.isDurable() || durability == DurabilityType.NON_DURABLE && !coreQueueControl.isDurable()) { matchingQueues.add(coreQueueControl); } } } return matchingQueues; } catch (Exception e) { return Collections.emptyList(); } }
@Override public JsonObjectBuilder toJson(QueueControl queue) { Queue q = server.locateQueue(new SimpleString(queue.getName())); JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(queue.getID())) .add("name", toString(queue.getName())).add("address", toString(queue.getAddress())) .add("filter", toString(queue.getFilter())).add("rate", toString(q.getRate())) .add("durable", toString(queue.isDurable())).add("paused", toString(q.isPaused())) .add("temporary", toString(queue.isTemporary())) .add("purgeOnNoConsumers", toString(queue.isPurgeOnNoConsumers())) .add("consumerCount", toString(queue.getConsumerCount())) .add("maxConsumers", toString(queue.getMaxConsumers())) .add("autoCreated", toString(q.isAutoCreated())) .add("user", toString(q.getUser())) .add("routingType", toString(queue.getRoutingType())) .add("messagesAdded", toString(queue.getMessagesAdded())) .add("messageCount", toString(queue.getMessageCount())) .add("messagesAcked", toString(queue.getMessagesAcknowledged())) .add("deliveringCount", toString(queue.getDeliveringCount())) .add("messagesKilled", toString(queue.getMessagesKilled())) .add("deliverDeliver", toString(q.isDirectDeliver())) .add("exclusive", toString(queue.isExclusive())) .add("lastValue", toString(queue.isLastValue())); return obj; }
@Test public void testGetNullFilter() 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(queue.toString(), queueControl.getName()); Assert.assertNull(queueControl.getFilter()); session.deleteQueue(queue); }
return matches(queue.getID()); case NAME: return matches(queue.getName()); case CONSUMER_ID: Queue q = server.locateQueue(new SimpleString(queue.getName())); for (Consumer consumer : q.getConsumers()) { if (matches(consumer.sequentialID())) return matches(queue.getRoutingType()); case AUTO_CREATED: return matches(server.locateQueue(new SimpleString(queue.getName())).isAutoCreated()); case DURABLE: return matches(queue.isDurable());
@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 testCreateQueueWithNullAddress() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = address; ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createQueue(null, name.toString(), "ANYCAST"); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(name, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, mbeanServer); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(name.toString(), queueControl.getName()); Assert.assertNull(queueControl.getFilter()); Assert.assertEquals(true, queueControl.isDurable()); Assert.assertEquals(false, queueControl.isTemporary()); serverControl.destroyQueue(name.toString()); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); }
@Test public void testGetResources() throws Exception { Configuration config = createBasicConfig().setJMXManagementEnabled(false); ManagementServiceImpl managementService = new ManagementServiceImpl(null, config); managementService.setStorageManager(new NullStorageManager()); SimpleString address = RandomUtil.randomSimpleString(); managementService.registerAddress(new AddressInfo(address)); Queue queue = new FakeQueue(RandomUtil.randomSimpleString()); managementService.registerQueue(queue, RandomUtil.randomSimpleString(), new FakeStorageManager()); Object[] addresses = managementService.getResources(AddressControl.class); Assert.assertEquals(1, addresses.length); Assert.assertTrue(addresses[0] instanceof AddressControl); AddressControl addressControl = (AddressControl) addresses[0]; Assert.assertEquals(address.toString(), addressControl.getAddress()); Object[] queues = managementService.getResources(QueueControl.class); Assert.assertEquals(1, queues.length); Assert.assertTrue(queues[0] instanceof QueueControl); QueueControl queueControl = (QueueControl) queues[0]; Assert.assertEquals(queue.getName().toString(), queueControl.getName()); }
@Test public void testCreateAndDestroyQueue() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createAddress(address.toString(), "ANYCAST"); serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), null, true, -1, false, false); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, mbeanServer); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(name.toString(), queueControl.getName()); Assert.assertNull(queueControl.getFilter()); Assert.assertEquals(true, queueControl.isDurable()); Assert.assertEquals(false, queueControl.isTemporary()); serverControl.destroyQueue(name.toString()); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); }
@Test public void testCreateAndDestroyQueue_3() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); boolean durable = true; ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createAddress(address.toString(), "ANYCAST"); serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), null, durable, -1, false, false); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, 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, RoutingType.ANYCAST)); }
@Test public void testCreateAndDestroyQueueWithNullFilter() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); String filter = null; boolean durable = true; ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createAddress(address.toString(), "ANYCAST"); serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), filter, durable, -1, false, false); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, 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, RoutingType.ANYCAST)); }
@Test public void testCreateAndDestroyQueueWithEmptyStringForFilter() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); String filter = ""; boolean durable = true; ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createAddress(address.toString(), "ANYCAST"); serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), filter, durable, -1, false, false); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, 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, RoutingType.ANYCAST)); }
@Test public void testCreateAndDestroyQueue_2() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); String filter = "color = 'green'"; boolean durable = true; ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createAddress(address.toString(), "ANYCAST"); serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), filter, durable, -1, false, false); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, mbeanServer); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(name.toString(), queueControl.getName()); Assert.assertEquals(filter, queueControl.getFilter()); Assert.assertEquals(durable, queueControl.isDurable()); Assert.assertEquals(false, queueControl.isTemporary()); serverControl.destroyQueue(name.toString()); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); }
@Test public void testCreateAndDestroyQueue_4() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString name = RandomUtil.randomSimpleString(); boolean durable = RandomUtil.randomBoolean(); boolean purgeOnNoConsumers = RandomUtil.randomBoolean(); boolean autoCreateAddress = true; int maxConsumers = RandomUtil.randomInt(); ActiveMQServerControl serverControl = createManagementControl(); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); serverControl.createQueue(address.toString(), RoutingType.ANYCAST.toString(), name.toString(), null, durable, maxConsumers, purgeOnNoConsumers, autoCreateAddress); checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); QueueControl queueControl = ManagementControlHelper.createQueueControl(address, name, RoutingType.ANYCAST, mbeanServer); Assert.assertEquals(address.toString(), queueControl.getAddress()); Assert.assertEquals(name.toString(), queueControl.getName()); Assert.assertNull(queueControl.getFilter()); Assert.assertEquals(durable, queueControl.isDurable()); Assert.assertEquals(purgeOnNoConsumers, queueControl.isPurgeOnNoConsumers()); Assert.assertEquals(maxConsumers, queueControl.getMaxConsumers()); Assert.assertEquals(false, queueControl.isTemporary()); checkResource(ObjectNameBuilder.DEFAULT.getAddressObjectName(address)); AddressControl addressControl = ManagementControlHelper.createAddressControl(address, mbeanServer); Assert.assertEquals(address.toString(), addressControl.getAddress()); serverControl.destroyQueue(name.toString(), true, true); checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST)); checkNoResource(ObjectNameBuilder.DEFAULT.getAddressObjectName(address)); }