mirror of https://github.com/apache/activemq.git
This commit is contained in:
parent
55da9bc821
commit
713250f5f0
|
@ -583,16 +583,23 @@ public abstract class AbstractRegion implements Region {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reapplyInterceptor() {
|
public void reapplyInterceptor() {
|
||||||
DestinationInterceptor destinationInterceptor = broker.getDestinationInterceptor();
|
destinationsLock.writeLock().lock();
|
||||||
Map<ActiveMQDestination, Destination> map = getDestinationMap();
|
try {
|
||||||
for (ActiveMQDestination key : map.keySet()) {
|
DestinationInterceptor destinationInterceptor = broker.getDestinationInterceptor();
|
||||||
Destination destination = map.get(key);
|
Map<ActiveMQDestination, Destination> map = getDestinationMap();
|
||||||
if (destination instanceof CompositeDestinationFilter) {
|
for (ActiveMQDestination key : map.keySet()) {
|
||||||
destination = ((CompositeDestinationFilter)destination).next;
|
Destination destination = map.get(key);
|
||||||
|
if (destination instanceof CompositeDestinationFilter) {
|
||||||
|
destination = ((CompositeDestinationFilter) destination).next;
|
||||||
|
}
|
||||||
|
if (destinationInterceptor != null) {
|
||||||
|
destination = destinationInterceptor.intercept(destination);
|
||||||
|
}
|
||||||
|
getDestinationMap().put(key, destination);
|
||||||
|
destinations.put(key, destination);
|
||||||
}
|
}
|
||||||
destination = destinationInterceptor.intercept(destination);
|
} finally {
|
||||||
getDestinationMap().put(key, destination);
|
destinationsLock.writeLock().unlock();
|
||||||
destinations.put(key, destination);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -552,6 +552,7 @@ public class RuntimeConfigurationBroker extends BrokerFilter {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
boolean updatedExistingInterceptor = false;
|
boolean updatedExistingInterceptor = false;
|
||||||
|
RegionBroker regionBroker = (RegionBroker) getBrokerService().getRegionBroker();
|
||||||
|
|
||||||
for (DestinationInterceptor destinationInterceptor : getBrokerService().getDestinationInterceptors()) {
|
for (DestinationInterceptor destinationInterceptor : getBrokerService().getDestinationInterceptors()) {
|
||||||
if (destinationInterceptor instanceof VirtualDestinationInterceptor) {
|
if (destinationInterceptor instanceof VirtualDestinationInterceptor) {
|
||||||
|
@ -577,11 +578,11 @@ public class RuntimeConfigurationBroker extends BrokerFilter {
|
||||||
|
|
||||||
DestinationInterceptor[] destinationInterceptors = interceptorsList.toArray(new DestinationInterceptor[]{});
|
DestinationInterceptor[] destinationInterceptors = interceptorsList.toArray(new DestinationInterceptor[]{});
|
||||||
getBrokerService().setDestinationInterceptors(destinationInterceptors);
|
getBrokerService().setDestinationInterceptors(destinationInterceptors);
|
||||||
RegionBroker regionBroker = (RegionBroker) getBrokerService().getRegionBroker();
|
|
||||||
((CompositeDestinationInterceptor) regionBroker.getDestinationInterceptor()).setInterceptors(destinationInterceptors);
|
((CompositeDestinationInterceptor) regionBroker.getDestinationInterceptor()).setInterceptors(destinationInterceptors);
|
||||||
info("applied new: " + interceptorsList);
|
info("applied new: " + interceptorsList);
|
||||||
regionBroker.reapplyInterceptor();
|
|
||||||
}
|
}
|
||||||
|
regionBroker.reapplyInterceptor();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (o instanceof DtoPolicyEntry) {
|
} else if (o instanceof DtoPolicyEntry) {
|
||||||
|
|
Loading…
Reference in New Issue