/** * Create the default destination interceptor */ protected DestinationInterceptor[] createDefaultDestinationInterceptor() { List<DestinationInterceptor> answer = new ArrayList<>(); if (isUseVirtualTopics()) { VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); VirtualTopic virtualTopic = new VirtualTopic(); virtualTopic.setName("VirtualTopic.>"); VirtualDestination[] virtualDestinations = { virtualTopic }; interceptor.setVirtualDestinations(virtualDestinations); answer.add(interceptor); } if (isUseMirroredQueues()) { MirroredQueue interceptor = new MirroredQueue(); answer.add(interceptor); } DestinationInterceptor[] array = new DestinationInterceptor[answer.size()]; answer.toArray(array); return array; }
@Override public Destination intercept(Destination destination) { final ActiveMQDestination activeMQDestination = destination.getActiveMQDestination(); Set matchingDestinations = destinationMap.get(activeMQDestination); List<Destination> destinations = new ArrayList<Destination>(); for (Iterator iter = matchingDestinations.iterator(); iter.hasNext();) { VirtualDestination virtualDestination = (VirtualDestination) iter.next(); Destination newDestination = virtualDestination.intercept(destination); destinations.add(newDestination); } if (!destinations.isEmpty()) { if (destinations.size() == 1) { return destinations.get(0); } else { // should rarely be used but here just in case return createCompositeDestination(destination, destinations); } } // check if the destination instead matches any mapped destinations Set mappedDestinations = mappedDestinationMap.get(activeMQDestination); if (!mappedDestinations.isEmpty()) { // create a mapped destination interceptor VirtualDestination virtualDestination = (VirtualDestination) mappedDestinations.toArray(new VirtualDestination[mappedDestinations.size()])[0]; return virtualDestination.interceptMappedDestination(destination); } return destination; }
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; }
Collections.addAll(existingVirtualDests, virtualDestinationInterceptor.getVirtualDestinations()); .setVirtualDestinations(getVirtualDestinations()); plugin.info("applied updates to: " + virtualDestinationInterceptor); VirtualDestinationInterceptor virtualDestinationInterceptor = new VirtualDestinationInterceptor(); virtualDestinationInterceptor.setVirtualDestinations(getVirtualDestinations());
/** * Create the default destination interceptor */ protected DestinationInterceptor[] createDefaultDestinationInterceptor() { List<DestinationInterceptor> answer = new ArrayList<>(); if (isUseVirtualTopics()) { VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); VirtualTopic virtualTopic = new VirtualTopic(); virtualTopic.setName("VirtualTopic.>"); VirtualDestination[] virtualDestinations = { virtualTopic }; interceptor.setVirtualDestinations(virtualDestinations); answer.add(interceptor); } if (isUseMirroredQueues()) { MirroredQueue interceptor = new MirroredQueue(); answer.add(interceptor); } DestinationInterceptor[] array = new DestinationInterceptor[answer.size()]; answer.toArray(array); return array; }
public synchronized Destination intercept(Destination destination) { Set virtualDestinations = destinationMap.get(destination.getActiveMQDestination()); List<Destination> destinations = new ArrayList<Destination>(); for (Iterator iter = virtualDestinations.iterator(); iter.hasNext();) { VirtualDestination virtualDestination = (VirtualDestination)iter.next(); Destination newDestination = virtualDestination.intercept(destination); destinations.add(newDestination); } if (!destinations.isEmpty()) { if (destinations.size() == 1) { return destinations.get(0); } else { // should rarely be used but here just in case return createCompositeDestination(destination, destinations); } } return destination; }
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; }
/** * Create the default destination interceptor */ protected DestinationInterceptor[] createDefaultDestinationInterceptor() { List<DestinationInterceptor> answer = new ArrayList<>(); if (isUseVirtualTopics()) { VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); VirtualTopic virtualTopic = new VirtualTopic(); virtualTopic.setName("VirtualTopic.>"); VirtualDestination[] virtualDestinations = { virtualTopic }; interceptor.setVirtualDestinations(virtualDestinations); answer.add(interceptor); } if (isUseMirroredQueues()) { MirroredQueue interceptor = new MirroredQueue(); answer.add(interceptor); } DestinationInterceptor[] array = new DestinationInterceptor[answer.size()]; answer.toArray(array); return array; }
@Override public Destination intercept(Destination destination) { final ActiveMQDestination activeMQDestination = destination.getActiveMQDestination(); Set matchingDestinations = destinationMap.get(activeMQDestination); List<Destination> destinations = new ArrayList<Destination>(); for (Iterator iter = matchingDestinations.iterator(); iter.hasNext();) { VirtualDestination virtualDestination = (VirtualDestination) iter.next(); Destination newDestination = virtualDestination.intercept(destination); destinations.add(newDestination); } if (!destinations.isEmpty()) { if (destinations.size() == 1) { return destinations.get(0); } else { // should rarely be used but here just in case return createCompositeDestination(destination, destinations); } } // check if the destination instead matches any mapped destinations Set mappedDestinations = mappedDestinationMap.get(activeMQDestination); if (!mappedDestinations.isEmpty()) { // create a mapped destination interceptor VirtualDestination virtualDestination = (VirtualDestination) mappedDestinations.toArray(new VirtualDestination[mappedDestinations.size()])[0]; return virtualDestination.interceptMappedDestination(destination); } return destination; }
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; }
/** * Create the default destination interceptor */ protected DestinationInterceptor[] createDefaultDestinationInterceptor() { List<DestinationInterceptor> answer = new ArrayList<>(); if (isUseVirtualTopics()) { VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); VirtualTopic virtualTopic = new VirtualTopic(); virtualTopic.setName("VirtualTopic.>"); VirtualDestination[] virtualDestinations = { virtualTopic }; interceptor.setVirtualDestinations(virtualDestinations); answer.add(interceptor); } if (isUseMirroredQueues()) { MirroredQueue interceptor = new MirroredQueue(); answer.add(interceptor); } DestinationInterceptor[] array = new DestinationInterceptor[answer.size()]; answer.toArray(array); return array; }
@Override public Destination intercept(Destination destination) { final ActiveMQDestination activeMQDestination = destination.getActiveMQDestination(); Set matchingDestinations = destinationMap.get(activeMQDestination); List<Destination> destinations = new ArrayList<Destination>(); for (Iterator iter = matchingDestinations.iterator(); iter.hasNext();) { VirtualDestination virtualDestination = (VirtualDestination) iter.next(); Destination newDestination = virtualDestination.intercept(destination); destinations.add(newDestination); } if (!destinations.isEmpty()) { if (destinations.size() == 1) { return destinations.get(0); } else { // should rarely be used but here just in case return createCompositeDestination(destination, destinations); } } // check if the destination instead matches any mapped destinations Set mappedDestinations = mappedDestinationMap.get(activeMQDestination); if (!mappedDestinations.isEmpty()) { // create a mapped destination interceptor VirtualDestination virtualDestination = (VirtualDestination) mappedDestinations.toArray(new VirtualDestination[mappedDestinations.size()])[0]; return virtualDestination.interceptMappedDestination(destination); } return destination; }
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; }
/** * Create the default destination interceptor */ protected DestinationInterceptor[] createDefaultDestinationInterceptor() { List<DestinationInterceptor> answer = new ArrayList<DestinationInterceptor>(); if (isUseVirtualTopics()) { VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); VirtualTopic virtualTopic = new VirtualTopic(); virtualTopic.setName("VirtualTopic.>"); VirtualDestination[] virtualDestinations = { virtualTopic }; interceptor.setVirtualDestinations(virtualDestinations); answer.add(interceptor); } if (isUseMirroredQueues()) { MirroredQueue interceptor = new MirroredQueue(); answer.add(interceptor); } DestinationInterceptor[] array = new DestinationInterceptor[answer.size()]; answer.toArray(array); return array; }
@Override public Destination intercept(Destination destination) { final ActiveMQDestination activeMQDestination = destination.getActiveMQDestination(); Set matchingDestinations = destinationMap.get(activeMQDestination); List<Destination> destinations = new ArrayList<Destination>(); for (Iterator iter = matchingDestinations.iterator(); iter.hasNext();) { VirtualDestination virtualDestination = (VirtualDestination) iter.next(); Destination newDestination = virtualDestination.intercept(destination); destinations.add(newDestination); } if (!destinations.isEmpty()) { if (destinations.size() == 1) { return destinations.get(0); } else { // should rarely be used but here just in case return createCompositeDestination(destination, destinations); } } // check if the destination instead matches any mapped destinations Set mappedDestinations = mappedDestinationMap.get(activeMQDestination); if (!mappedDestinations.isEmpty()) { // create a mapped destination interceptor VirtualDestination virtualDestination = (VirtualDestination) mappedDestinations.toArray(new VirtualDestination[mappedDestinations.size()])[0]; return virtualDestination.interceptMappedDestination(destination); } return destination; }