You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/05/02 15:13:01 UTC

git commit: Fixed issue of complete topology and tenant events being processed in each iteration

Repository: incubator-stratos
Updated Branches:
  refs/heads/master 3d3fc9d31 -> 783197eab


Fixed issue of complete topology and tenant events being processed in each iteration


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/783197ea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/783197ea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/783197ea

Branch: refs/heads/master
Commit: 783197eaba9edd70212ca70b39679502274fd230
Parents: 3d3fc9d
Author: Imesh Gunaratne <im...@apache.org>
Authored: Fri May 2 18:40:00 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri May 2 18:40:00 2014 +0530

----------------------------------------------------------------------
 .../LoadBalancerTenantEventReceiver.java        | 35 +++++++++++---------
 .../LoadBalancerTopologyEventReceiver.java      | 31 +++++++++--------
 2 files changed, 38 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/783197ea/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
index 52886d1..e25bed9 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTenantEventReceiver.java
@@ -50,26 +50,31 @@ public class LoadBalancerTenantEventReceiver implements Runnable {
 
     private void addEventListeners() {
         tenantEventReceiver.addEventListener(new CompleteTenantEventListener() {
+            private boolean initialized;
+
             @Override
             protected void onEvent(Event event) {
-                CompleteTenantEvent completeTenantEvent = (CompleteTenantEvent) event;
-                if (log.isDebugEnabled()) {
-                    log.debug("Complete tenant event received");
-                }
-                for (Tenant tenant : completeTenantEvent.getTenants()) {
-                    for (Subscription subscription : tenant.getSubscriptions()) {
-                        if (isMultiTenantService(subscription.getServiceName())) {
-                            LoadBalancerContextUtil.addClustersAgainstHostNamesAndTenantIds(
+                if (!initialized) {
+                    CompleteTenantEvent completeTenantEvent = (CompleteTenantEvent) event;
+                    if (log.isDebugEnabled()) {
+                        log.debug("Complete tenant event received");
+                    }
+                    for (Tenant tenant : completeTenantEvent.getTenants()) {
+                        for (Subscription subscription : tenant.getSubscriptions()) {
+                            if (isMultiTenantService(subscription.getServiceName())) {
+                                LoadBalancerContextUtil.addClustersAgainstHostNamesAndTenantIds(
+                                        subscription.getServiceName(),
+                                        tenant.getTenantId(),
+                                        subscription.getClusterIds());
+                            }
+
+                            LoadBalancerContextUtil.addClustersAgainstDomains(
                                     subscription.getServiceName(),
-                                    tenant.getTenantId(),
-                                    subscription.getClusterIds());
+                                    subscription.getClusterIds(),
+                                    subscription.getDomains());
                         }
-
-                        LoadBalancerContextUtil.addClustersAgainstDomains(
-                                subscription.getServiceName(),
-                                subscription.getClusterIds(),
-                                subscription.getDomains());
                     }
+                    initialized = true;
                 }
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/783197ea/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyEventReceiver.java
index 0796945..f10256c 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/LoadBalancerTopologyEventReceiver.java
@@ -77,25 +77,30 @@ public class LoadBalancerTopologyEventReceiver implements Runnable {
     private void addEventListeners() {
         // Listen to topology events that affect clusters
         topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {
+            private boolean initialized;
+
             @Override
             protected void onEvent(Event event) {
-                try {
-                    TopologyManager.acquireReadLock();
-                    for (Service service : TopologyManager.getTopology().getServices()) {
-                        for (Cluster cluster : service.getClusters()) {
-                            if (clusterHasActiveMembers(cluster)) {
-                                LoadBalancerContextUtil.addClusterAgainstHostNames(cluster);
-                            } else {
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Cluster does not have any active members");
+                if(!initialized) {
+                    try {
+                        TopologyManager.acquireReadLock();
+                        for (Service service : TopologyManager.getTopology().getServices()) {
+                            for (Cluster cluster : service.getClusters()) {
+                                if (clusterHasActiveMembers(cluster)) {
+                                    LoadBalancerContextUtil.addClusterAgainstHostNames(cluster);
+                                } else {
+                                    if (log.isDebugEnabled()) {
+                                        log.debug("Cluster does not have any active members");
+                                    }
                                 }
                             }
                         }
+                        initialized = true;
+                    } catch (Exception e) {
+                        log.error("Error processing event", e);
+                    } finally {
+                        TopologyManager.releaseReadLock();
                     }
-                } catch (Exception e) {
-                    log.error("Error processing event", e);
-                } finally {
-                    TopologyManager.releaseReadLock();
                 }
             }