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 2013/11/14 12:22:07 UTC

git commit: Added logic to receive complete topology event only once per load balancer life-cycle in load balancer extension

Updated Branches:
  refs/heads/master 644e94b9c -> d29ee5d60


Added logic to receive complete topology event only once per load balancer  life-cycle in load balancer extension


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

Branch: refs/heads/master
Commit: d29ee5d60a63fa7e43079237ff0076c8e47f8627
Parents: 644e94b
Author: Imesh Gunaratne <im...@apache.org>
Authored: Thu Nov 14 16:51:45 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Thu Nov 14 16:51:45 2013 +0530

----------------------------------------------------------------------
 .../load/balancer/extension/api/LoadBalancerExtension.java   | 8 ++++++--
 .../receiver/topology/TopologyEventMessageDelegator.java     | 7 ++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d29ee5d6/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 e3c19df..c2dbe50 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
@@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.load.balancer.common.topology.TopologyReceiver;
 import org.apache.stratos.messaging.event.Event;
 import org.apache.stratos.messaging.event.topology.*;
-import org.apache.stratos.messaging.message.processor.MessageProcessorChain;
 import org.apache.stratos.messaging.message.processor.topology.TopologyEventProcessorChain;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
@@ -59,8 +58,9 @@ public class LoadBalancerExtension implements Runnable {
 
     private TopologyEventMessageDelegator createMessageDelegator() {
         TopologyEventProcessorChain processorChain = createEventProcessorChain();
-        TopologyEventMessageDelegator messageDelegator = new TopologyEventMessageDelegator(processorChain);
+        final TopologyEventMessageDelegator messageDelegator = new TopologyEventMessageDelegator(processorChain);
         messageDelegator.addCompleteTopologyEventListener(new CompleteTopologyEventListener() {
+
             @Override
             protected void onEvent(Event event) {
                 // Configure load balancer
@@ -68,6 +68,10 @@ public class LoadBalancerExtension implements Runnable {
 
                 // Start load balancer
                 loadBalancer.start();
+
+                // Complete topology event is only received once
+                // Remove event listener
+                messageDelegator.removeCompleteTopologyEventListener(this);
             }
         });
         return messageDelegator;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/d29ee5d6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventMessageDelegator.java
index 6986a28..285bd0a 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventMessageDelegator.java
@@ -23,6 +23,7 @@ import javax.jms.TextMessage;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.event.EventListener;
+import org.apache.stratos.messaging.event.topology.CompleteTopologyEventListener;
 import org.apache.stratos.messaging.message.processor.MessageProcessorChain;
 import org.apache.stratos.messaging.message.processor.topology.*;
 import org.apache.stratos.messaging.util.Constants;
@@ -52,10 +53,14 @@ public class TopologyEventMessageDelegator implements Runnable {
         this.processorChain = processorChain;
     }
 
-    public void addCompleteTopologyEventListener(EventListener eventListener) {
+    public void addCompleteTopologyEventListener(CompleteTopologyEventListener eventListener) {
         completeTopEvMsgProcessor.addEventListener(eventListener);
     }
 
+    public void removeCompleteTopologyEventListener(CompleteTopologyEventListener eventListener) {
+        completeTopEvMsgProcessor.removeEventListener(eventListener);
+    }
+
     @Override
     public void run() {
         try {