/** * Return true if this subscription matches the given destination * * @param destination the destination to compare against * @return true if this subscription matches the given destination */ public boolean matchesDestination(ActiveMQDestination destination) { ActiveMQDestination subscriptionDestination = subscription.getActiveMQDestination(); DestinationFilter filter = DestinationFilter.parseFilter(subscriptionDestination); return filter.matches(destination); }
public boolean isWildcard() { for (DestinationFilter filter : filters) { if (filter.isWildcard()) { return true; } } return false; }
public boolean matches(ActiveMQDestination destination) { for (int i = 0; i < filters.length; i++) { if (filters[i].matches(destination)) { return true; } } return false; }
public CompositeDestinationFilter(ActiveMQDestination destination) { ActiveMQDestination[] destinations = destination.getCompositeDestinations(); filters = new DestinationFilter[destinations.length]; for (int i = 0; i < destinations.length; i++) { ActiveMQDestination childDestination = destinations[i]; filters[i] = DestinationFilter.parseFilter(childDestination); } }
@Override public boolean matches(ActiveMQDestination destination) { return destinationFilter.matches(destination); }
public AbstractSubscription(Broker broker,ConnectionContext context, ConsumerInfo info) throws InvalidSelectorException { this.broker = broker; this.context = context; this.info = info; this.destinationFilter = DestinationFilter.parseFilter(info.getDestination()); this.selectorExpression = parseSelector(info); this.lastAckTime = System.currentTimeMillis(); }
@Override public boolean matches(VirtualDestination virtualDestination, ActiveMQDestination activeMQDest) { if (virtualDestination instanceof CompositeDestination) { DestinationFilter filter = DestinationFilter.parseFilter(virtualDestination.getMappedDestinations()); if (filter.matches(activeMQDest)) { return true; } } else if (virtualDestination instanceof VirtualTopic) { DestinationFilter filter = DestinationFilter.parseFilter(new ActiveMQQueue(((VirtualTopic) virtualDestination).getPrefix() + DestinationFilter.ANY_DESCENDENT)); if (filter.matches(activeMQDest)) { return true; } } return false; }
public Object evaluate(MessageEvaluationContext message) throws JMSException { return matches(message) ? Boolean.TRUE : Boolean.FALSE; }
private DestinationFilter getVirtualTopicConsumerDestinationFilter() { // created at startup, so no sync needed if (virtualConsumerDestinationFilter == null) { Set <ActiveMQQueue> consumerDestinations = new HashSet<>(); if (destinationInterceptors != null) { for (DestinationInterceptor interceptor : destinationInterceptors) { if (interceptor instanceof VirtualDestinationInterceptor) { VirtualDestinationInterceptor virtualDestinationInterceptor = (VirtualDestinationInterceptor) interceptor; for (VirtualDestination virtualDestination: virtualDestinationInterceptor.getVirtualDestinations()) { if (virtualDestination instanceof VirtualTopic) { consumerDestinations.add(new ActiveMQQueue(((VirtualTopic) virtualDestination).getPrefix() + DestinationFilter.ANY_DESCENDENT)); } if (isUseVirtualDestSubs()) { try { broker.virtualDestinationAdded(getAdminConnectionContext(), virtualDestination); LOG.debug("Adding virtual destination: {}", virtualDestination); } catch (Exception e) { LOG.warn("Could not fire virtual destination consumer advisory", e); } } } } } } ActiveMQQueue filter = new ActiveMQQueue(); filter.setCompositeDestinations(consumerDestinations.toArray(new ActiveMQDestination[]{})); virtualConsumerDestinationFilter = DestinationFilter.parseFilter(filter); } return virtualConsumerDestinationFilter; }
@Override public boolean isWildcard() { return destinationFilter.isWildcard(); }
public static ActiveMQDestination findMatchingDestination(ActiveMQDestination[] dests, ActiveMQDestination destination) { if (dests != null && dests.length > 0) { for (ActiveMQDestination dest : dests) { DestinationFilter inclusionFilter = DestinationFilter.parseFilter(dest); if (dest != null && inclusionFilter.matches(destination) && dest.getDestinationType() == destination.getDestinationType()) { return dest; } } } return null; }
public boolean shouldRecordVirtualDestination(ActiveMQDestination destination) { return isUseVirtualTopics() && destination.isQueue() && getVirtualTopicConsumerDestinationFilter().matches(destination); }
DestinationFilter.parseFilter(info.getDestination());
public boolean isWildcard() { for (DestinationFilter filter : filters) { if (filter.isWildcard()) { return true; } } return false; }
public static boolean matchesDestinations(ActiveMQDestination[] dests, final ActiveMQDestination destination) { if (dests != null && dests.length > 0) { for (ActiveMQDestination dest : dests) { DestinationFilter inclusionFilter = DestinationFilter.parseFilter(dest); if (dest != null && inclusionFilter.matches(destination) && dest.getDestinationType() == destination.getDestinationType()) { return true; } } } return false; }
protected void startVirtualConsumerDestinations() throws Exception { checkStartException(); ConnectionContext adminConnectionContext = getAdminConnectionContext(); Set<ActiveMQDestination> destinations = destinationFactory.getDestinations(); DestinationFilter filter = getVirtualTopicConsumerDestinationFilter(); if (!destinations.isEmpty()) { for (ActiveMQDestination destination : destinations) { if (filter.matches(destination) == true) { broker.addDestination(adminConnectionContext, destination, false); } } } }
public void setVirtualTopicConsumerWildcards(String virtualTopicConsumerWildcards) { for (String filter : virtualTopicConsumerWildcards.split(",")) { String[] wildcardLimitPair = filter.split(";"); vtConsumerDestinationMatchers.put(DestinationFilter.parseFilter(new ActiveMQQueue(wildcardLimitPair[0])), Integer.valueOf(wildcardLimitPair[1])); } }
public boolean isWildcard() { for (DestinationFilter filter : filters) { if (filter.isWildcard()) { return true; } } return false; }
protected boolean doesConsumerExist(ActiveMQDestination dest) { DestinationFilter filter = DestinationFilter.parseFilter(dest); for (DemandSubscription ds : subscriptionMapByLocalId.values()) { if (filter.matches(ds.getLocalInfo().getDestination())) { return true; } } return false; } }
public boolean matches(MessageEvaluationContext message) throws JMSException { try { if (message.isDropped()) { return false; } return matches(message.getMessage().getDestination()); } catch (IOException e) { throw JMSExceptionSupport.create(e); } }