mirror of
https://github.com/apache/activemq.git
synced 2025-02-16 15:08:10 +00:00
https://issues.apache.org/jira/browse/AMQ-5160 - make runtime configuration plugin work properly with destination filters
This commit is contained in:
parent
a4682fcb47
commit
14fcd7cbea
@ -402,4 +402,8 @@ public class DestinationFilter implements Destination {
|
||||
topic.deleteSubscription(context, key);
|
||||
}
|
||||
}
|
||||
|
||||
public Destination getNext() {
|
||||
return next;
|
||||
}
|
||||
}
|
||||
|
@ -52,12 +52,7 @@ import org.apache.activemq.broker.BrokerContext;
|
||||
import org.apache.activemq.broker.BrokerFilter;
|
||||
import org.apache.activemq.broker.ConnectionContext;
|
||||
import org.apache.activemq.broker.jmx.ManagementContext;
|
||||
import org.apache.activemq.broker.region.CompositeDestinationInterceptor;
|
||||
import org.apache.activemq.broker.region.Destination;
|
||||
import org.apache.activemq.broker.region.DestinationInterceptor;
|
||||
import org.apache.activemq.broker.region.Queue;
|
||||
import org.apache.activemq.broker.region.RegionBroker;
|
||||
import org.apache.activemq.broker.region.Topic;
|
||||
import org.apache.activemq.broker.region.*;
|
||||
import org.apache.activemq.broker.region.policy.PolicyEntry;
|
||||
import org.apache.activemq.broker.region.policy.PolicyMap;
|
||||
import org.apache.activemq.broker.region.virtual.CompositeQueue;
|
||||
@ -439,12 +434,16 @@ public class RuntimeConfigurationBroker extends BrokerFilter {
|
||||
private void applyRetrospectively(PolicyEntry updatedEntry) {
|
||||
RegionBroker regionBroker = (RegionBroker) getBrokerService().getRegionBroker();
|
||||
for (Destination destination : regionBroker.getDestinations(updatedEntry.getDestination())) {
|
||||
if (destination.getActiveMQDestination().isQueue()) {
|
||||
updatedEntry.update((Queue) destination);
|
||||
} else if (destination.getActiveMQDestination().isTopic()) {
|
||||
updatedEntry.update((Topic) destination);
|
||||
Destination target = destination;
|
||||
if (destination instanceof DestinationFilter) {
|
||||
target = ((DestinationFilter)destination).getNext();
|
||||
}
|
||||
LOG.debug("applied update to:" + destination);
|
||||
if (target.getActiveMQDestination().isQueue()) {
|
||||
updatedEntry.update((Queue) target);
|
||||
} else if (target.getActiveMQDestination().isTopic()) {
|
||||
updatedEntry.update((Topic) target);
|
||||
}
|
||||
LOG.debug("applied update to:" + target);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user