public boolean isDurable() { return coreQueueControl.isDurable(); }
private List<QueueControl> getQueues(final DurabilityType durability) { try { List<QueueControl> matchingQueues = new ArrayList<QueueControl>(); 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(); } }
private Object[] listSubscribersInfos(final DurabilityType durability) { List<QueueControl> queues = getQueues(durability); List<Object[]> subInfos = new ArrayList<Object[]>(queues.size()); for (QueueControl queue : queues) { String clientID = null; String subName = null; if (queue.isDurable()) { Pair<String, String> pair = HornetQDestination.decomposeQueueNameForDurableSubscription(queue.getName() .toString()); clientID = pair.getA(); subName = pair.getB(); } String filter = queue.getFilter() != null ? queue.getFilter() : null; Object[] subscriptionInfo = new Object[6]; subscriptionInfo[0] = queue.getName(); subscriptionInfo[1] = clientID; subscriptionInfo[2] = subName; subscriptionInfo[3] = queue.isDurable(); subscriptionInfo[4] = queue.getMessageCount(); subscriptionInfo[5] = filter; subInfos.add(subscriptionInfo); } return subInfos.toArray(new Object[subInfos.size()]); }
public synchronized void registerQueue(final HornetQQueue queue, final Queue serverQueue) throws Exception { QueueControl coreQueueControl = (QueueControl)managementService.getResource(ResourceNames.CORE_QUEUE + queue.getAddress()); MessageCounterManager messageCounterManager = managementService.getMessageCounterManager(); MessageCounter counter = new MessageCounter(queue.getName(), null, serverQueue, false, coreQueueControl.isDurable(), messageCounterManager.getMaxDayCount()); messageCounterManager.registerMessageCounter(queue.getName(), counter); ObjectName objectName = managementService.getObjectNameBuilder().getJMSQueueObjectName(queue.getQueueName()); JMSQueueControlImpl control = new JMSQueueControlImpl(queue, coreQueueControl, jmsServerManager, counter); managementService.registerInJMX(objectName, control); managementService.registerInRegistry(ResourceNames.JMS_QUEUE + queue.getQueueName(), control); }