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 {