You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2014/06/03 13:26:53 UTC

[2/2] git commit: https://issues.apache.org/jira/browse/AMQ-5160 - make runtime configuration plugin work properly with destination filters

https://issues.apache.org/jira/browse/AMQ-5160 - make runtime configuration plugin work properly with destination filters


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/14fcd7cb
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/14fcd7cb
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/14fcd7cb

Branch: refs/heads/trunk
Commit: 14fcd7cbea6fb2ac5dbde98ae218f9d7bef968e3
Parents: a4682fc
Author: Dejan Bosanac <de...@nighttale.net>
Authored: Tue Jun 3 13:26:43 2014 +0200
Committer: Dejan Bosanac <de...@nighttale.net>
Committed: Tue Jun 3 13:26:43 2014 +0200

----------------------------------------------------------------------
 .../broker/region/DestinationFilter.java        |  4 ++++
 .../plugin/RuntimeConfigurationBroker.java      | 21 ++++++++++----------
 2 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/14fcd7cb/activemq-broker/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java b/activemq-broker/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
index 7e21bcc..ff25dd5 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/region/DestinationFilter.java
@@ -402,4 +402,8 @@ public class DestinationFilter implements Destination {
             topic.deleteSubscription(context, key);
         }
     }
+
+    public Destination getNext() {
+        return next;
+    }
 }

http://git-wip-us.apache.org/repos/asf/activemq/blob/14fcd7cb/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
----------------------------------------------------------------------
diff --git a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
index b11b529..b764495 100644
--- a/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
+++ b/activemq-runtime-config/src/main/java/org/apache/activemq/plugin/RuntimeConfigurationBroker.java
@@ -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);
         }
     }