@Override public Map<ActiveMQDestination, Destination> getDestinationMap() { Map<ActiveMQDestination, Destination> answer = new HashMap<ActiveMQDestination, Destination>(getQueueRegion().getDestinationMap()); answer.putAll(getTopicRegion().getDestinationMap()); return answer; }
protected final Collection<Subscription> getRegionSubscriptions(ActiveMQDestination dest) { RegionBroker region_broker = (RegionBroker) brokerService.getRegionBroker(); Region region; Collection<Subscription> subs; region = null; switch (dest.getDestinationType()) { case ActiveMQDestination.QUEUE_TYPE: region = region_broker.getQueueRegion(); break; case ActiveMQDestination.TOPIC_TYPE: region = region_broker.getTopicRegion(); break; case ActiveMQDestination.TEMP_QUEUE_TYPE: region = region_broker.getTempQueueRegion(); break; case ActiveMQDestination.TEMP_TOPIC_TYPE: region = region_broker.getTempTopicRegion(); break; } if (region instanceof AbstractRegion) { subs = ((AbstractRegion) region).getSubscriptions().values(); } else { subs = null; } return subs; }
@Override public void removeSubscription(ConnectionContext context, RemoveSubscriptionInfo info) throws Exception { SubscriptionKey key = new SubscriptionKey(context.getClientId(), info.getSubscriptionName()); RegionBroker regionBroker = null; if (next instanceof RegionBroker) { regionBroker = (RegionBroker) next; } else { BrokerService service = next.getBrokerService(); regionBroker = (RegionBroker) service.getRegionBroker(); } if (regionBroker == null) { LOG.warn("Cannot locate a RegionBroker instance to pass along the removeSubscription call"); throw new IllegalStateException("No RegionBroker found."); } DurableTopicSubscription sub = ((TopicRegion) regionBroker.getTopicRegion()).getDurableSubscription(key); super.removeSubscription(context, info); if (sub == null) { LOG.warn("We cannot send an advisory message for a durable sub removal when we don't know about the durable sub"); return; } ActiveMQDestination dest = sub.getConsumerInfo().getDestination(); // Don't advise advisory topics. if (!AdvisorySupport.isAdvisoryTopic(dest)) { ActiveMQTopic topic = AdvisorySupport.getConsumerAdvisoryTopic(dest); fireConsumerAdvisory(context, dest, topic, info); } }
TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); Set<ConsumerInfo> subscriptionInfos = new HashSet<>();
TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); if (dest.isTopic()) { RegionBroker regionBroker = (RegionBroker) brokerService.getRegionBroker(); TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion();
@Override public Map<ActiveMQDestination, Destination> getDestinationMap() { Map<ActiveMQDestination, Destination> answer = new HashMap<ActiveMQDestination, Destination>(getQueueRegion().getDestinationMap()); answer.putAll(getTopicRegion().getDestinationMap()); return answer; }
@Override public Map<ActiveMQDestination, Destination> getDestinationMap() { Map<ActiveMQDestination, Destination> answer = new HashMap<ActiveMQDestination, Destination>(getQueueRegion().getDestinationMap()); answer.putAll(getTopicRegion().getDestinationMap()); return answer; }
@Override public Map<ActiveMQDestination, Destination> getDestinationMap() { Map<ActiveMQDestination, Destination> answer = new HashMap<ActiveMQDestination, Destination>(getQueueRegion().getDestinationMap()); answer.putAll(getTopicRegion().getDestinationMap()); return answer; }
private final Collection<Subscription> getRegionSubscriptions(boolean isTopic) { RegionBroker region = (RegionBroker) brokerService.getRegionBroker(); AbstractRegion abstractRegion = (AbstractRegion) (isTopic ? region.getTopicRegion() : region.getQueueRegion()); return abstractRegion.getSubscriptions().values(); }
@Override public Map<ActiveMQDestination, Destination> getDestinationMap() { Map<ActiveMQDestination, Destination> answer = getQueueRegion().getDestinationMap(); answer.putAll(getTopicRegion().getDestinationMap()); return answer; }
ConsumerInfo lookupSubscription(String subscriptionName) throws AmqpProtocolException { ConsumerInfo result = null; RegionBroker regionBroker; try { regionBroker = (RegionBroker) brokerService.getBroker().getAdaptor(RegionBroker.class); } catch (Exception e) { throw new AmqpProtocolException("Error finding subscription: " + subscriptionName + ": " + e.getMessage(), false, e); } final TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); DurableTopicSubscription subscription = topicRegion.lookupSubscription(subscriptionName, connectionInfo.getClientId()); if (subscription != null) { result = subscription.getConsumerInfo(); } return result; }
ConsumerInfo lookupSubscription(String subscriptionName) throws AmqpProtocolException { ConsumerInfo result = null; RegionBroker regionBroker; try { regionBroker = (RegionBroker) brokerService.getBroker().getAdaptor(RegionBroker.class); } catch (Exception e) { throw new AmqpProtocolException("Error finding subscription: " + subscriptionName + ": " + e.getMessage(), false, e); } final TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); DurableTopicSubscription subscription = topicRegion.lookupSubscription(subscriptionName, connectionInfo.getClientId()); if (subscription != null) { result = subscription.getConsumerInfo(); } return result; }
protected final Collection<Subscription> getRegionSubscriptions(ActiveMQDestination dest) { RegionBroker region_broker = (RegionBroker) brokerService.getRegionBroker(); Region region; Collection<Subscription> subs; region = null; switch (dest.getDestinationType()) { case ActiveMQDestination.QUEUE_TYPE: region = region_broker.getQueueRegion(); break; case ActiveMQDestination.TOPIC_TYPE: region = region_broker.getTopicRegion(); break; case ActiveMQDestination.TEMP_QUEUE_TYPE: region = region_broker.getTempQueueRegion(); break; case ActiveMQDestination.TEMP_TOPIC_TYPE: region = region_broker.getTempTopicRegion(); break; } if (region instanceof AbstractRegion) { subs = ((AbstractRegion) region).getSubscriptions().values(); } else { subs = null; } return subs; }
protected List<SubscriptionInfo> lookupSubscription(String clientId) throws MQTTProtocolException { List<SubscriptionInfo> result = new ArrayList<SubscriptionInfo>(); RegionBroker regionBroker; try { regionBroker = (RegionBroker) brokerService.getBroker().getAdaptor(RegionBroker.class); } catch (Exception e) { throw new MQTTProtocolException("Error recovering durable subscriptions: " + e.getMessage(), false, e); } final TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); List<DurableTopicSubscription> subscriptions = topicRegion.lookupSubscriptions(clientId); if (subscriptions != null) { for (DurableTopicSubscription subscription : subscriptions) { LOG.debug("Recovered durable sub:{} on connect", subscription); SubscriptionInfo info = new SubscriptionInfo(); info.setDestination(subscription.getActiveMQDestination()); info.setSubcriptionName(subscription.getSubscriptionKey().getSubscriptionName()); info.setClientId(clientId); result.add(info); } } return result; } }
protected List<SubscriptionInfo> lookupSubscription(String clientId) throws MQTTProtocolException { List<SubscriptionInfo> result = new ArrayList<SubscriptionInfo>(); RegionBroker regionBroker; try { regionBroker = (RegionBroker) brokerService.getBroker().getAdaptor(RegionBroker.class); } catch (Exception e) { throw new MQTTProtocolException("Error recovering durable subscriptions: " + e.getMessage(), false, e); } final TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); List<DurableTopicSubscription> subscriptions = topicRegion.lookupSubscriptions(clientId); if (subscriptions != null) { for (DurableTopicSubscription subscription : subscriptions) { LOG.debug("Recovered durable sub:{} on connect", subscription); SubscriptionInfo info = new SubscriptionInfo(); info.setDestination(subscription.getActiveMQDestination()); info.setSubcriptionName(subscription.getSubscriptionKey().getSubscriptionName()); info.setClientId(clientId); result.add(info); } } return result; } }
protected final Collection<Subscription> getRegionSubscriptions(ActiveMQDestination dest) { RegionBroker region_broker = (RegionBroker) brokerService.getRegionBroker(); Region region; Collection<Subscription> subs; region = null; switch (dest.getDestinationType()) { case ActiveMQDestination.QUEUE_TYPE: region = region_broker.getQueueRegion(); break; case ActiveMQDestination.TOPIC_TYPE: region = region_broker.getTopicRegion(); break; case ActiveMQDestination.TEMP_QUEUE_TYPE: region = region_broker.getTempQueueRegion(); break; case ActiveMQDestination.TEMP_TOPIC_TYPE: region = region_broker.getTempTopicRegion(); break; } if (region instanceof AbstractRegion) { subs = ((AbstractRegion) region).getSubscriptions().values(); } else { subs = null; } return subs; }
protected List<SubscriptionInfo> lookupSubscription(String clientId) throws MQTTProtocolException { List<SubscriptionInfo> result = new ArrayList<SubscriptionInfo>(); RegionBroker regionBroker; try { regionBroker = (RegionBroker) brokerService.getBroker().getAdaptor(RegionBroker.class); } catch (Exception e) { throw new MQTTProtocolException("Error recovering durable subscriptions: " + e.getMessage(), false, e); } final TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion(); List<DurableTopicSubscription> subscriptions = topicRegion.lookupSubscriptions(clientId); if (subscriptions != null) { for (DurableTopicSubscription subscription : subscriptions) { LOG.debug("Recovered durable sub:{} on connect", subscription); SubscriptionInfo info = new SubscriptionInfo(); info.setDestination(subscription.getActiveMQDestination()); info.setSubcriptionName(subscription.getSubscriptionKey().getSubscriptionName()); info.setClientId(clientId); result.add(info); } } return result; } }
protected final Collection<Subscription> getRegionSubscriptions(ActiveMQDestination dest) { RegionBroker region_broker = (RegionBroker) brokerService.getRegionBroker(); Region region; Collection<Subscription> subs; region = null; switch (dest.getDestinationType()) { case ActiveMQDestination.QUEUE_TYPE: region = region_broker.getQueueRegion(); break; case ActiveMQDestination.TOPIC_TYPE: region = region_broker.getTopicRegion(); break; case ActiveMQDestination.TEMP_QUEUE_TYPE: region = region_broker.getTempQueueRegion(); break; case ActiveMQDestination.TEMP_TOPIC_TYPE: region = region_broker.getTempTopicRegion(); break; } if (region instanceof AbstractRegion) { subs = ((AbstractRegion) region).getSubscriptions().values(); } else { subs = null; } return subs; }
@Override public void removeSubscription(ConnectionContext context, RemoveSubscriptionInfo info) throws Exception { SubscriptionKey key = new SubscriptionKey(context.getClientId(), info.getSubscriptionName()); RegionBroker regionBroker = null; if (next instanceof RegionBroker) { regionBroker = (RegionBroker) next; } else { BrokerService service = next.getBrokerService(); regionBroker = (RegionBroker) service.getRegionBroker(); } if (regionBroker == null) { LOG.warn("Cannot locate a RegionBroker instance to pass along the removeSubscription call"); throw new IllegalStateException("No RegionBroker found."); } DurableTopicSubscription sub = ((TopicRegion) regionBroker.getTopicRegion()).getDurableSubscription(key); super.removeSubscription(context, info); if (sub == null) { LOG.warn("We cannot send an advisory message for a durable sub removal when we don't know about the durable sub"); return; } ActiveMQDestination dest = sub.getConsumerInfo().getDestination(); // Don't advise advisory topics. if (!AdvisorySupport.isAdvisoryTopic(dest)) { ActiveMQTopic topic = AdvisorySupport.getConsumerAdvisoryTopic(dest); fireConsumerAdvisory(context, dest, topic, info); } }
@Override public void removeSubscription(ConnectionContext context, RemoveSubscriptionInfo info) throws Exception { SubscriptionKey key = new SubscriptionKey(context.getClientId(), info.getSubscriptionName()); RegionBroker regionBroker = null; if (next instanceof RegionBroker) { regionBroker = (RegionBroker) next; } else { BrokerService service = next.getBrokerService(); regionBroker = (RegionBroker) service.getRegionBroker(); } if (regionBroker == null) { LOG.warn("Cannot locate a RegionBroker instance to pass along the removeSubscription call"); throw new IllegalStateException("No RegionBroker found."); } DurableTopicSubscription sub = ((TopicRegion) regionBroker.getTopicRegion()).getDurableSubscription(key); super.removeSubscription(context, info); if (sub == null) { LOG.warn("We cannot send an advisory message for a durable sub removal when we don't know about the durable sub"); return; } ActiveMQDestination dest = sub.getConsumerInfo().getDestination(); // Don't advise advisory topics. if (!AdvisorySupport.isAdvisoryTopic(dest)) { ActiveMQTopic topic = AdvisorySupport.getConsumerAdvisoryTopic(dest); fireConsumerAdvisory(context, dest, topic, info); } }