@Override public void dropAllSubscriptions() throws Exception { ActiveMQServerControl serverControl = (ActiveMQServerControl) managementService.getResource(ResourceNames.CORE_SERVER); String[] queues = addressControl.getQueueNames(); for (String queue : queues) { // Drop all subscription shouldn't delete the dummy queue used to identify if the topic exists // on the core queues. // we will just ignore this queue if (!queue.equals(managedTopic.getAddress())) { serverControl.destroyQueue(queue); } } }
@Override public int removeMessages(final String filterStr) throws Exception { String filter = JMSTopicControlImpl.createFilterFromJMSSelector(filterStr); int count = 0; String[] queues = addressControl.getQueueNames(); for (String queue : queues) { QueueControl coreQueueControl = (QueueControl) managementService.getResource(ResourceNames.CORE_QUEUE + queue); if (coreQueueControl != null) { count += coreQueueControl.removeMessages(filter); } } return count; }
private List<QueueControl> getQueues(final DurabilityType durability) { try { List<QueueControl> matchingQueues = new ArrayList<>(); String[] queues = addressControl.getQueueNames(); for (String queue : queues) { QueueControl coreQueueControl = (QueueControl) managementService.getResource(ResourceNames.CORE_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(); } }