Introducing removeEventListener method to unregister an event listener

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

Branch: refs/heads/stratos-4.1.x
Commit: bd5e2f8dd0645233f38a3b995dddd598e3022244
Parents: 2b82b91
Author: Akila Perera <[email protected]>
Authored: Sun Nov 29 23:57:07 2015 +0530
Committer: Akila Perera <[email protected]>
Committed: Mon Nov 30 00:33:46 2015 +0530

----------------------------------------------------------------------
 .../processor/MessageProcessorChain.java        |  2 +
 .../ApplicationsMessageProcessorChain.java      | 38 +++++++++++++++-
 .../ApplicationSignUpMessageProcessorChain.java | 13 ++++++
 .../ClusterStatusMessageProcessorChain.java     | 18 ++++++++
 .../DomainMappingMessageProcessorChain.java     | 11 +++++
 .../stat/HealthStatMessageProcessorChain.java   | 41 ++++++++++++++++-
 .../InitializerMessageProcessorChain.java       | 15 ++++++
 .../InstanceNotifierMessageProcessorChain.java  | 12 +++++
 .../InstanceStatusMessageProcessorChain.java    | 14 ++++++
 .../tenant/TenantMessageProcessorChain.java     | 14 ++++++
 .../topology/TopologyMessageProcessorChain.java | 48 ++++++++++++++++++++
 .../ApplicationsEventMessageDelegator.java      |  4 ++
 .../application/ApplicationsEventReceiver.java  |  4 ++
 13 files changed, 231 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/MessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/MessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/MessageProcessorChain.java
index 0814830..fb49a97 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/MessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/MessageProcessorChain.java
@@ -39,6 +39,8 @@ public abstract class MessageProcessorChain {
 
     public abstract void addEventListener(EventListener eventListener);
 
+    public abstract void removeEventListener(EventListener eventListener);
+
     public void add(MessageProcessor messageProcessor) {
         if (list.size() > 0) {
             list.getLast().setNext(messageProcessor);

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationsMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationsMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationsMessageProcessorChain.java
index bed9b0d..71a968e 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationsMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/ApplicationsMessageProcessorChain.java
@@ -101,7 +101,6 @@ public class ApplicationsMessageProcessorChain extends 
MessageProcessorChain {
     }
 
     public void addEventListener(EventListener eventListener) {
-
         if (eventListener instanceof GroupInstanceCreatedEventListener) {
             groupCreatedMessageProcessor.addEventListener(eventListener);
         } else if (eventListener instanceof 
GroupInstanceInactivateEventListener) {
@@ -136,4 +135,41 @@ public class ApplicationsMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener " + 
eventListener.toString());
         }
     }
+
+
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof GroupInstanceCreatedEventListener) {
+            groupCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GroupInstanceInactivateEventListener) {
+            groupInactivateMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GroupInstanceActivatedEventListener) {
+            groupActivatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GroupInstanceTerminatingEventListener) {
+            groupTerminatingProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GroupInstanceTerminatedEventListener) {
+            groupTerminatedProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationInstanceCreatedEventListener) {
+            
applicationInstanceCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ApplicationCreatedEventListener) {
+            
applicationCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationUndeployedEventListener) {
+            
applicationUpdatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ApplicationDeletedEventListener) {
+            
applicationDeletedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationInstanceActivatedEventListener) {
+            
applicationActivatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationInstanceInactivatedEventListener) {
+            
applicationInactivatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationInstanceTerminatingEventListener) {
+            
applicationTerminatingMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationInstanceTerminatedEventListener) {
+            
applicationTerminatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof CompleteApplicationsEventListener) 
{
+            
completeApplicationsMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof GroupMaintenanceModeEventListener){
+            groupMaintenanceModeProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener " + 
eventListener.toString());
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/ApplicationSignUpMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/ApplicationSignUpMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/ApplicationSignUpMessageProcessorChain.java
index c1a63f7..fea4092 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/ApplicationSignUpMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/ApplicationSignUpMessageProcessorChain.java
@@ -62,4 +62,17 @@ public class ApplicationSignUpMessageProcessorChain extends 
MessageProcessorChai
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    @Override
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof CompleteApplicationSignUpsEventListener) {
+            
completeApplicationSignUpsMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationSignUpAddedEventListener) {
+            
applicationSignUpAddedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationSignUpRemovedEventListener) {
+            
applicationSignUpRemovedMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/cluster/status/ClusterStatusMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/cluster/status/ClusterStatusMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/cluster/status/ClusterStatusMessageProcessorChain.java
index 090a586..87ceb73 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/cluster/status/ClusterStatusMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/cluster/status/ClusterStatusMessageProcessorChain.java
@@ -79,6 +79,24 @@ public class ClusterStatusMessageProcessorChain extends 
MessageProcessorChain {
         } else {
             throw new RuntimeException("Unknown event listener " + 
eventListener.toString());
         }
+    }
 
