public List<Topic> getAllTopicsFromNamespaceBundle(String namespace, String bundle) { ConcurrentOpenHashMap<String, ConcurrentOpenHashMap<String, Topic>> map1 = multiLayerTopicsMap.get(namespace); if (map1 == null) { return Collections.emptyList(); } ConcurrentOpenHashMap<String, Topic> map2 = map1.get(bundle); if (map2 == null) { return Collections.emptyList(); } return map2.values(); }
public int getNumberOfConsumers() { int count = 0; for (PersistentSubscription subscription : subscriptions.values()) { count += subscription.getConsumers().size(); } return count; }
public int getNumberOfConsumers() { int count = 0; for (NonPersistentSubscription subscription : subscriptions.values()) { count += subscription.getConsumers().size(); } return count; }
public List<String> getListOfNonPersistentTopics(NamespaceName namespaceName) throws Exception { List<String> topics = Lists.newArrayList(); ClusterData peerClusterData; try { peerClusterData = PulsarWebResource.checkLocalOrGetPeerReplicationCluster(pulsar, namespaceName) .get(cacheTimeOutInSec, SECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { throw new RuntimeException("Failed to contact peer replication cluster.", e); } // if peer-cluster-data is present it means namespace is owned by that peer-cluster and request should be // redirect to the peer-cluster if (peerClusterData != null) { return getNonPersistentTopicsFromPeerCluster(peerClusterData, namespaceName); } // Non-persistent topics don't have managed ledgers so we have to retrieve them from local cache. synchronized (pulsar.getBrokerService().getMultiLayerTopicMap()) { if (pulsar.getBrokerService().getMultiLayerTopicMap().containsKey(namespaceName.toString())) { pulsar.getBrokerService().getMultiLayerTopicMap().get(namespaceName.toString()).values() .forEach(bundle -> { bundle.forEach((topicName, topic) -> { if (topic instanceof NonPersistentTopic && ((NonPersistentTopic)topic).isActive()) { topics.add(topicName); } }); }); } } topics.sort(null); return topics; }