Repository: stratos Updated Branches: refs/heads/stratos-4.1.x e7dd20cab -> 68bf5b2ee
Enforcing the order as building TopologyProvider first and then configuring load balancer based on observer model Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/68bf5b2e Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/68bf5b2e Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/68bf5b2e Branch: refs/heads/stratos-4.1.x Commit: 68bf5b2eea7327cdd78323340b3cf0ffeeb6ec4d Parents: e7dd20c Author: reka <[email protected]> Authored: Tue Oct 13 17:18:47 2015 +0530 Committer: reka <[email protected]> Committed: Tue Oct 13 17:19:31 2015 +0530 ---------------------------------------------------------------------- .../LoadBalancerCommonTopologyEventReceiver.java | 10 +++++++++- .../balancer/extension/api/LoadBalancerExtension.java | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/68bf5b2e/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 534bc38..f5d1ab5 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,6 +48,14 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv addEventListeners(); } + public LoadBalancerCommonTopologyEventReceiver(TopologyProvider topologyProvider, + boolean addListener) { + this.topologyProvider = topologyProvider; + if(addListener) { + addEventListeners(); + } + } + public void execute() { super.execute(); if (log.isInfoEnabled()) { @@ -102,7 +110,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv return initialized; } - private void addEventListeners() { + public void addEventListeners() { addEventListener(new CompleteTopologyEventListener() { @Override http://git-wip-us.apache.org/repos/asf/stratos/blob/68bf5b2e/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 fbb0a21..6999cb1 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 @@ -112,9 +112,12 @@ public class LoadBalancerExtension { * @param topologyProvider topology provider instance */ private void startTopologyEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) { - - topologyEventReceiver = new LoadBalancerCommonTopologyEventReceiver(topologyProvider); + //Enforcing the listeners order in order execute extension listener later + topologyEventReceiver = new LoadBalancerCommonTopologyEventReceiver(topologyProvider, false); + //Add load-balancer extension event listener addTopologyEventListeners(topologyEventReceiver); + //Add Topology Provider event listener + topologyEventReceiver.addEventListeners(); topologyEventReceiver.setExecutorService(executorService); topologyEventReceiver.execute(); if (log.isInfoEnabled()) {