+    @Override
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof ClusterStatusClusterResetEventListener) {
+            clusterResetMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterStatusClusterInactivateEventListener) {
+            
clusterInactivateMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterStatusClusterActivatedEventListener) {
+            
clusterActivatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterStatusClusterTerminatingEventListener) {
+            
clusterTerminatingMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterStatusClusterTerminatedEventListener) {
+            
clusterTerminatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterStatusClusterInstanceCreatedEventListener) {
+            
clusterInstanceCreatedMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener " + 
eventListener.toString());
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingMessageProcessorChain.java
index ab4452b..9f494f8 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingMessageProcessorChain.java
@@ -55,4 +55,15 @@ public class DomainMappingMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    @Override
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof DomainMappingAddedEventListener) {
+            domainNameAddedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof DomainMappingRemovedEventListener) 
{
+            
domainNameRemovedMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/health/stat/HealthStatMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/health/stat/HealthStatMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/health/stat/HealthStatMessageProcessorChain.java
index 70bde39..2066a0a 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/health/stat/HealthStatMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/health/stat/HealthStatMessageProcessorChain.java
@@ -93,7 +93,6 @@ public class HealthStatMessageProcessorChain extends 
MessageProcessorChain {
     }
 
     public void addEventListener(EventListener eventListener) {
-
         if (eventListener instanceof AverageLoadAverageEventListener) {
             averageLoadAverageMessageProcessor.addEventListener(eventListener);
         } else if (eventListener instanceof 
AverageMemoryConsumptionEventListener) {
@@ -126,10 +125,48 @@ public class HealthStatMessageProcessorChain extends 
MessageProcessorChain {
             
secondDerivativeOfLoadAverageMessageProcessor.addEventListener(eventListener);
         } else if (eventListener instanceof 
SecondDerivativeOfMemoryConsumptionEventListener) {
             
secondDerivativeOfMemoryConsumptionMessageProcessor.addEventListener(eventListener);
-
         } else if (eventListener instanceof 
SecondDerivativeOfRequestsInFlightEventListener) {
             
secondDerivativeOfRequestsInFlightMessageProcessor.addEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof AverageLoadAverageEventListener) {
+            
averageLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
AverageMemoryConsumptionEventListener) {
+            
averageMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
AverageRequestsInFlightEventListener) {
+            
averageRequestsInFlightMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
AverageRequestsServingCapabilityEventListener) {
+            
averageRequestsServingCapabilityMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GradientOfLoadAverageEventListener) {
+            
gradientOfLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GradientOfMemoryConsumptionEventListener) {
+            
gradientOfMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
GradientOfRequestsInFlightEventListener) {
+            
gradientOfRequestsInFlightMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberAverageLoadAverageEventListener) {
+            
memberAverageLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberAverageMemoryConsumptionEventListener) {
+            
memberAverageMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberFaultEventListener) {
+            memberFaultMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberGradientOfLoadAverageEventListener) {
+            
memberGradientOfLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberGradientOfMemoryConsumptionEventListener) {
+            
memberGradientOfMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberSecondDerivativeOfLoadAverageEventListener) {
+            
memberSecondDerivativeOfLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberSecondDerivativeOfMemoryConsumptionEventListener) {
+            
memberSecondDerivativeOfMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
SecondDerivativeOfLoadAverageEventListener) {
+            
secondDerivativeOfLoadAverageMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
SecondDerivativeOfMemoryConsumptionEventListener) {
+            
secondDerivativeOfMemoryConsumptionMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
SecondDerivativeOfRequestsInFlightEventListener) {
+            
secondDerivativeOfRequestsInFlightMessageProcessor.removeEventListener(eventListener);
         } else {
             throw new RuntimeException("Unknown event listener");
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/initializer/InitializerMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/initializer/InitializerMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/initializer/InitializerMessageProcessorChain.java
index f3e292f..44398b7 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/initializer/InitializerMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/initializer/InitializerMessageProcessorChain.java
@@ -67,4 +67,19 @@ public class InitializerMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    @Override
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof CompleteTopologyRequestEventListener) {
+            
completeTopologyRequestMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
CompleteApplicationsRequestEventListener) {
+            
completeApplicationsRequestMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
CompleteTenantRequestEventListener) {
+            
completeTenantRequestMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
CompleteApplicationSignUpsRequestEventListener) {
+            
completeApplicationSignUpsRequestMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
index 013a030..a8db9d8 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/notifier/InstanceNotifierMessageProcessorChain.java
@@ -63,4 +63,16 @@ public class InstanceNotifierMessageProcessorChain extends 
MessageProcessorChain
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof ArtifactUpdateEventListener) {
+            artifactUpdateMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
InstanceCleanupMemberEventListener) {
+            
instanceCleanupMemberNotifierMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
InstanceCleanupClusterEventListener) {
+            
instanceCleanupClusterNotifierMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/status/InstanceStatusMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/status/InstanceStatusMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/status/InstanceStatusMessageProcessorChain.java
index 8e6a7de..4b5daed 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/status/InstanceStatusMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/instance/status/InstanceStatusMessageProcessorChain.java
@@ -73,4 +73,18 @@ public class InstanceStatusMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof InstanceStartedEventListener) {
+            
instanceStatusMemberStartedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
InstanceReadyToShutdownEventListener) {
+            
instanceStatusMemberReadyToShutdownMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof InstanceMaintenanceListener) {
+            
instanceStatusMemberMaintenanceMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof InstanceActivatedEventListener) {
+            
instanceStatusMemberActivatedMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
index 53c6085..bfb23ba 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantMessageProcessorChain.java
@@ -71,4 +71,18 @@ public class TenantMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof CompleteTenantEventListener) {
+            completeTenantMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof TenantCreatedEventListener) {
+            tenantCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof TenantUpdatedEventListener) {
+            tenantUpdatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof TenantRemovedEventListener) {
+            tenantRemovedMessageProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/TopologyMessageProcessorChain.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/TopologyMessageProcessorChain.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/TopologyMessageProcessorChain.java
index a026a50..4dadcb7 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/TopologyMessageProcessorChain.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/TopologyMessageProcessorChain.java
@@ -171,4 +171,52 @@ public class TopologyMessageProcessorChain extends 
MessageProcessorChain {
             throw new RuntimeException("Unknown event listener");
         }
     }
+
+    public void removeEventListener(EventListener eventListener) {
+        if (eventListener instanceof CompleteTopologyEventListener) {
+            
completeTopologyMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ClusterCreatedEventListener) {
+            clusterCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationClustersCreatedEventListener) {
+            
appClustersCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ApplicationClustersRemovedEventListener) {
+            
appClustersRemovedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterInstanceActivatedEventListener) {
+            clusterActivatedProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterInstanceInactivateEventListener) {
+            clusterInactivateProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ClusterRemovedEventListener) {
+            clusterRemovedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterInstanceCreatedEventListener) {
+            
clusterInstanceCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterInstanceTerminatedEventListener) {
+            clusterTerminatedProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ClusterResetEventListener) {
+            clusterResetMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
ClusterInstanceTerminatingEventListener) {
+            clusterTerminatingProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberCreatedEventListener) {
+            memberCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberInitializedEventListener) {
+            
memberInitializedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberActivatedEventListener) {
+            memberActivatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberStartedEventListener) {
+            memberStartedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof 
MemberReadyToShutdownEventListener) {
+            memberReadyToShutdownProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberSuspendedEventListener) {
+            memberSuspendedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberTerminatedEventListener) {
+            
memberTerminatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ServiceCreatedEventListener) {
+            serviceCreatedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof ServiceRemovedEventListener) {
+            serviceRemovedMessageProcessor.removeEventListener(eventListener);
+        } else if (eventListener instanceof MemberMaintenanceListener) {
+            memberMaintenanceModeProcessor.removeEventListener(eventListener);
+        } else {
+            throw new RuntimeException("Unknown event listener");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventMessageDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventMessageDelegator.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventMessageDelegator.java
index 29e57cc..59ef5ca 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventMessageDelegator.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventMessageDelegator.java
@@ -41,6 +41,10 @@ public class ApplicationsEventMessageDelegator implements 
Runnable {
         processorChain.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener){
+        processorChain.removeEventListener(eventListener);
+    }
+
     @Override
     public void run() {
         try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd5e2f8d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
index d7e7196..9306ad2 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
@@ -47,6 +47,10 @@ public class ApplicationsEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     public void execute() {
         try {
             // Start topic subscriber thread

Reply via email to