Repository: stratos Updated Branches: refs/heads/stratos-4.1.x 0db74156b -> 0d8059056
Adding logic to reload load balancer extension configuration on domain mapping events Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/0d805905 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/0d805905 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/0d805905 Branch: refs/heads/stratos-4.1.x Commit: 0d8059056869813c3b3035bf35961dacc0e5e516 Parents: 0db7415 Author: Imesh Gunaratne <[email protected]> Authored: Wed Oct 14 14:36:34 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Wed Oct 14 14:37:19 2015 +0530 ---------------------------------------------------------------------- ...alancerCommonDomainMappingEventReceiver.java | 12 +++++++- ...LoadBalancerCommonTopologyEventReceiver.java | 9 +++--- .../extension/api/LoadBalancerExtension.java | 32 +++++++++++++++++--- 3 files changed, 44 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/0d805905/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java index a075d32..a51ed22 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java @@ -45,8 +45,18 @@ public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingE addEventListeners(); } - private void addEventListeners() { + public LoadBalancerCommonDomainMappingEventReceiver(TopologyProvider topologyProvider, boolean addListeners) { + this.topologyProvider = topologyProvider; + if(addListeners) { + addEventListeners(); + } + } + /** + * Add default event listeners for updating the topology with + * domain mapping events. + */ + public void addEventListeners() { addEventListener(new DomainMappingAddedEventListener() { @Override protected void onEvent(Event event) { http://git-wip-us.apache.org/repos/asf/stratos/blob/0d805905/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java index f5d1ab5..4c9b5f1 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java @@ -48,10 +48,9 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv addEventListeners(); } - public LoadBalancerCommonTopologyEventReceiver(TopologyProvider topologyProvider, - boolean addListener) { + public LoadBalancerCommonTopologyEventReceiver(TopologyProvider topologyProvider, boolean addListeners) { this.topologyProvider = topologyProvider; - if(addListener) { + if(addListeners) { addEventListeners(); } } @@ -110,8 +109,10 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv return initialized; } + /** + * Add default event listeners for updating the topology on topology events + */ public void addEventListeners() { - addEventListener(new CompleteTopologyEventListener() { @Override protected void onEvent(Event event) { http://git-wip-us.apache.org/repos/asf/stratos/blob/0d805905/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java index 6999cb1..862d28a 100644 --- a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java +++ b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java @@ -32,6 +32,8 @@ import org.apache.stratos.load.balancer.common.statistics.notifier.LoadBalancerS import org.apache.stratos.load.balancer.common.topology.TopologyProvider; import org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException; import org.apache.stratos.messaging.event.Event; +import org.apache.stratos.messaging.listener.domain.mapping.DomainMappingAddedEventListener; +import org.apache.stratos.messaging.listener.domain.mapping.DomainMappingRemovedEventListener; import org.apache.stratos.messaging.listener.topology.*; import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter; import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter; @@ -112,11 +114,11 @@ public class LoadBalancerExtension { * @param topologyProvider topology provider instance */ private void startTopologyEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) { - //Enforcing the listeners order in order execute extension listener later + // Enforcing the listener order in order execute extension listener later topologyEventReceiver = new LoadBalancerCommonTopologyEventReceiver(topologyProvider, false); - //Add load-balancer extension event listener + // Add load-balancer extension event listener addTopologyEventListeners(topologyEventReceiver); - //Add Topology Provider event listener + // Add default topology provider event listeners topologyEventReceiver.addEventListeners(); topologyEventReceiver.setExecutorService(executorService); topologyEventReceiver.execute(); @@ -149,7 +151,12 @@ public class LoadBalancerExtension { * @param topologyProvider topology receiver instance */ private void startDomainMappingEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) { - domainMappingEventReceiver = new LoadBalancerCommonDomainMappingEventReceiver(topologyProvider); + // Enforcing the listener order in order execute extension listener later + domainMappingEventReceiver = new LoadBalancerCommonDomainMappingEventReceiver(topologyProvider, false); + // Add extension event listeners + addDomainMappingsEventListeners(domainMappingEventReceiver); + // Add default domain mapping event listeners + domainMappingEventReceiver.addEventListeners(); domainMappingEventReceiver.setExecutorService(executorService); domainMappingEventReceiver.execute(); if (log.isInfoEnabled()) { @@ -157,6 +164,23 @@ public class LoadBalancerExtension { } } + private void addDomainMappingsEventListeners(final LoadBalancerCommonDomainMappingEventReceiver + domainMappingEventReceiver) { + domainMappingEventReceiver.addEventListener(new DomainMappingAddedEventListener() { + @Override + protected void onEvent(Event event) { + reloadConfiguration(); + } + }); + + domainMappingEventReceiver.addEventListener(new DomainMappingRemovedEventListener() { + @Override + protected void onEvent(Event event) { + reloadConfiguration(); + } + }); + } + /** * Start application signup event receiver thread. *
