@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();
    }
  }