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();
}
}