You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2015/12/24 14:04:18 UTC

[01/19] stratos git commit: making TopologyEventReceiver and ApplicationSignupEventReceiver a singleton

Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x 42a965473 -> c251d5eb8


making TopologyEventReceiver and ApplicationSignupEventReceiver a singleton


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

Branch: refs/heads/stratos-4.1.x
Commit: 5ce932cb75069ec8dec851ef146848b8a74372e5
Parents: 4ead24e
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 15:33:21 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:33:18 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerTopologyEventReceiver.java        | 18 +++----
 .../stratos/cartridge/agent/CartridgeAgent.java | 54 ++++++++++----------
 .../agent/CartridgeAgentEventListeners.java     | 43 ++++++++--------
 .../agent/test/JavaCartridgeAgentTest.java      |  6 +--
 ...cerCommonApplicationSignUpEventReceiver.java | 11 ++--
 ...LoadBalancerCommonTopologyEventReceiver.java | 37 +++++++-------
 .../extension/api/LoadBalancerExtension.java    |  2 -
 .../internal/LoadBalancerServiceComponent.java  | 18 +++----
 .../StratosManagerServiceComponent.java         |  4 +-
 .../StratosManagerTopologyEventReceiver.java    | 18 +++----
 .../message/receiver/StratosEventReceiver.java  | 30 +++++++++++
 .../signup/ApplicationSignUpEventReceiver.java  | 37 ++++++++++----
 .../topology/TopologyEventReceiver.java         | 39 ++++++++++----
 .../mock/iaas/services/impl/MockInstance.java   |  6 +--
 14 files changed, 193 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 8336f86..6fd64a7 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -60,18 +60,18 @@ public class AutoscalerTopologyEventReceiver {
     private ExecutorService executorService;
 
     public AutoscalerTopologyEventReceiver() {
-        this.topologyEventReceiver = new TopologyEventReceiver();
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        //FIXME this activated before autoscaler deployer activated.
-        topologyEventReceiver.setExecutorService(getExecutorService());
-        topologyEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Autoscaler topology receiver thread started");
-        }
-    }
+//    public void execute() {
+//        //FIXME this activated before autoscaler deployer activated.
+//       // topologyEventReceiver.setExecutorService(getExecutorService());
+//        //topologyEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Autoscaler topology receiver thread started");
+//        }
+//    }
 
     private void addEventListeners() {
         // Listen to topology events that affect clusters

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
index 91f596e..18e6e0a 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
@@ -103,10 +103,10 @@ public class CartridgeAgent implements Runnable {
         } */
 
         // Start application event receiver thread
-        registerApplicationEventListeners();
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent registering all event listeners ... done");
-        }
+        //registerApplicationEventListeners();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent registering all event listeners ... done");
+//        }
 
         // Execute instance started shell script
         extensionHandler.onInstanceStartedEvent();
@@ -197,29 +197,29 @@ public class CartridgeAgent implements Runnable {
         }
     }
 
-    protected void registerTenantEventListeners() {
-        if (log.isDebugEnabled()) {
-            log.debug("registerTenantEventListeners before");
-        }
-
-        eventListenerns.startTenantEventReceiver();
-
-        if (log.isDebugEnabled()) {
-            log.debug("registerTenantEventListeners after");
-        }
-    }
-
-    protected void registerApplicationEventListeners() {
-        if (log.isDebugEnabled()) {
-            log.debug("registerApplicationListeners before");
-        }
-
-        eventListenerns.startApplicationsEventReceiver();
-
-        if (log.isDebugEnabled()) {
-            log.debug("registerApplicationEventListeners after");
-        }
-    }
+//    protected void registerTenantEventListeners() {
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerTenantEventListeners before");
+//        }
+//
+//        eventListenerns.startTenantEventReceiver();
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerTenantEventListeners after");
+//        }
+//    }
+
+//    protected void registerApplicationEventListeners() {
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerApplicationListeners before");
+//        }
+//
+//        eventListenerns.startApplicationsEventReceiver();
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerApplicationEventListeners after");
+//        }
+//    }
 
     protected void validateRequiredSystemProperties() {
         String jndiPropertiesDir = System.getProperty(CartridgeAgentConstants.JNDI_PROPERTIES_DIR);

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
index e6bb41b..103d2c7 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
@@ -72,11 +72,10 @@ public class CartridgeAgentEventListeners {
         if (log.isDebugEnabled()) {
             log.debug("Creating cartridge agent event listeners...");
         }
-        this.applicationsEventReceiver = new ApplicationSignUpEventReceiver();
-        this.applicationsEventReceiver.setExecutorService(eventListenerExecutorService);
+        this.applicationsEventReceiver = ApplicationSignUpEventReceiver.getInstance();
 
-        this.topologyEventReceiver = new TopologyEventReceiver();
-        this.topologyEventReceiver.setExecutorService(eventListenerExecutorService);
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
+        //this.topologyEventReceiver.setExecutorService(eventListenerExecutorService);
 
         this.instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
 
@@ -151,24 +150,24 @@ public class CartridgeAgentEventListeners {
 
     }
 
-    public void startApplicationsEventReceiver() {
-
-        if (log.isDebugEnabled()) {
-            log.debug("Starting cartridge agent application event message receiver");
-        }
-
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                applicationsEventReceiver.execute();
-            }
-        });
-
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent application receiver thread started, waiting for event messages ...");
-        }
-
-    }
+//    public void startApplicationsEventReceiver() {
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("Starting cartridge agent application event message receiver");
+//        }
+//
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                applicationsEventReceiver.execute();
+//            }
+//        });
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent application receiver thread started, waiting for event messages ...");
+//        }
+//
+//    }
 
 
     private void addInstanceNotifierEventListeners() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
index 0427eb6..a501507 100644
--- a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
+++ b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
@@ -122,9 +122,9 @@ public class JavaCartridgeAgentTest {
         String agentHome = setupJavaAgent();
 
         ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
-        topologyEventReceiver = new TopologyEventReceiver();
-        topologyEventReceiver.setExecutorService(executorService);
-        topologyEventReceiver.execute();
+        topologyEventReceiver = TopologyEventReceiver.getInstance();
+        //topologyEventReceiver.setExecutorService(executorService);
+        //topologyEventReceiver.execute();
 
         instanceStatusEventReceiver = new InstanceStatusEventReceiver();
         instanceStatusEventReceiver.setExecutorService(executorService);

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
index d5819dc..95c4867 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonApplicationSignUpEventReceiver.java
@@ -41,19 +41,20 @@ import org.apache.stratos.messaging.message.receiver.application.signup.Applicat
  * Load balancer common application signup event receiver updates the topology in the given topology provider
  * with the hostnames found in application signup events.
  */
-public class LoadBalancerCommonApplicationSignUpEventReceiver extends ApplicationSignUpEventReceiver {
+public class LoadBalancerCommonApplicationSignUpEventReceiver {
 
     private static final Log log = LogFactory.getLog(LoadBalancerCommonApplicationSignUpEventReceiver.class);
-
+    private ApplicationSignUpEventReceiver applicationSignUpEventReceiver;
     private TopologyProvider topologyProvider;
 
     public LoadBalancerCommonApplicationSignUpEventReceiver(TopologyProvider topologyProvider) {
+        this.applicationSignUpEventReceiver = ApplicationSignUpEventReceiver.getInstance();
         this.topologyProvider = topologyProvider;
         addEventListeners();
     }
 
     private void addEventListeners() {
-        addEventListener(new CompleteApplicationSignUpsEventListener() {
+        applicationSignUpEventReceiver.addEventListener(new CompleteApplicationSignUpsEventListener() {
             private boolean initialized = false;
 
             @Override
@@ -96,7 +97,7 @@ public class LoadBalancerCommonApplicationSignUpEventReceiver extends Applicatio
             }
         });
 
-        addEventListener(new ApplicationSignUpAddedEventListener() {
+        applicationSignUpEventReceiver.addEventListener(new ApplicationSignUpAddedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -110,7 +111,7 @@ public class LoadBalancerCommonApplicationSignUpEventReceiver extends Applicatio
             }
         });
 
-        addEventListener(new ApplicationSignUpRemovedEventListener() {
+        applicationSignUpEventReceiver.addEventListener(new ApplicationSignUpRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
index 4fb45a9..85142e3 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
@@ -38,15 +38,17 @@ import java.util.Properties;
  * Load balancer common topology receiver updates the topology in the given topology provider
  * according to topology events.
  */
-public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiver {
+public class LoadBalancerCommonTopologyEventReceiver {
 
     private static final Log log = LogFactory.getLog(LoadBalancerCommonTopologyEventReceiver.class);
 
     private TopologyProvider topologyProvider;
     private boolean initialized;
+    private TopologyEventReceiver topologyEventReceiver;
 
     public LoadBalancerCommonTopologyEventReceiver(TopologyProvider topologyProvider) {
         this.topologyProvider = topologyProvider;
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
         addEventListeners();
     }
 
@@ -57,12 +59,12 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
         }
     }
 
-    public void execute() {
-        super.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Load balancer topology receiver thread started");
-        }
-    }
+//    public void execute() {
+//        super.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Load balancer topology receiver thread started");
+//        }
+//    }
 
     public void initializeTopology() {
         if (initialized) {
@@ -115,7 +117,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
      * Add default event listeners for updating the topology on topology events
      */
     public void addEventListeners() {
-        addEventListener(new CompleteTopologyEventListener() {
+        topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {
             @Override
             protected void onEvent(Event event) {
                 if (!initialized) {
@@ -124,7 +126,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new MemberActivatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
 
@@ -142,11 +144,10 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
                     if (networkPartitionIdFilter != null && !networkPartitionIdFilter.equals("")) {
                         if (memberActivatedEvent.getNetworkPartitionId().equals(networkPartitionIdFilter)) {
                             addMember(serviceName, clusterId, memberId);
-                        }
-                        else{
+                        } else {
                             log.debug(String.format("Member exists in a different network partition." +
-                                    "[member id] %s [member network partition] %s [filter network partition] %s ",
-                                    memberId,memberActivatedEvent.getNetworkPartitionId(),networkPartitionIdFilter));
+                                            "[member id] %s [member network partition] %s [filter network partition] %s ",
+                                    memberId, memberActivatedEvent.getNetworkPartitionId(), networkPartitionIdFilter));
                         }
                     } else {
                         addMember(serviceName, clusterId, memberId);
@@ -159,7 +160,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new MemberMaintenanceListener() {
+        topologyEventReceiver.addEventListener(new MemberMaintenanceListener() {
             @Override
             protected void onEvent(Event event) {
 
@@ -181,7 +182,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new MemberSuspendedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberSuspendedEventListener() {
             @Override
             protected void onEvent(Event event) {
 
@@ -203,7 +204,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new MemberTerminatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
 
@@ -224,7 +225,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new ClusterRemovedEventListener() {
+        topologyEventReceiver.addEventListener(new ClusterRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
 
@@ -253,7 +254,7 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv
             }
         });
 
-        addEventListener(new ServiceRemovedEventListener() {
+        topologyEventReceiver.addEventListener(new ServiceRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/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 ae2b6dd..e7a2071 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
@@ -201,8 +201,6 @@ public class LoadBalancerExtension {
      */
     private void startApplicationSignUpEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
         applicationSignUpEventReceiver = new LoadBalancerCommonApplicationSignUpEventReceiver(topologyProvider);
-        applicationSignUpEventReceiver.setExecutorService(executorService);
-        applicationSignUpEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Application signup event receiver thread started");
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index a7761cd..cb74984 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -186,8 +186,8 @@ public class LoadBalancerServiceComponent {
         }
 
         applicationSignUpEventReceiver = new LoadBalancerCommonApplicationSignUpEventReceiver(topologyProvider);
-        applicationSignUpEventReceiver.setExecutorService(executorService);
-        applicationSignUpEventReceiver.execute();
+//        applicationSignUpEventReceiver.setExecutorService(executorService);
+//        applicationSignUpEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Application signup event receiver thread started");
         }
@@ -266,13 +266,13 @@ public class LoadBalancerServiceComponent {
         }
 
         // Terminate application signup event receiver
-        if (applicationSignUpEventReceiver != null) {
-            try {
-                applicationSignUpEventReceiver.terminate();
-            } catch (Exception e) {
-                log.warn("An error occurred while terminating application signup event receiver", e);
-            }
-        }
+//        if (applicationSignUpEventReceiver != null) {
+//            try {
+//                applicationSignUpEventReceiver.terminate();
+//            } catch (Exception e) {
+//                log.warn("An error occurred while terminating application signup event receiver", e);
+//            }
+//        }
 
         // Terminate domain mapping event receiver
         if (domainMappingEventReceiver != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index 47f401a..76d39a7 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -211,8 +211,8 @@ public class StratosManagerServiceComponent {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = new StratosManagerTopologyEventReceiver();
-        topologyEventReceiver.setExecutorService(executorService);
-        topologyEventReceiver.execute();
+//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.execute();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerTopologyEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerTopologyEventReceiver.java
index 08ca3d6..51b21ac 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerTopologyEventReceiver.java
@@ -23,19 +23,19 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
 
-public class StratosManagerTopologyEventReceiver extends TopologyEventReceiver {
+public class StratosManagerTopologyEventReceiver {
 
     private static final Log log = LogFactory.getLog(StratosManagerTopologyEventReceiver.class);
 
     public StratosManagerTopologyEventReceiver() {
     }
 
-    @Override
-    public void execute() {
-        super.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Stratos manager topology event receiver thread started");
-        }
-    }
+//    @Override
+//    public void execute() {
+//        super.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Stratos manager topology event receiver thread started");
+//        }
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
new file mode 100644
index 0000000..5ac89e6
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.message.receiver;
+
+import java.util.concurrent.ExecutorService;
+
+public class StratosEventReceiver {
+
+    protected ExecutorService executorService;
+
+    public StratosEventReceiver () {
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
index 55e3fd1..dde214d 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
@@ -21,11 +21,13 @@ package org.apache.stratos.messaging.message.receiver.application.signup;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.event.initializer.CompleteApplicationSignUpsRequestEvent;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -33,26 +35,41 @@ import java.util.concurrent.ExecutorService;
 /**
  * Application signup event receiver.
  */
-public class ApplicationSignUpEventReceiver {
+public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
 
     private static final Log log = LogFactory.getLog(ApplicationSignUpEventReceiver.class);
 
     private ApplicationSignUpEventMessageDelegator messageDelegator;
     private ApplicationSignUpEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile ApplicationSignUpEventReceiver instance;
 
-    public ApplicationSignUpEventReceiver() {
+    private ApplicationSignUpEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("application-signup-event-receiver", 100);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static ApplicationSignUpEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (ApplicationSignUpEventReceiver.class) {
+                if (instance == null) {
+                    instance = new ApplicationSignUpEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.APPLICATION_SIGNUP_TOPIC.getTopicName(),
@@ -103,11 +120,11 @@ public class ApplicationSignUpEventReceiver {
         messageDelegator.terminate();
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
 
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
index b841d0a..50e078a 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
@@ -21,11 +21,13 @@ package org.apache.stratos.messaging.message.receiver.topology;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.event.initializer.CompleteTopologyRequestEvent;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -34,26 +36,41 @@ import java.util.concurrent.ExecutorService;
  * A thread for receiving topology information from message broker and
  * build topology in topology manager.
  */
-public class TopologyEventReceiver {
+public class TopologyEventReceiver extends StratosEventReceiver {
 
     private static final Log log = LogFactory.getLog(TopologyEventReceiver.class);
 
     private TopologyEventMessageDelegator messageDelegator;
     private TopologyEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile TopologyEventReceiver instance;
 
-    public TopologyEventReceiver() {
+    private TopologyEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static TopologyEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (TopologyEventReceiver.class) {
+                if (instance == null) {
+                    instance = new TopologyEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.TOPOLOGY_TOPIC.getTopicName(), messageListener);
@@ -101,11 +118,11 @@ public class TopologyEventReceiver {
         });
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5ce932cb/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
index 7b31861..c752f9e 100644
--- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
+++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
@@ -108,7 +108,7 @@ public class MockInstance implements Serializable {
     }
 
     private void startTopologyEventReceiver() {
-        topologyEventReceiver = new TopologyEventReceiver();
+        topologyEventReceiver = TopologyEventReceiver.getInstance();
         topologyEventReceiver.addEventListener(new MemberInitializedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -151,8 +151,8 @@ public class MockInstance implements Serializable {
                 }
             }
         });
-        topologyEventReceiver.setExecutorService(eventListenerExecutorService);
-        topologyEventReceiver.execute();
+//        topologyEventReceiver.setExecutorService(eventListenerExecutorService);
+//        topologyEventReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug(String.format(
                     "Mock instance topology event message receiver started for mock member [member-id] %s",


[13/19] stratos git commit: adding activator class for messaging and calling terminate of event recievers in de-activation of te bundle

Posted by is...@apache.org.
adding activator class for messaging and calling terminate of event recievers in de-activation of te bundle


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

Branch: refs/heads/stratos-4.1.x
Commit: 4c6442ac2072d731781ab4edc9e0c025941ba5d2
Parents: fce0421
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 23:17:57 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 23:17:57 2015 +0530

----------------------------------------------------------------------
 ...LoadBalancerCommonTopologyEventReceiver.java |  7 --
 .../internal/LoadBalancerServiceComponent.java  | 82 ++------------------
 .../internal/MessagingServiceComponent.java     | 66 ++++++++++++++++
 .../status/ClusterStatusEventReceiver.java      |  5 ++
 .../mapping/DomainMappingEventReceiver.java     |  5 ++
 .../health/stat/HealthStatEventReceiver.java    |  5 ++
 6 files changed, 89 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
index 85142e3..93f391f 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
@@ -59,13 +59,6 @@ public class LoadBalancerCommonTopologyEventReceiver {
         }
     }
 
-//    public void execute() {
-//        super.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Load balancer topology receiver thread started");
-//        }
-//    }
-
     public void initializeTopology() {
         if (initialized) {
             return;

http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index 3786af8..b235208 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -25,7 +25,6 @@ import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.common.services.DistributedObjectProvider;
-import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.load.balancer.common.event.receivers.LoadBalancerCommonApplicationSignUpEventReceiver;
 import org.apache.stratos.load.balancer.common.statistics.notifier.LoadBalancerStatisticsNotifier;
 import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
@@ -38,7 +37,6 @@ import org.apache.stratos.load.balancer.event.receivers.LoadBalancerDomainMappin
 import org.apache.stratos.load.balancer.event.receivers.LoadBalancerTopologyEventReceiver;
 import org.apache.stratos.load.balancer.exception.TenantAwareLoadBalanceEndpointException;
 import org.apache.stratos.load.balancer.statistics.LoadBalancerStatisticsCollector;
-import org.apache.stratos.load.balancer.util.LoadBalancerConstants;
 import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
@@ -63,7 +61,6 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
 
 import java.io.File;
 import java.util.Collection;
-import java.util.concurrent.ExecutorService;
 
 /**
  * @scr.component name="org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent" immediate="true"
@@ -90,7 +87,6 @@ public class LoadBalancerServiceComponent {
     private static final Log log = LogFactory.getLog(LoadBalancerServiceComponent.class);
 
     private boolean activated = false;
-    private ExecutorService executorService;
     private LoadBalancerTopologyEventReceiver topologyEventReceiver;
     private TenantEventReceiver tenantEventReceiver;
     private LoadBalancerDomainMappingEventReceiver domainMappingEventReceiver;
@@ -124,11 +120,6 @@ public class LoadBalancerServiceComponent {
             // Configure topology filters
             TopologyFilterConfigurator.configure(configuration);
 
-            int threadPoolSize = Integer.getInteger(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_SIZE_KEY,
-                    LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
-            executorService = StratosThreadPool.getExecutorService(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_ID,
-                    threadPoolSize);
-
             TopologyProvider topologyProvider = LoadBalancerConfiguration.getInstance().getTopologyProvider();
             if (topologyProvider == null) {
                 topologyProvider = new TopologyProvider();
@@ -137,18 +128,18 @@ public class LoadBalancerServiceComponent {
 
             if (configuration.isMultiTenancyEnabled() || configuration.isDomainMappingEnabled()) {
                 // Start tenant & application signup event receivers
-                startTenantEventReceiver(executorService);
-                startApplicationSignUpEventReceiver(executorService, topologyProvider);
+                startTenantEventReceiver();
+                startApplicationSignUpEventReceiver(topologyProvider);
             }
 
             if (configuration.isDomainMappingEnabled()) {
                 // Start domain mapping event receiver
-                startDomainMappingEventReceiver(executorService, topologyProvider);
+                startDomainMappingEventReceiver(topologyProvider);
             }
 
             if (configuration.isTopologyEventListenerEnabled()) {
                 // Start topology receiver
-                startTopologyEventReceiver(executorService, topologyProvider);
+                startTopologyEventReceiver(topologyProvider);
             }
 
             if (configuration.isCepStatsPublisherEnabled()) {
@@ -167,43 +158,28 @@ public class LoadBalancerServiceComponent {
         }
     }
 
-    private void startDomainMappingEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startDomainMappingEventReceiver(TopologyProvider topologyProvider) {
         if (domainMappingEventReceiver != null) {
             return;
         }
 
         domainMappingEventReceiver = new LoadBalancerDomainMappingEventReceiver(topologyProvider);
-//        domainMappingEventReceiver.setExecutorService(executorService);
-//        domainMappingEventReceiver.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Domain mapping event receiver thread started");
-//        }
     }
 
-    private void startApplicationSignUpEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startApplicationSignUpEventReceiver(TopologyProvider topologyProvider) {
         if (applicationSignUpEventReceiver != null) {
             return;
         }
 
         applicationSignUpEventReceiver = new LoadBalancerCommonApplicationSignUpEventReceiver(topologyProvider);
-//        applicationSignUpEventReceiver.setExecutorService(executorService);
-//        applicationSignUpEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Application signup event receiver thread started");
-        }
     }
 
-    private void startTopologyEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startTopologyEventReceiver(TopologyProvider topologyProvider) {
         if (topologyEventReceiver != null) {
             return;
         }
 
         topologyEventReceiver = new LoadBalancerTopologyEventReceiver(topologyProvider);
-//        topologyEventReceiver.setExecutorService(executorService);
-//        topologyEventReceiver.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Topology receiver thread started");
-//        }
 
         if (log.isInfoEnabled()) {
             if (TopologyServiceFilter.getInstance().isActive()) {
@@ -223,14 +199,8 @@ public class LoadBalancerServiceComponent {
         }
     }
 
-    private void startTenantEventReceiver(ExecutorService executorService) {
-
+    private void startTenantEventReceiver() {
         tenantEventReceiver = TenantEventReceiver.getInstance();
-//        tenantEventReceiver.setExecutorService(executorService);
-//        tenantEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Tenant event receiver thread started");
-        }
     }
 
     private void startStatisticsNotifier(TopologyProvider topologyProvider) {
@@ -256,33 +226,6 @@ public class LoadBalancerServiceComponent {
             log.warn("An error occurred while removing endpoint deployer", e);
         }
 
-        // Terminate topology receiver
-//        if (topologyEventReceiver != null) {
-//            try {
-//                topologyEventReceiver.terminate();
-//            } catch (Exception e) {
-//                log.warn("An error occurred while terminating topology event receiver", e);
-//            }
-//        }
-
-        // Terminate application signup event receiver
-//        if (applicationSignUpEventReceiver != null) {
-//            try {
-//                applicationSignUpEventReceiver.terminate();
-//            } catch (Exception e) {
-//                log.warn("An error occurred while terminating application signup event receiver", e);
-//            }
-//        }
-
-        // Terminate domain mapping event receiver
-//        if (domainMappingEventReceiver != null) {
-//            try {
-//                domainMappingEventReceiver.terminate();
-//            } catch (Exception e) {
-//                log.warn("An error occurred while terminating domain mapping event receiver", e);
-//            }
-//        }
-
         // Terminate statistics notifier
         if (statisticsNotifier != null) {
             try {
@@ -291,15 +234,6 @@ public class LoadBalancerServiceComponent {
                 log.warn("An error occurred while terminating health statistics notifier", e);
             }
         }
-
-        // Shutdown executor service
-        if (executorService != null) {
-            try {
-                executorService.shutdownNow();
-            } catch (Exception e) {
-                log.warn("An error occurred while shutting down load balancer executor service", e);
-            }
-        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
new file mode 100644
index 0000000..c97125b
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.internal;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
+import org.apache.stratos.messaging.message.receiver.application.signup.ApplicationSignUpEventReceiver;
+import org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventReceiver;
+import org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappingEventReceiver;
+import org.apache.stratos.messaging.message.receiver.health.stat.HealthStatEventReceiver;
+import org.apache.stratos.messaging.message.receiver.initializer.InitializerEventReceiver;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantEventReceiver;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
+import org.osgi.service.component.ComponentContext;
+
+/**
+ * @scr.component name="org.apache.stratos.messaging.internal.MessagingServiceComponent"
+ * immediate="true"
+ */
+public class MessagingServiceComponent {
+
+    private static final Log log = LogFactory.getLog(MessagingServiceComponent.class);
+
+    protected void activate(ComponentContext context) {
+        try {
+            log.info("Messaging Service bundle activated");
+        } catch (Exception e) {
+            log.error("Could not activate Messaging Service component", e);
+        }
+    }
+
+    protected void deactivate(ComponentContext context) {
+        // deactivate all message receivers
+        try {
+            ApplicationSignUpEventReceiver.getInstance().terminate();
+            ApplicationsEventReceiver.getInstance().terminate();
+            ClusterStatusEventReceiver.getInstance().terminate();
+            DomainMappingEventReceiver.getInstance().terminate();
+            HealthStatEventReceiver.getInstance().terminate();
+            InitializerEventReceiver.getInstance().terminate();
+            TenantEventReceiver.getInstance().terminate();
+            TopologyEventReceiver.getInstance().terminate();
+            log.info("Messaging Service component is deactivated");
+        } catch (Exception e) {
+            log.error("Could not de-activate Messaging Service component", e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
index e191799..be42b43 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
@@ -87,6 +87,11 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
         }
     }
 
+    public void terminate() {
+        eventSubscriber.terminate();
+        messageDelegator.terminate();
+    }
+
     public boolean isSubscribed() {
         return ((eventSubscriber != null) && (eventSubscriber.isSubscribed()));
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 4e4c04b..6de99c0 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -64,6 +64,11 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
         return instance;
     }
 
+    public void terminate() {
+        eventSubscriber.terminate();
+        messageDelegator.terminate();
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread

http://git-wip-us.apache.org/repos/asf/stratos/blob/4c6442ac/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
index ba124a7..a9d2602 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
@@ -82,4 +82,9 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
             }
         }
     }
+
+    public void terminate() {
+        eventSubscriber.terminate();
+        messageDelegator.terminate();
+    }
 }


[12/19] stratos git commit: deleting some commented out methods

Posted by is...@apache.org.
deleting some commented out methods


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

Branch: refs/heads/stratos-4.1.x
Commit: fce0421a82a7ad9b34061b76f280e8c958792c77
Parents: 35bec3c
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 21:39:47 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 21:39:47 2015 +0530

----------------------------------------------------------------------
 .../application/ApplicationsEventReceiver.java      | 10 ----------
 .../signup/ApplicationSignUpEventReceiver.java      | 10 ----------
 .../cluster/status/ClusterStatusEventReceiver.java  | 15 ---------------
 .../domain/mapping/DomainMappingEventReceiver.java  |  2 --
 .../health/stat/HealthStatEventReceiver.java        | 16 ----------------
 .../initializer/InitializerEventReceiver.java       |  8 --------
 .../notifier/InstanceNotifierEventReceiver.java     |  5 +----
 .../status/InstanceStatusEventReceiver.java         |  8 --------
 .../receiver/tenant/TenantEventReceiver.java        |  6 ------
 .../receiver/topology/TopologyEventReceiver.java    |  2 --
 10 files changed, 1 insertion(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/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 e94bafd..69dba01 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
@@ -29,8 +29,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 public class ApplicationsEventReceiver extends StratosEventReceiver{
     private static final Log log = LogFactory.getLog(ApplicationsEventReceiver.class);
 
@@ -117,12 +115,4 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
             }
         });
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
index dde214d..df90cf9 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
@@ -30,8 +30,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * Application signup event receiver.
  */
@@ -119,12 +117,4 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
         eventSubscriber.terminate();
         messageDelegator.terminate();
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
index 2b4d557..e191799 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
@@ -27,7 +27,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
 
 /**
  * A thread for receiving instance notifier information from message broker.
@@ -91,18 +90,4 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     public boolean isSubscribed() {
         return ((eventSubscriber != null) && (eventSubscriber.isSubscribed()));
     }
-
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//        terminated = true;
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index a37941c..4e4c04b 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -27,8 +27,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * Domain mapping event receiver.
  */

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
index ede8f17..ba124a7 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
@@ -27,8 +27,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * A thread for receiving health stat information from message broker
  */
@@ -84,18 +82,4 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
             }
         }
     }
-
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//        terminated = true;
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
index e6429e2..805a8bf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
@@ -85,12 +85,4 @@ public class InitializerEventReceiver extends StratosEventReceiver {
         eventSubscriber.terminate();
         messageDelegator.terminate();
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
index 33f5de8..e0b8e9f 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
@@ -43,10 +43,7 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
         this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
-        messageListener = new InstanceNotifierEventMessageListener(messageQueue);
-        // Start topic subscriber thread
-        eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName(),
-                messageListener);
+        this.messageListener = new InstanceNotifierEventMessageListener(messageQueue);
         execute();
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index a2a1623..a565ea9 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -93,12 +93,4 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
         messageDelegator.terminate();
        // terminated = true;
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
index 1c519b9..a52cb20 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
@@ -30,8 +30,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * A thread for receiving tenant information from message broker and
  * build tenant information in tenant manager.
@@ -68,10 +66,6 @@ public class TenantEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
-
     private void execute() {
         try {
             // Start topic subscriber thread

http://git-wip-us.apache.org/repos/asf/stratos/blob/fce0421a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
index 8378486..bfa3950 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
@@ -30,8 +30,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * A thread for receiving topology information from message broker and
  * build topology in topology manager.


[02/19] stratos git commit: making TopologyEventReceiver a singleton and fixing references

Posted by is...@apache.org.
making TopologyEventReceiver a singleton and fixing references


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

Branch: refs/heads/stratos-4.1.x
Commit: 20560136a3ae5ca85959c4da9d544485837be4e5
Parents: 5ce932c
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 17:28:00 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:33:49 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerTopologyEventReceiver.java        | 24 +++----
 .../internal/AutoscalerServiceComponent.java    | 18 ++---
 .../stratos/cartridge/agent/CartridgeAgent.java | 28 ++++----
 .../agent/CartridgeAgentEventListeners.java     | 72 ++++++++++----------
 .../extension/api/LoadBalancerExtension.java    | 33 ++++-----
 .../internal/LoadBalancerServiceComponent.java  | 24 +++----
 .../service/MetadataTopologyEventReceiver.java  | 35 +++++-----
 .../service/registry/MetadataApiRegistry.java   |  8 +--
 .../cep/extension/CEPTopologyEventReceiver.java | 20 +++---
 .../extension/FaultHandlingWindowProcessor.java | 10 +--
 .../cep/extension/CEPTopologyEventReceiver.java | 20 +++---
 .../extension/FaultHandlingWindowProcessor.java | 10 +--
 .../tests/PythonAgentIntegrationTest.java       |  6 +-
 .../integration/common/TopologyHandler.java     | 12 ++--
 14 files changed, 163 insertions(+), 157 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 6fd64a7..daa70ae 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -510,16 +510,16 @@ public class AutoscalerTopologyEventReceiver {
     /**
      * Terminate load balancer topology receiver thread.
      */
-    public void terminate() {
-        topologyEventReceiver.terminate();
-        terminated = true;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void terminate() {
+//        topologyEventReceiver.terminate();
+//        terminated = true;
+//    }
+//
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
index 76844a0..4d4c54f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
@@ -173,8 +173,8 @@ public class AutoscalerServiceComponent {
 
         // Start topology receiver
         asTopologyReceiver = new AutoscalerTopologyEventReceiver();
-        asTopologyReceiver.setExecutorService(executorService);
-        asTopologyReceiver.execute();
+//        asTopologyReceiver.setExecutorService(executorService);
+        //asTopologyReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug("Topology receiver executor service started");
         }
@@ -245,13 +245,13 @@ public class AutoscalerServiceComponent {
     }
 
     protected void deactivate(ComponentContext context) {
-        if (asTopologyReceiver != null) {
-            try {
-                asTopologyReceiver.terminate();
-            } catch (Exception e) {
-                log.warn("An error occurred while terminating autoscaler topology event receiver", e);
-            }
-        }
+//        if (asTopologyReceiver != null) {
+//            try {
+//                asTopologyReceiver.terminate();
+//            } catch (Exception e) {
+//                log.warn("An error occurred while terminating autoscaler topology event receiver", e);
+//            }
+//        }
 
         if (autoscalerHealthStatEventReceiver != null) {
             try {

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
index 18e6e0a..b0bf326 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
@@ -60,10 +60,10 @@ public class CartridgeAgent implements Runnable {
         }
 
         // Start topology event receiver thread
-        registerTopologyEventListeners();
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent registerTopologyEventListeners done");
-        }
+//        registerTopologyEventListeners();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent registerTopologyEventListeners done");
+//        }
 
         if (log.isInfoEnabled()) {
             log.info("Waiting for CompleteTopologyEvent..");
@@ -186,16 +186,16 @@ public class CartridgeAgent implements Runnable {
         }
     }
 
-    protected void registerTopologyEventListeners() {
-        if (log.isDebugEnabled()) {
-            log.debug("registerTopologyEventListeners before");
-        }
-        eventListenerns.startTopologyEventReceiver();
-
-        if (log.isDebugEnabled()) {
-            log.debug("registerTopologyEventListeners after");
-        }
-    }
+//    protected void registerTopologyEventListeners() {
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerTopologyEventListeners before");
+//        }
+//        eventListenerns.startTopologyEventReceiver();
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("registerTopologyEventListeners after");
+//        }
+//    }
 
 //    protected void registerTenantEventListeners() {
 //        if (log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
index 103d2c7..1d64ff0 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
@@ -94,24 +94,24 @@ public class CartridgeAgentEventListeners {
         }
     }
 
-    public void startTopologyEventReceiver() {
-
-        if (log.isDebugEnabled()) {
-            log.debug("Starting cartridge agent topology event message receiver");
-        }
-
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                topologyEventReceiver.execute();
-            }
-        });
-
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent topology receiver thread started, waiting for event messages ...");
-        }
-
-    }
+//    public void startTopologyEventReceiver() {
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("Starting cartridge agent topology event message receiver");
+//        }
+//
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                topologyEventReceiver.execute();
+//            }
+//        });
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent topology receiver thread started, waiting for event messages ...");
+//        }
+//
+//    }
 
     public void startInstanceNotifierReceiver() {
 
@@ -131,24 +131,24 @@ public class CartridgeAgentEventListeners {
         }
     }
 
-    public void startTenantEventReceiver() {
-
-        if (log.isDebugEnabled()) {
-            log.debug("Starting cartridge agent tenant event message receiver");
-        }
-
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                topologyEventReceiver.execute();
-            }
-        });
-
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent tenant receiver thread started, waiting for event messages ...");
-        }
-
-    }
+//    public void startTenantEventReceiver() {
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("Starting cartridge agent tenant event message receiver");
+//        }
+//
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                topologyEventReceiver.execute();
+//            }
+//        });
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent tenant receiver thread started, waiting for event messages ...");
+//        }
+//
+//    }
 
 //    public void startApplicationsEventReceiver() {
 //

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/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 e7a2071..d2a8cb3 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
@@ -39,6 +39,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
 import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
 import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
 
 import java.util.concurrent.ExecutorService;
 
@@ -123,8 +124,8 @@ public class LoadBalancerExtension {
         addTopologyEventListeners(topologyEventReceiver);
         // Add default topology provider event listeners
         topologyEventReceiver.addEventListeners();
-        topologyEventReceiver.setExecutorService(executorService);
-        topologyEventReceiver.execute();
+//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Topology receiver thread started");
         }
@@ -212,12 +213,12 @@ public class LoadBalancerExtension {
      * @param topologyEventReceiver topology event receiver instance
      */
     private void addTopologyEventListeners(final LoadBalancerCommonTopologyEventReceiver topologyEventReceiver) {
-        topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new CompleteTopologyEventListener() {
 
             @Override
             protected void onEvent(Event event) {
                 try {
-                  if (!loadBalancerStarted) {
+                    if (!loadBalancerStarted) {
                         configureAndStart();
                     }
                 } catch (Exception e) {
@@ -228,37 +229,37 @@ public class LoadBalancerExtension {
                 }
             }
         });
-        topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
-        topologyEventReceiver.addEventListener(new MemberSuspendedEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new MemberSuspendedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
-        topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
-        topologyEventReceiver.addEventListener(new ClusterRemovedEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new ClusterRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
-        topologyEventReceiver.addEventListener(new ServiceRemovedEventListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new ServiceRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
-        topologyEventReceiver.addEventListener(new MemberMaintenanceListener() {
+        TopologyEventReceiver.getInstance().addEventListener(new MemberMaintenanceListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
@@ -338,12 +339,12 @@ public class LoadBalancerExtension {
      * Stop load balancer instance.
      */
     public void stop() {
-        try {
-            if (topologyEventReceiver != null) {
-                topologyEventReceiver.terminate();
-            }
-        } catch (Exception ignore) {
-        }
+//        try {
+//            if (topologyEventReceiver != null) {
+//                topologyEventReceiver.terminate();
+//            }
+//        } catch (Exception ignore) {
+//        }
 
         try {
             if (statisticsNotifier != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index cb74984..442686a 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -199,11 +199,11 @@ public class LoadBalancerServiceComponent {
         }
 
         topologyEventReceiver = new LoadBalancerTopologyEventReceiver(topologyProvider);
-        topologyEventReceiver.setExecutorService(executorService);
-        topologyEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Topology receiver thread started");
-        }
+//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Topology receiver thread started");
+//        }
 
         if (log.isInfoEnabled()) {
             if (TopologyServiceFilter.getInstance().isActive()) {
@@ -257,13 +257,13 @@ public class LoadBalancerServiceComponent {
         }
 
         // Terminate topology receiver
-        if (topologyEventReceiver != null) {
-            try {
-                topologyEventReceiver.terminate();
-            } catch (Exception e) {
-                log.warn("An error occurred while terminating topology event receiver", e);
-            }
-        }
+//        if (topologyEventReceiver != null) {
+//            try {
+//                topologyEventReceiver.terminate();
+//            } catch (Exception e) {
+//                log.warn("An error occurred while terminating topology event receiver", e);
+//            }
+//        }
 
         // Terminate application signup event receiver
 //        if (applicationSignUpEventReceiver != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
index e516271..f16282d 100644
--- a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
+++ b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
@@ -41,8 +41,9 @@ public class MetadataTopologyEventReceiver {
     private ExecutorService executorService;
 
     public MetadataTopologyEventReceiver() {
-        this.topologyEventReceiver = new TopologyEventReceiver();
-        executorService = StratosThreadPool.getExecutorService(Constants.METADATA_SERVICE_THREAD_POOL_ID, 20);
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
+//        //executorService = StratosThreadPool.getExecutorService(Constants
+//                .METADATA_SERVICE_THREAD_POOL_ID, 20);
         addEventListeners();
     }
 
@@ -67,21 +68,21 @@ public class MetadataTopologyEventReceiver {
         });
     }
 
-    public void execute() {
-        topologyEventReceiver.setExecutorService(getExecutorService());
-        topologyEventReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Metadata service topology receiver started.");
-        }
-    }
-
-    public void terminate() {
-        topologyEventReceiver.terminate();
-        if (log.isInfoEnabled()) {
-            log.info("Metadata service topology receiver stopped.");
-        }
-    }
+//    public void execute() {
+//        topologyEventReceiver.setExecutorService(getExecutorService());
+//        topologyEventReceiver.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Metadata service topology receiver started.");
+//        }
+//    }
+//
+//    public void terminate() {
+//        topologyEventReceiver.terminate();
+//        if (log.isInfoEnabled()) {
+//            log.info("Metadata service topology receiver stopped.");
+//        }
+//    }
 
     public ExecutorService getExecutorService() {
         return executorService;

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
index 75ddbc7..47fc600 100644
--- a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
+++ b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
@@ -56,7 +56,7 @@ public class MetadataApiRegistry implements DataStore {
 
     public MetadataApiRegistry() {
         metadataTopologyEventReceiver = new MetadataTopologyEventReceiver();
-        metadataTopologyEventReceiver.execute();
+//        metadataTopologyEventReceiver.execute();
 
         metadataApplicationEventReceiver = new MetadataApplicationEventReceiver();
         metadataApplicationEventReceiver.execute();
@@ -417,9 +417,9 @@ public class MetadataApiRegistry implements DataStore {
         return applicationIdToReadWriteLockMap;
     }
 
-    public void stopTopologyReceiver() {
-        metadataTopologyEventReceiver.terminate();
-    }
+//    public void stopTopologyReceiver() {
+//        metadataTopologyEventReceiver.terminate();
+//    }
 
     public void stopApplicationReceiver() {
         metadataApplicationEventReceiver.terminate();

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
index 59c70c5..2696271 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
@@ -34,26 +34,28 @@ import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 /**
  * CEP Topology Receiver for Fault Handling Window Processor.
  */
-public class CEPTopologyEventReceiver extends TopologyEventReceiver {
+public class CEPTopologyEventReceiver {
 
     private static final Log log = LogFactory.getLog(CEPTopologyEventReceiver.class);
 
     private FaultHandlingWindowProcessor faultHandler;
+    private TopologyEventReceiver topologyEventReceiver;
 
     public CEPTopologyEventReceiver(FaultHandlingWindowProcessor faultHandler) {
         this.faultHandler = faultHandler;
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
         addEventListeners();
     }
 
-    @Override
-    public void execute() {
-        super.execute();
-        log.info("CEP topology event receiver thread started");
-    }
+//    @Override
+//    public void execute() {
+//        super.execute();
+//        log.info("CEP topology event receiver thread started");
+//    }
 
     private void addEventListeners() {
         // Load member time stamp map from the topology as a one time task
-        addEventListener(new CompleteTopologyEventListener() {
+        topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {
             private boolean initialized;
 
             @Override
@@ -74,7 +76,7 @@ public class CEPTopologyEventReceiver extends TopologyEventReceiver {
         });
 
         // Remove member from the time stamp map when MemberTerminated event is received.
-        addEventListener(new MemberTerminatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 MemberTerminatedEvent memberTerminatedEvent = (MemberTerminatedEvent) event;
@@ -84,7 +86,7 @@ public class CEPTopologyEventReceiver extends TopologyEventReceiver {
         });
 
         // Add member to time stamp map whenever member is activated
-        addEventListener(new MemberActivatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 MemberActivatedEvent memberActivatedEvent = (MemberActivatedEvent) event;

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
index 0526f6a..9e98288 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
@@ -286,10 +286,10 @@ public class FaultHandlingWindowProcessor extends WindowProcessor implements Run
         MemberFaultEventMap
                 .put("org.apache.stratos.messaging.event.health.stat.MemberFaultEvent", memberFaultEventMessageMap);
 
-        executorService = StratosThreadPool
-                .getExecutorService(CEP_EXTENSION_THREAD_POOL_KEY, CEP_EXTENSION_THREAD_POOL_SIZE);
-        cepTopologyEventReceiver.setExecutorService(executorService);
-        cepTopologyEventReceiver.execute();
+//        executorService = StratosThreadPool
+//                .getExecutorService(CEP_EXTENSION_THREAD_POOL_KEY, CEP_EXTENSION_THREAD_POOL_SIZE);
+//        cepTopologyEventReceiver.setExecutorService(executorService);
+//        cepTopologyEventReceiver.execute();
 
         //Ordinary scheduling
         window.schedule();
@@ -329,7 +329,7 @@ public class FaultHandlingWindowProcessor extends WindowProcessor implements Run
     @Override
     public void destroy() {
         // terminate topology listener thread
-        cepTopologyEventReceiver.terminate();
+//        cepTopologyEventReceiver.terminate();
         window = null;
 
         // Shutdown executor service

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
index 59c70c5..2696271 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/CEPTopologyEventReceiver.java
@@ -34,26 +34,28 @@ import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 /**
  * CEP Topology Receiver for Fault Handling Window Processor.
  */
-public class CEPTopologyEventReceiver extends TopologyEventReceiver {
+public class CEPTopologyEventReceiver {
 
     private static final Log log = LogFactory.getLog(CEPTopologyEventReceiver.class);
 
     private FaultHandlingWindowProcessor faultHandler;
+    private TopologyEventReceiver topologyEventReceiver;
 
     public CEPTopologyEventReceiver(FaultHandlingWindowProcessor faultHandler) {
         this.faultHandler = faultHandler;
+        this.topologyEventReceiver = TopologyEventReceiver.getInstance();
         addEventListeners();
     }
 
-    @Override
-    public void execute() {
-        super.execute();
-        log.info("CEP topology event receiver thread started");
-    }
+//    @Override
+//    public void execute() {
+//        super.execute();
+//        log.info("CEP topology event receiver thread started");
+//    }
 
     private void addEventListeners() {
         // Load member time stamp map from the topology as a one time task
-        addEventListener(new CompleteTopologyEventListener() {
+        topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {
             private boolean initialized;
 
             @Override
@@ -74,7 +76,7 @@ public class CEPTopologyEventReceiver extends TopologyEventReceiver {
         });
 
         // Remove member from the time stamp map when MemberTerminated event is received.
-        addEventListener(new MemberTerminatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 MemberTerminatedEvent memberTerminatedEvent = (MemberTerminatedEvent) event;
@@ -84,7 +86,7 @@ public class CEPTopologyEventReceiver extends TopologyEventReceiver {
         });
 
         // Add member to time stamp map whenever member is activated
-        addEventListener(new MemberActivatedEventListener() {
+        topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 MemberActivatedEvent memberActivatedEvent = (MemberActivatedEvent) event;

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
index 2fdce19..c3951e4 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/src/main/java/org/apache/stratos/cep/extension/FaultHandlingWindowProcessor.java
@@ -279,10 +279,10 @@ public class FaultHandlingWindowProcessor extends WindowProcessor implements Run
         MemberFaultEventMap
                 .put("org.apache.stratos.messaging.event.health.stat.MemberFaultEvent", memberFaultEventMessageMap);
 
-        executorService = StratosThreadPool
-                .getExecutorService(CEP_EXTENSION_THREAD_POOL_KEY, CEP_EXTENSION_THREAD_POOL_SIZE);
-        cepTopologyEventReceiver.setExecutorService(executorService);
-        cepTopologyEventReceiver.execute();
+//        executorService = StratosThreadPool
+//                .getExecutorService(CEP_EXTENSION_THREAD_POOL_KEY, CEP_EXTENSION_THREAD_POOL_SIZE);
+//        cepTopologyEventReceiver.setExecutorService(executorService);
+//        cepTopologyEventReceiver.execute();
 
         //Ordinary scheduling
         window.schedule();
@@ -322,7 +322,7 @@ public class FaultHandlingWindowProcessor extends WindowProcessor implements Run
     @Override
     public void destroy() {
         // terminate topology listener thread
-        cepTopologyEventReceiver.terminate();
+//        cepTopologyEventReceiver.terminate();
         window = null;
 
         // Shutdown executor service

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
index 649430f..f31583c 100644
--- a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
+++ b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
@@ -124,9 +124,9 @@ public abstract class PythonAgentIntegrationTest {
         }
 
         ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", testThreadPoolSize);
-        topologyEventReceiver = new TopologyEventReceiver();
-        topologyEventReceiver.setExecutorService(executorService);
-        topologyEventReceiver.execute();
+        topologyEventReceiver = TopologyEventReceiver.getInstance();
+//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.execute();
 
         instanceStatusEventReceiver = new InstanceStatusEventReceiver();
         instanceStatusEventReceiver.setExecutorService(executorService);

http://git-wip-us.apache.org/repos/asf/stratos/blob/20560136/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java b/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
index a0cc928..5a199c7 100644
--- a/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
+++ b/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
@@ -108,9 +108,9 @@ public class TopologyHandler {
     }
 
     private void initializeApplicationSignUpEventReceiver() {
-        applicationSignUpEventReceiver = new ApplicationSignUpEventReceiver();
-        applicationSignUpEventReceiver.setExecutorService(executorService);
-        applicationSignUpEventReceiver.execute();
+        applicationSignUpEventReceiver = ApplicationSignUpEventReceiver.getInstance();
+//        applicationSignUpEventReceiver.setExecutorService(executorService);
+//        applicationSignUpEventReceiver.execute();
     }
 
     private void initializeTenantEventReceiver() {
@@ -171,8 +171,8 @@ public class TopologyHandler {
      * Initialize Topology event receiver
      */
     private void initializeTopologyEventReceiver() {
-        topologyEventReceiver = new TopologyEventReceiver();
-        topologyEventReceiver.setExecutorService(executorService);
+        topologyEventReceiver = TopologyEventReceiver.getInstance();
+//        topologyEventReceiver.setExecutorService(executorService);
         topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -206,7 +206,7 @@ public class TopologyHandler {
                         clusterInstanceInactivateEvent.getClusterId()));
             }
         });
-        topologyEventReceiver.execute();
+        //topologyEventReceiver.execute();
     }
 
     /**


[05/19] stratos git commit: making HealthStatEventReceiver singleton and fixing references in components

Posted by is...@apache.org.
making HealthStatEventReceiver singleton and fixing references in components


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

Branch: refs/heads/stratos-4.1.x
Commit: f688296de75cd74e1cd47f44ae7f352f733f16ae
Parents: fd39cae
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:09:04 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:34:28 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerHealthStatEventReceiver.java      | 18 +++----
 .../internal/AutoscalerServiceComponent.java    |  4 +-
 .../health/stat/HealthStatEventReceiver.java    | 52 +++++++++++++-------
 3 files changed, 45 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f688296d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
index b8482f0..0b13500 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
@@ -45,18 +45,18 @@ public class AutoscalerHealthStatEventReceiver {
     private ExecutorService executorService;
 
     public AutoscalerHealthStatEventReceiver() {
-        this.healthStatEventReceiver = new HealthStatEventReceiver();
+        this.healthStatEventReceiver = HealthStatEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        healthStatEventReceiver.setExecutorService(executorService);
-        healthStatEventReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Autoscaler health stat event receiver thread started");
-        }
-    }
+//    public void execute() {
+//        healthStatEventReceiver.setExecutorService(executorService);
+//        healthStatEventReceiver.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Autoscaler health stat event receiver thread started");
+//        }
+//    }
 
     private void addEventListeners() {
         // Listen to health stat events that affect clusters

http://git-wip-us.apache.org/repos/asf/stratos/blob/f688296d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
index ba7c341..bb28577 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
@@ -181,8 +181,8 @@ public class AutoscalerServiceComponent {
 
         // Start health stat receiver
         autoscalerHealthStatEventReceiver = new AutoscalerHealthStatEventReceiver();
-        autoscalerHealthStatEventReceiver.setExecutorService(executorService);
-        autoscalerHealthStatEventReceiver.execute();
+//        autoscalerHealthStatEventReceiver.setExecutorService(executorService);
+//        autoscalerHealthStatEventReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug("Health statistics receiver thread started");
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f688296d/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
index e73a326..ede8f17 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
@@ -21,8 +21,10 @@ package org.apache.stratos.messaging.message.receiver.health.stat;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -30,19 +32,33 @@ import java.util.concurrent.ExecutorService;
 /**
  * A thread for receiving health stat information from message broker
  */
-public class HealthStatEventReceiver {
+public class HealthStatEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(HealthStatEventReceiver.class);
 
     private final HealthStatEventMessageDelegator messageDelegator;
     private final HealthStatEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private boolean terminated;
-    private ExecutorService executorService;
+    private static volatile HealthStatEventReceiver instance;
 
-    public HealthStatEventReceiver() {
+    private HealthStatEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("healthstat-event-receiver", 100);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static HealthStatEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (HealthStatEventReceiver.class) {
+                if (instance == null) {
+                    instance = new HealthStatEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
@@ -50,7 +66,7 @@ public class HealthStatEventReceiver {
     }
 
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.HEALTH_STAT_TOPIC.getTopicName(), messageListener);
@@ -69,17 +85,17 @@ public class HealthStatEventReceiver {
         }
     }
 
-    public void terminate() {
-        eventSubscriber.terminate();
-        messageDelegator.terminate();
-        terminated = true;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void terminate() {
+//        eventSubscriber.terminate();
+//        messageDelegator.terminate();
+//        terminated = true;
+//    }
+//
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }


[03/19] stratos git commit: making TenantEventReceiver a singleton and fixing the references in the components

Posted by is...@apache.org.
making TenantEventReceiver a singleton and fixing the references in the components


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

Branch: refs/heads/stratos-4.1.x
Commit: 3de2c07396f383d5f7d439371f6f6577e381574e
Parents: 2056013
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 17:49:15 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:34:06 2015 +0530

----------------------------------------------------------------------
 .../agent/CartridgeAgentEventListeners.java     |  4 +--
 .../internal/LoadBalancerServiceComponent.java  |  6 ++--
 .../receiver/tenant/TenantEventReceiver.java    | 31 +++++++++++++++-----
 3 files changed, 29 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/3de2c073/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
index 1d64ff0..ffa3750 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
@@ -79,8 +79,8 @@ public class CartridgeAgentEventListeners {
 
         this.instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
 
-        this.tenantEventReceiver = new TenantEventReceiver();
-        this.tenantEventReceiver.setExecutorService(eventListenerExecutorService);
+        this.tenantEventReceiver = TenantEventReceiver.getInstance();
+//        this.tenantEventReceiver.setExecutorService(eventListenerExecutorService);
 
         extensionHandler = new DefaultExtensionHandler();
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/3de2c073/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index 442686a..e772322 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -225,9 +225,9 @@ public class LoadBalancerServiceComponent {
 
     private void startTenantEventReceiver(ExecutorService executorService) {
 
-        tenantEventReceiver = new TenantEventReceiver();
-        tenantEventReceiver.setExecutorService(executorService);
-        tenantEventReceiver.execute();
+        tenantEventReceiver = TenantEventReceiver.getInstance();
+//        tenantEventReceiver.setExecutorService(executorService);
+//        tenantEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Tenant event receiver thread started");
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3de2c073/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
index 988a2ce..1c519b9 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
@@ -21,11 +21,13 @@ package org.apache.stratos.messaging.message.receiver.tenant;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.event.initializer.CompleteTenantRequestEvent;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -34,28 +36,43 @@ import java.util.concurrent.ExecutorService;
  * A thread for receiving tenant information from message broker and
  * build tenant information in tenant manager.
  */
-public class TenantEventReceiver {
+public class TenantEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(TenantEventReceiver.class);
     private TenantEventMessageDelegator messageDelegator;
     private TenantEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile TenantEventReceiver instance;
 
-    public TenantEventReceiver() {
+    private TenantEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("tenant-event-receiver", 100);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static TenantEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (TenantEventReceiver.class) {
+                if (instance == null) {
+                    instance = new TenantEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.TENANT_TOPIC.getTopicName(), messageListener);


[10/19] stratos git commit: removing unused methods

Posted by is...@apache.org.
removing unused methods

Conflicts:
	components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
	components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
	components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
	components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
	components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
	components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
	components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
	components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java


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

Branch: refs/heads/stratos-4.1.x
Commit: 3bb9de92b4dc4cb0316ff5b0c0bd176f111aa93c
Parents: 82980e6
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 8 07:32:06 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 14:51:45 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerHealthStatEventReceiver.java      | 10 ++-
 .../AutoscalerInitializerTopicReceiver.java     | 17 -----
 .../AutoscalerTopologyEventReceiver.java        | 17 -----
 .../internal/AutoscalerServiceComponent.java    | 67 +-------------------
 .../CloudControllerServiceComponent.java        | 59 -----------------
 .../application/ApplicationEventReceiver.java   | 13 ----
 .../StratosManagerServiceComponent.java         | 16 +++++
 .../mapping/DomainMappingEventReceiver.java     | 13 ----
 .../notifier/InstanceNotifierEventReceiver.java | 36 -----------
 .../status/InstanceStatusEventReceiver.java     |  4 ++
 .../tests/PythonAgentIntegrationTest.java       |  7 +-
 .../integration/common/TopologyHandler.java     | 12 +---
 12 files changed, 37 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
index 0b13500..55dc1fa 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
@@ -39,16 +39,19 @@ import java.util.concurrent.ExecutorService;
 public class AutoscalerHealthStatEventReceiver {
 
     private static final Log log = LogFactory.getLog(AutoscalerHealthStatEventReceiver.class);
-    private boolean terminated = false;
 
     private HealthStatEventReceiver healthStatEventReceiver;
+<<<<<<< HEAD
     private ExecutorService executorService;
+=======
+>>>>>>> d4b35c0... removing unused methods
 
     public AutoscalerHealthStatEventReceiver() {
         this.healthStatEventReceiver = HealthStatEventReceiver.getInstance();
         addEventListeners();
     }
 
+<<<<<<< HEAD
 //    public void execute() {
 //        healthStatEventReceiver.setExecutorService(executorService);
 //        healthStatEventReceiver.execute();
@@ -58,6 +61,8 @@ public class AutoscalerHealthStatEventReceiver {
 //        }
 //    }
 
+=======
+>>>>>>> d4b35c0... removing unused methods
     private void addEventListeners() {
         // Listen to health stat events that affect clusters
         healthStatEventReceiver.addEventListener(new AverageLoadAverageEventListener() {
@@ -475,6 +480,7 @@ public class AutoscalerHealthStatEventReceiver {
             TopologyManager.releaseReadLock();
         }
     }
+<<<<<<< HEAD
 
     public void terminate() {
         this.terminated = true;
@@ -487,4 +493,6 @@ public class AutoscalerHealthStatEventReceiver {
     public void setExecutorService(ExecutorService executorService) {
         this.executorService = executorService;
     }
+=======
+>>>>>>> d4b35c0... removing unused methods
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
index b330211..33b93ed 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
@@ -31,21 +31,12 @@ import java.util.concurrent.ExecutorService;
 public class AutoscalerInitializerTopicReceiver {
     private static final Log log = LogFactory.getLog(AutoscalerInitializerTopicReceiver.class);
     private InitializerEventReceiver initializerEventReceiver;
-    private ExecutorService executorService;
 
     public AutoscalerInitializerTopicReceiver() {
         this.initializerEventReceiver = InitializerEventReceiver.getInstance();
         addEventListeners();
     }
 
-//    public void execute() {
-//        initializerEventReceiver.setExecutorService(executorService);
-//        initializerEventReceiver.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Cloud controller initializer topic receiver started");
-//        }
-//    }
-
     private void addEventListeners() {
         initializerEventReceiver.addEventListener(new CompleteApplicationsRequestEventListener() {
             @Override
@@ -61,12 +52,4 @@ public class AutoscalerInitializerTopicReceiver {
             }
         });
     }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index daa70ae..e2b417e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -55,7 +55,6 @@ import java.util.concurrent.ExecutorService;
 public class AutoscalerTopologyEventReceiver {
     private static final Log log = LogFactory.getLog(AutoscalerTopologyEventReceiver.class);
     private TopologyEventReceiver topologyEventReceiver;
-    private boolean terminated;
     private boolean topologyInitialized;
     private ExecutorService executorService;
 
@@ -506,20 +505,4 @@ public class AutoscalerTopologyEventReceiver {
             }
         });
     }
-
-    /**
-     * Terminate load balancer topology receiver thread.
-     */
-//    public void terminate() {
-//        topologyEventReceiver.terminate();
-//        terminated = true;
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
index bb28577..881c3ab 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
@@ -173,27 +173,10 @@ public class AutoscalerServiceComponent {
 
         // Start topology receiver
         asTopologyReceiver = new AutoscalerTopologyEventReceiver();
-//        asTopologyReceiver.setExecutorService(executorService);
-        //asTopologyReceiver.execute();
-        if (log.isDebugEnabled()) {
-            log.debug("Topology receiver executor service started");
-        }
-
         // Start health stat receiver
         autoscalerHealthStatEventReceiver = new AutoscalerHealthStatEventReceiver();
-//        autoscalerHealthStatEventReceiver.setExecutorService(executorService);
-//        autoscalerHealthStatEventReceiver.execute();
-        if (log.isDebugEnabled()) {
-            log.debug("Health statistics receiver thread started");
-        }
-
         // Start initializer receiver
         autoscalerInitializerTopicReceiver = new AutoscalerInitializerTopicReceiver();
-//        autoscalerInitializerTopicReceiver.setExecutorService(executorService);
-//        autoscalerInitializerTopicReceiver.execute();
-//        if (log.isDebugEnabled()) {
-//            log.debug("Initializer receiver thread started");
-//        }
 
         if (log.isInfoEnabled()) {
             log.info("Scheduling tasks to publish applications");
@@ -245,54 +228,8 @@ public class AutoscalerServiceComponent {
     }
 
     protected void deactivate(ComponentContext context) {
-//        if (asTopologyReceiver != null) {
-//            try {
-//                asTopologyReceiver.terminate();
-//            } catch (Exception e) {
-//                log.warn("An error occurred while terminating autoscaler topology event receiver", e);
-//            }
-//        }
-
-        if (autoscalerHealthStatEventReceiver != null) {
-            try {
-                autoscalerHealthStatEventReceiver.terminate();
-            } catch (Exception e) {
-                log.warn("An error occurred while terminating autoscaler health statistics event receiver", e);
-            }
-        }
-
-        // Shutdown executor service
-        shutdownExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID);
-
-        // Shutdown scheduler
-        shutdownScheduledExecutorService(AutoscalerConstants.AUTOSCALER_SCHEDULER_ID);
-
-        // Shutdown application monitor executor service
-        shutdownExecutorService(AutoscalerConstants.MONITOR_THREAD_POOL_ID);
-
-        // Shutdown cluster monitor scheduler executor service
-        shutdownScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID);
-    }
-
-    private void shutdownExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownScheduledExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownExecutorService(ExecutorService executorService) {
-        try {
-            executorService.shutdownNow();
-        } catch (Exception e) {
-            log.warn("An error occurred while shutting down executor service", e);
+        if (log.isDebugEnabled()) {
+            log.debug("Autoscaler Component de-activated");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 267d5a8..c30fc63 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -146,40 +146,9 @@ public class CloudControllerServiceComponent {
 
     private void executeCoordinatorTasks() {
         applicationEventReceiver = new ApplicationEventReceiver();
-//        applicationEventReceiver.setExecutorService(executorService);
-//        applicationEventReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Application event receiver thread started");
-        }
-
         clusterStatusTopicReceiver = new ClusterStatusTopicReceiver();
-//        clusterStatusTopicReceiver.setExecutorService(executorService);
-//        clusterStatusTopicReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Cluster status event receiver thread started");
-        }
-
         instanceStatusTopicReceiver = new InstanceStatusTopicReceiver();
-//        instanceStatusTopicReceiver.setExecutorService(executorService);
-//        instanceStatusTopicReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Instance status event receiver thread started");
-        }
-
         initializerTopicReceiver = new InitializerTopicReceiver();
-//        initializerTopicReceiver.setExecutorService(executorService);
-//        initializerTopicReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Initializer event receiver thread started");
-        }
-
-        if (log.isInfoEnabled()) {
-            log.info("Scheduling topology synchronizer task");
-        }
         Runnable topologySynchronizer = new TopologyEventSynchronizer();
         scheduler.scheduleAtFixedRate(topologySynchronizer, 0, 1, TimeUnit.MINUTES);
     }
@@ -260,33 +229,5 @@ public class CloudControllerServiceComponent {
         } catch (Exception e) {
             log.warn("An error occurred while closing cloud controller topology event publisher", e);
         }
-
-        // Shutdown executor service
-        shutdownExecutorService(THREAD_POOL_ID);
-
-        // Shutdown scheduler
-        shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
-    }
-
-    private void shutdownExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownScheduledExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownExecutorService(ExecutorService executorService) {
-        try {
-            executorService.shutdownNow();
-        } catch (Exception e) {
-            log.warn("An error occurred while shutting down executor service", e);
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
index 8da5575..65bef23 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
@@ -37,21 +37,12 @@ import java.util.concurrent.ExecutorService;
 public class ApplicationEventReceiver {
     private static final Log log = LogFactory.getLog(ApplicationEventReceiver.class);
     private ApplicationsEventReceiver applicationsEventReceiver;
-   // private ExecutorService executorService;
 
     public ApplicationEventReceiver() {
         this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
         addEventListeners();
     }
 
-//    public void execute() {
-//        if (log.isInfoEnabled()) {
-//            log.info("Cloud controller application event receiver thread started");
-//        }
-//        applicationsEventReceiver.setExecutorService(executorService);
-//        applicationsEventReceiver.execute();
-//    }
-
     private void addEventListeners() {
         applicationsEventReceiver.addEventListener(new ApplicationInstanceTerminatedEventListener() {
             @Override
@@ -75,8 +66,4 @@ public class ApplicationEventReceiver {
             }
         });
     }
-
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index c4d68ae..7c421d9 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -193,8 +193,11 @@ public class StratosManagerServiceComponent {
 
     private void initializeInitializerEventReceiver() {
         initializerTopicReceiver = new StratosManagerInitializerTopicReceiver();
+<<<<<<< HEAD
 //        initializerTopicReceiver.setExecutorService(executorService);
 //        initializerTopicReceiver.execute();
+=======
+>>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -202,8 +205,11 @@ public class StratosManagerServiceComponent {
      */
     private void initializeInstanceStatusEventReceiver() {
         instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
+<<<<<<< HEAD
 //        instanceStatusEventReceiver.setExecutorService(executorService);
 //        instanceStatusEventReceiver.execute();
+=======
+>>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -211,8 +217,11 @@ public class StratosManagerServiceComponent {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = new StratosManagerTopologyEventReceiver();
+<<<<<<< HEAD
 //        topologyEventReceiver.setExecutorService(executorService);
 //        topologyEventReceiver.execute();
+=======
+>>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -220,8 +229,11 @@ public class StratosManagerServiceComponent {
      */
     private void initializeApplicationEventReceiver() {
         applicationEventReceiver = new StratosManagerApplicationEventReceiver();
+<<<<<<< HEAD
 //        applicationEventReceiver.setExecutorService(executorService);
 //        applicationEventReceiver.execute();
+=======
+>>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -336,6 +348,7 @@ public class StratosManagerServiceComponent {
         // Close event publisher connections to message broker
         EventPublisherPool.close(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName());
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
+<<<<<<< HEAD
 
         shutdownExecutorService(THREAD_POOL_ID);
         shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
@@ -362,4 +375,7 @@ public class StratosManagerServiceComponent {
             log.warn("An error occurred while shutting down executor service", e);
         }
     }
+=======
+    }
+>>>>>>> d4b35c0... removing unused methods
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 6b79873..a37941c 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -91,17 +91,4 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
             }
         }
     }
-
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
index cfc7f11..33f5de8 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
@@ -66,42 +66,6 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
-//    public void execute() {
-//        synchronized (this) {
-//            if (terminated) {
-//                log.info("InstanceNotifierEventReceiver has been terminated. Event subscriber will not be created.");
-//                return;
-//            }
-//            try {
-//                Thread subscriberThread = new Thread(eventSubscriber);
-//                subscriberThread.start();
-//                if (log.isDebugEnabled()) {
-//                    log.debug("InstanceNotifier event message receiver thread started");
-//                }
-//
-//                // Start instance notifier event message delegator thread
-//                Thread receiverThread = new Thread(messageDelegator);
-//                receiverThread.start();
-//                if (log.isDebugEnabled()) {
-//                    log.debug("InstanceNotifier event message delegator thread started");
-//                }
-//            } catch (Exception e) {
-//                if (log.isErrorEnabled()) {
-//                    log.error("InstanceNotifier receiver failed", e);
-//                }
-//            }
-//        }
-//        log.info("InstanceNotifierEventReceiver started");
-//
-//        // Keep the thread live until terminated
-//        while (!terminated) {
-//            try {
-//                Thread.sleep(2000);
-//            } catch (InterruptedException ignore) {
-//            }
-//        }
-//    }
-
     private void execute() {
         try {
             // Start topic subscriber thread

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index a2a1623..5bc27ff 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -39,7 +39,11 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
 
     private InstanceStatusEventReceiver() {
         // TODO: make pool size configurable
+<<<<<<< HEAD
         this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+=======
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
+>>>>>>> d4b35c0... removing unused methods
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
index 308dde0..235a992 100644
--- a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
+++ b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
@@ -123,7 +123,8 @@ public abstract class PythonAgentIntegrationTest {
             startActiveMQInstance(Integer.parseInt(amqpBindPorts[i]), Integer.parseInt(mqttBindPorts[i]), true);
         }
 
-        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", testThreadPoolSize);
+        //ExecutorService executorService = StratosThreadPool.getExecutorService
+        // ("TEST_THREAD_POOL");
         topologyEventReceiver = TopologyEventReceiver.getInstance();
 //        topologyEventReceiver.setExecutorService(executorService);
 //        topologyEventReceiver.execute();
@@ -148,9 +149,7 @@ public abstract class PythonAgentIntegrationTest {
             }
         });
 
-        initializerEventReceiver = new InitializerEventReceiver();
-        initializerEventReceiver.setExecutorService(executorService);
-        initializerEventReceiver.execute();
+        initializerEventReceiver = InitializerEventReceiver.getInstance();
 
         this.eventReceiverInitialized = true;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/3bb9de92/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java b/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
index 5a199c7..80c609f 100644
--- a/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
+++ b/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
@@ -114,17 +114,14 @@ public class TopologyHandler {
     }
 
     private void initializeTenantEventReceiver() {
-        tenantEventReceiver = new TenantEventReceiver();
-        tenantEventReceiver.setExecutorService(executorService);
-        tenantEventReceiver.execute();
+        tenantEventReceiver = TenantEventReceiver.getInstance();
     }
 
     /**
      * Initialize application event receiver
      */
     private void initializeHealthStatsEventReceiver() {
-        healthStatEventReceiver = new HealthStatEventReceiver();
-        healthStatEventReceiver.setExecutorService(executorService);
+        healthStatEventReceiver = HealthStatEventReceiver.getInstance();
         healthStatEventReceiver.addEventListener(new MemberFaultEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -133,15 +130,13 @@ public class TopologyHandler {
                         memberFaultEvent.getMemberId()));
             }
         });
-        healthStatEventReceiver.execute();
     }
 
     /**
      * Initialize application event receiver
      */
     private void initializeApplicationEventReceiver() {
-        applicationsEventReceiver = new ApplicationsEventReceiver();
-        applicationsEventReceiver.setExecutorService(executorService);
+        applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
         applicationsEventReceiver.addEventListener(new ApplicationInstanceActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -164,7 +159,6 @@ public class TopologyHandler {
                         appInstanceInactivatedEvent.getInstanceId()));
             }
         });
-        applicationsEventReceiver.execute();
     }
 
     /**


[04/19] stratos git commit: making InitializerEventReceiver singleton and fixing references in components

Posted by is...@apache.org.
making InitializerEventReceiver singleton and fixing references in components


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

Branch: refs/heads/stratos-4.1.x
Commit: fd39caeec2c262b4d2cdd30cb10d8a6b96cba535
Parents: 3de2c07
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:01:16 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:34:17 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerInitializerTopicReceiver.java     | 16 ++++----
 .../internal/AutoscalerServiceComponent.java    | 10 ++---
 .../CloudControllerServiceComponent.java        |  4 +-
 .../initializer/InitializerTopicReceiver.java   | 30 +++++++--------
 .../StratosManagerServiceComponent.java         |  4 +-
 .../StratosManagerInitializerTopicReceiver.java | 32 ++++++++--------
 .../initializer/InitializerEventReceiver.java   | 40 ++++++++++++++------
 7 files changed, 77 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
index da6b270..b330211 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/initializer/AutoscalerInitializerTopicReceiver.java
@@ -34,17 +34,17 @@ public class AutoscalerInitializerTopicReceiver {
     private ExecutorService executorService;
 
     public AutoscalerInitializerTopicReceiver() {
-        this.initializerEventReceiver = new InitializerEventReceiver();
+        this.initializerEventReceiver = InitializerEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        initializerEventReceiver.setExecutorService(executorService);
-        initializerEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Cloud controller initializer topic receiver started");
-        }
-    }
+//    public void execute() {
+//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cloud controller initializer topic receiver started");
+//        }
+//    }
 
     private void addEventListeners() {
         initializerEventReceiver.addEventListener(new CompleteApplicationsRequestEventListener() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
index 4d4c54f..ba7c341 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
@@ -189,11 +189,11 @@ public class AutoscalerServiceComponent {
 
         // Start initializer receiver
         autoscalerInitializerTopicReceiver = new AutoscalerInitializerTopicReceiver();
-        autoscalerInitializerTopicReceiver.setExecutorService(executorService);
-        autoscalerInitializerTopicReceiver.execute();
-        if (log.isDebugEnabled()) {
-            log.debug("Initializer receiver thread started");
-        }
+//        autoscalerInitializerTopicReceiver.setExecutorService(executorService);
+//        autoscalerInitializerTopicReceiver.execute();
+//        if (log.isDebugEnabled()) {
+//            log.debug("Initializer receiver thread started");
+//        }
 
         if (log.isInfoEnabled()) {
             log.info("Scheduling tasks to publish applications");

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 3a0b1e3..2368596 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -170,8 +170,8 @@ public class CloudControllerServiceComponent {
         }
 
         initializerTopicReceiver = new InitializerTopicReceiver();
-        initializerTopicReceiver.setExecutorService(executorService);
-        initializerTopicReceiver.execute();
+//        initializerTopicReceiver.setExecutorService(executorService);
+//        initializerTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
             log.info("Initializer event receiver thread started");

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
index aba0dac..9a2c502 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
@@ -34,17 +34,17 @@ public class InitializerTopicReceiver {
     private ExecutorService executorService;
 
     public InitializerTopicReceiver() {
-        this.initializerEventReceiver = new InitializerEventReceiver();
+        this.initializerEventReceiver = InitializerEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        initializerEventReceiver.setExecutorService(executorService);
-        initializerEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Autoscaler initializer topic receiver started");
-        }
-    }
+//    public void execute() {
+//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Autoscaler initializer topic receiver started");
+//        }
+//    }
 
     private void addEventListeners() {
         initializerEventReceiver.addEventListener(new CompleteTopologyRequestEventListener() {
@@ -62,11 +62,11 @@ public class InitializerTopicReceiver {
         });
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index 76d39a7..ed45852 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -193,8 +193,8 @@ public class StratosManagerServiceComponent {
 
     private void initializeInitializerEventReceiver() {
         initializerTopicReceiver = new StratosManagerInitializerTopicReceiver();
-        initializerTopicReceiver.setExecutorService(executorService);
-        initializerTopicReceiver.execute();
+//        initializerTopicReceiver.setExecutorService(executorService);
+//        initializerTopicReceiver.execute();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
index 89ace69..c08e8e4 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
@@ -33,22 +33,22 @@ import java.util.concurrent.ExecutorService;
 public class StratosManagerInitializerTopicReceiver {
     private static final Log log = LogFactory.getLog(StratosManagerInitializerTopicReceiver.class);
     private InitializerEventReceiver initializerEventReceiver;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
     private ApplicationSignUpHandler applicationSignUpHandler;
 
     public StratosManagerInitializerTopicReceiver() {
-        this.initializerEventReceiver = new InitializerEventReceiver();
+        this.initializerEventReceiver = InitializerEventReceiver.getInstance();
         applicationSignUpHandler = new ApplicationSignUpHandler();
         addEventListeners();
     }
 
-    public void execute() {
-        initializerEventReceiver.setExecutorService(executorService);
-        initializerEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Stratos manager initializer topic receiver started");
-        }
-    }
+//    public void execute() {
+//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Stratos manager initializer topic receiver started");
+//        }
+//    }
 
     private void addEventListeners() {
         initializerEventReceiver.addEventListener(new CompleteTenantRequestEventListener() {
@@ -81,11 +81,11 @@ public class StratosManagerInitializerTopicReceiver {
         });
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd39caee/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
index 90d358c..e6429e2 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
@@ -20,31 +20,49 @@ package org.apache.stratos.messaging.message.receiver.initializer;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
 
-public class InitializerEventReceiver {
+public class InitializerEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(InitializerEventReceiver.class);
 
     private InitializerEventMessageDelegator messageDelegator;
     private InitializerEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile InitializerEventReceiver instance;
+    //private ExecutorService executorService;
 
-    public InitializerEventReceiver() {
+    private InitializerEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("initializer-event-receiver", 100);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);
+        execute();
+    }
+
+    public static InitializerEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (InitializerEventReceiver.class) {
+                if (instance == null) {
+                    instance = new InitializerEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INITIALIZER_TOPIC.getTopicName(),
@@ -68,11 +86,11 @@ public class InitializerEventReceiver {
         messageDelegator.terminate();
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }


[09/19] stratos git commit: fixing conflicts in StratosThreadPool

Posted by is...@apache.org.
fixing conflicts in StratosThreadPool


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

Branch: refs/heads/stratos-4.1.x
Commit: 82980e64a3b935a93e9cfad0916c32cc8bebc76b
Parents: 23741d8
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 4 05:22:40 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:39:26 2015 +0530

----------------------------------------------------------------------
 .../stratos/cartridge/agent/CartridgeAgent.java |  30 ++---
 .../agent/CartridgeAgentEventListeners.java     |  46 ++++----
 .../agent/test/JavaCartridgeAgentTest.java      |  10 +-
 .../CloudControllerServiceComponent.java        |   4 +-
 .../status/InstanceStatusTopicReceiver.java     |  24 ++--
 .../common/threading/StratosThreadPool.java     |   4 +-
 .../StratosManagerServiceComponent.java         |   4 +-
 ...ratosManagerInstanceStatusEventReceiver.java |  22 ++--
 .../notifier/InstanceNotifierEventReceiver.java | 109 +++++++++++++------
 .../status/InstanceStatusEventReceiver.java     |  44 +++++---
 .../mock/iaas/services/impl/MockInstance.java   |  32 +++---
 .../tests/PythonAgentIntegrationTest.java       |   6 +-
 .../integration/tests/adc/GitHookTestCase.java  |  22 ++--
 13 files changed, 208 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
index b0bf326..c498caa 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
@@ -90,10 +90,10 @@ public class CartridgeAgent implements Runnable {
         }
 
         // Start instance notifier listener thread
-        registerInstanceNotifierEventListeners();
-        if (log.isInfoEnabled()) {
-            log.info("Cartridge agent registerInstanceNotifierEventListeners done");
-        }
+//        registerInstanceNotifierEventListeners();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cartridge agent registerInstanceNotifierEventListeners done");
+//        }
 
         // Start tenant event receiver thread
         /*
@@ -174,17 +174,17 @@ public class CartridgeAgent implements Runnable {
         logPublisherManager.stop();
     }
 
-    protected void registerInstanceNotifierEventListeners() {
-        if (log.isDebugEnabled()) {
-            log.debug("SsubscribeToTopicsAndRegisterListeners before");
-        }
-
-        eventListenerns.startInstanceNotifierReceiver();
-
-        if (log.isDebugEnabled()) {
-            log.debug("SsubscribeToTopicsAndRegisterListeners after");
-        }
-    }
+//    protected void registerInstanceNotifierEventListeners() {
+//        if (log.isDebugEnabled()) {
+//            log.debug("SsubscribeToTopicsAndRegisterListeners before");
+//        }
+//
+//        eventListenerns.startInstanceNotifierReceiver();
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("SsubscribeToTopicsAndRegisterListeners after");
+//        }
+//    }
 
 //    protected void registerTopologyEventListeners() {
 //        if (log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
index ffa3750..5954b76 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
@@ -65,8 +65,8 @@ public class CartridgeAgentEventListeners {
     private ApplicationSignUpEventReceiver applicationsEventReceiver;
 
     private ExtensionHandler extensionHandler;
-    private static final ExecutorService eventListenerExecutorService =
-            StratosThreadPool.getExecutorService("cartridge.agent.event.listener.thread.pool", 10);
+//    private static final ExecutorService eventListenerExecutorService =
+//            StratosThreadPool.getExecutorService("cartridge.agent.event.listener.thread.pool", 10);
 
     public CartridgeAgentEventListeners() {
         if (log.isDebugEnabled()) {
@@ -77,7 +77,7 @@ public class CartridgeAgentEventListeners {
         this.topologyEventReceiver = TopologyEventReceiver.getInstance();
         //this.topologyEventReceiver.setExecutorService(eventListenerExecutorService);
 
-        this.instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
+        this.instanceNotifierEventReceiver = InstanceNotifierEventReceiver.getInstance();
 
         this.tenantEventReceiver = TenantEventReceiver.getInstance();
 //        this.tenantEventReceiver.setExecutorService(eventListenerExecutorService);
@@ -113,23 +113,23 @@ public class CartridgeAgentEventListeners {
 //
 //    }
 
-    public void startInstanceNotifierReceiver() {
-
-        if (log.isDebugEnabled()) {
-            log.debug("Starting cartridge agent instance notifier event message receiver");
-        }
-
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                instanceNotifierEventReceiver.execute();
-            }
-        });
-
-        if (log.isDebugEnabled()) {
-            log.debug("Cartridge agent Instance notifier event message receiver started, waiting for event messages ...");
-        }
-    }
+//    public void startInstanceNotifierReceiver() {
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("Starting cartridge agent instance notifier event message receiver");
+//        }
+//
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                instanceNotifierEventReceiver.execute();
+//            }
+//        });
+//
+//        if (log.isDebugEnabled()) {
+//            log.debug("Cartridge agent Instance notifier event message receiver started, waiting for event messages ...");
+//        }
+//    }
 
 //    public void startTenantEventReceiver() {
 //
@@ -521,9 +521,9 @@ public class CartridgeAgentEventListeners {
      * Terminate load balancer topology receiver thread.
      */
 
-    public void terminate() {
-        topologyEventReceiver.terminate();
-    }
+//    public void terminate() {
+//        topologyEventReceiver.terminate();
+//    }
 
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
index a501507..903fa58 100644
--- a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
+++ b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
@@ -126,9 +126,9 @@ public class JavaCartridgeAgentTest {
         //topologyEventReceiver.setExecutorService(executorService);
         //topologyEventReceiver.execute();
 
-        instanceStatusEventReceiver = new InstanceStatusEventReceiver();
-        instanceStatusEventReceiver.setExecutorService(executorService);
-        instanceStatusEventReceiver.execute();
+        instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
+//        instanceStatusEventReceiver.setExecutorService(executorService);
+//        instanceStatusEventReceiver.execute();
 
         instanceStarted = false;
         instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {
@@ -191,8 +191,8 @@ public class JavaCartridgeAgentTest {
         } catch (Exception ignore) {
         }
 
-        this.instanceStatusEventReceiver.terminate();
-        this.topologyEventReceiver.terminate();
+        //this.instanceStatusEventReceiver.terminate();
+      //  this.topologyEventReceiver.terminate();
 
         this.instanceActivated = false;
         this.instanceStarted = false;

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index c4c0336..267d5a8 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -162,8 +162,8 @@ public class CloudControllerServiceComponent {
         }
 
         instanceStatusTopicReceiver = new InstanceStatusTopicReceiver();
-        instanceStatusTopicReceiver.setExecutorService(executorService);
-        instanceStatusTopicReceiver.execute();
+//        instanceStatusTopicReceiver.setExecutorService(executorService);
+//        instanceStatusTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
             log.info("Instance status event receiver thread started");

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/instance/status/InstanceStatusTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/instance/status/InstanceStatusTopicReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/instance/status/InstanceStatusTopicReceiver.java
index e212fea..bfa205b 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/instance/status/InstanceStatusTopicReceiver.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/instance/status/InstanceStatusTopicReceiver.java
@@ -46,21 +46,21 @@ public class InstanceStatusTopicReceiver {
     private ExecutorService executorService;
 
     public InstanceStatusTopicReceiver() {
-        this.statusEventReceiver = new InstanceStatusEventReceiver();
+        this.statusEventReceiver = InstanceStatusEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        statusEventReceiver.setExecutorService(executorService);
-        statusEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Cloud controller application status thread started");
-        }
-
-        if (log.isInfoEnabled()) {
-            log.info("Cloud controller application status thread terminated");
-        }
-    }
+//    public void execute() {
+//        statusEventReceiver.setExecutorService(executorService);
+//        statusEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cloud controller application status thread started");
+//        }
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Cloud controller application status thread terminated");
+//        }
+//    }
 
     private void addEventListeners() {
         statusEventReceiver.addEventListener(new InstanceActivatedEventListener() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
index c0ae8ae..687cec2 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
@@ -36,8 +36,8 @@ public class StratosThreadPool {
 
     private static final Log log = LogFactory.getLog(StratosThreadPool.class);
 
-    private static Map<String, ExecutorService> executorServiceMap = new ConcurrentHashMap<String, ExecutorService>();
-    private static Map<String, ScheduledExecutorService> scheduledServiceMap = new ConcurrentHashMap<String, ScheduledExecutorService>();
+    private static volatile Map<String, ExecutorService> executorServiceMap = new ConcurrentHashMap<>();
+    private static volatile Map<String, ScheduledExecutorService> scheduledServiceMap = new ConcurrentHashMap<String, ScheduledExecutorService>();
     private static Object executorServiceMapLock = new Object();
     private static Object scheduledServiceMapLock = new Object();
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index 573c19d..c4d68ae 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -202,8 +202,8 @@ public class StratosManagerServiceComponent {
      */
     private void initializeInstanceStatusEventReceiver() {
         instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
-        instanceStatusEventReceiver.setExecutorService(executorService);
-        instanceStatusEventReceiver.execute();
+//        instanceStatusEventReceiver.setExecutorService(executorService);
+//        instanceStatusEventReceiver.execute();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInstanceStatusEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInstanceStatusEventReceiver.java
index 1da448e..ab92d1b 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInstanceStatusEventReceiver.java
@@ -37,32 +37,34 @@ import java.util.List;
 /**
  * Stratos manager instance status event receiver.
  */
-public class StratosManagerInstanceStatusEventReceiver extends InstanceStatusEventReceiver {
+public class StratosManagerInstanceStatusEventReceiver  {
 
     private static final Log log = LogFactory.getLog(StratosManagerInstanceStatusEventReceiver.class);
 
     private ApplicationSignUpHandler signUpManager;
     private ArtifactDistributionCoordinator artifactDistributionCoordinator;
+    private InstanceStatusEventReceiver instanceStatusEventReceiver;
 
 
     public StratosManagerInstanceStatusEventReceiver() {
         signUpManager = new ApplicationSignUpHandler();
         artifactDistributionCoordinator = new ArtifactDistributionCoordinator();
+        instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
 
         addEventListeners();
     }
 
-    @Override
-    public void execute() {
-        super.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Stratos manager instance status event receiver thread started");
-        }
-    }
+//    @Override
+//    public void execute() {
+//        super.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Stratos manager instance status event receiver thread started");
+//        }
+//    }
 
     private void addEventListeners() {
-        addEventListener(new InstanceStartedEventListener() {
+        instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 InstanceStartedEvent instanceStartedEvent = (InstanceStartedEvent) event;

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
index 4ad6572..cfc7f11 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
@@ -21,64 +21,107 @@ package org.apache.stratos.messaging.message.receiver.instance.notifier;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 /**
  * A thread for receiving instance notifier information from message broker.
  */
-public class InstanceNotifierEventReceiver {
+public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(InstanceNotifierEventReceiver.class);
     private final InstanceNotifierEventMessageDelegator messageDelegator;
     private EventSubscriber eventSubscriber;
-    private boolean terminated;
+    private InstanceNotifierEventMessageListener messageListener;
+    private static volatile InstanceNotifierEventReceiver instance;
+    //private boolean terminated;
 
-    public InstanceNotifierEventReceiver() {
+    private InstanceNotifierEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
-        InstanceNotifierEventMessageListener messageListener = new InstanceNotifierEventMessageListener(messageQueue);
+        messageListener = new InstanceNotifierEventMessageListener(messageQueue);
         // Start topic subscriber thread
         eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName(),
                 messageListener);
+        execute();
+    }
+
+    public static InstanceNotifierEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (InstanceNotifierEventReceiver.class) {
+                if (instance == null) {
+                    instance = new InstanceNotifierEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
-    public void execute() {
-        synchronized (this) {
-            if (terminated) {
-                log.info("InstanceNotifierEventReceiver has been terminated. Event subscriber will not be created.");
-                return;
+//    public void execute() {
+//        synchronized (this) {
+//            if (terminated) {
+//                log.info("InstanceNotifierEventReceiver has been terminated. Event subscriber will not be created.");
+//                return;
+//            }
+//            try {
+//                Thread subscriberThread = new Thread(eventSubscriber);
+//                subscriberThread.start();
+//                if (log.isDebugEnabled()) {
+//                    log.debug("InstanceNotifier event message receiver thread started");
+//                }
+//
+//                // Start instance notifier event message delegator thread
+//                Thread receiverThread = new Thread(messageDelegator);
+//                receiverThread.start();
+//                if (log.isDebugEnabled()) {
+//                    log.debug("InstanceNotifier event message delegator thread started");
+//                }
+//            } catch (Exception e) {
+//                if (log.isErrorEnabled()) {
+//                    log.error("InstanceNotifier receiver failed", e);
+//                }
+//            }
+//        }
+//        log.info("InstanceNotifierEventReceiver started");
+//
+//        // Keep the thread live until terminated
+//        while (!terminated) {
+//            try {
+//                Thread.sleep(2000);
+//            } catch (InterruptedException ignore) {
+//            }
+//        }
+//    }
+
+    private void execute() {
+        try {
+            // Start topic subscriber thread
+            eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName(),
+                    messageListener);
+            executorService.execute(eventSubscriber);
+
+            if (log.isDebugEnabled()) {
+                log.debug("Instance Notifier event message receiver thread started");
             }
-            try {
-                Thread subscriberThread = new Thread(eventSubscriber);
-                subscriberThread.start();
-                if (log.isDebugEnabled()) {
-                    log.debug("InstanceNotifier event message receiver thread started");
-                }
 
-                // Start instance notifier event message delegator thread
-                Thread receiverThread = new Thread(messageDelegator);
-                receiverThread.start();
-                if (log.isDebugEnabled()) {
-                    log.debug("InstanceNotifier event message delegator thread started");
-                }
-            } catch (Exception e) {
-                if (log.isErrorEnabled()) {
-                    log.error("InstanceNotifier receiver failed", e);
-                }
+            // Start topology event message delegator thread
+            executorService.execute(messageDelegator);
+            if (log.isDebugEnabled()) {
+                log.debug("Instance Notifier  event message delegator thread started");
             }
-        }
-        log.info("InstanceNotifierEventReceiver started");
 
-        // Keep the thread live until terminated
-        while (!terminated) {
-            try {
-                Thread.sleep(2000);
-            } catch (InterruptedException ignore) {
+        } catch (Exception e) {
+            if (log.isErrorEnabled()) {
+                log.error("Instance Notifier receiver failed", e);
             }
         }
     }
@@ -90,7 +133,7 @@ public class InstanceNotifierEventReceiver {
     public synchronized void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        terminated = true;
+        //terminated = true;
         log.info("InstanceNotifierEventReceiver terminated");
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index 41f444e..a2a1623 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -21,27 +21,41 @@ package org.apache.stratos.messaging.message.receiver.instance.status;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
-
 /**
  * A thread for receiving instance notifier information from message broker.
  */
-public class InstanceStatusEventReceiver {
+public class InstanceStatusEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(InstanceStatusEventReceiver.class);
     private final InstanceStatusEventMessageDelegator messageDelegator;
     private final InstanceStatusEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private boolean terminated;
-    private ExecutorService executorService;
+    private static volatile InstanceStatusEventReceiver instance;
 
-    public InstanceStatusEventReceiver() {
+    private InstanceStatusEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static InstanceStatusEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (InstanceStatusEventReceiver.class) {
+                if (instance == null) {
+                    instance = new InstanceStatusEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
@@ -49,7 +63,7 @@ public class InstanceStatusEventReceiver {
     }
 
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_STATUS_TOPIC.getTopicName(), messageListener);
@@ -77,14 +91,14 @@ public class InstanceStatusEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        terminated = true;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
+       // terminated = true;
     }
 
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
index c752f9e..9886335 100644
--- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
+++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
@@ -161,7 +161,7 @@ public class MockInstance implements Serializable {
     }
 
     private void startInstanceNotifierEventReceiver() {
-        instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
+        instanceNotifierEventReceiver = InstanceNotifierEventReceiver.getInstance();
         instanceNotifierEventReceiver.addEventListener(new InstanceCleanupClusterEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -185,17 +185,17 @@ public class MockInstance implements Serializable {
         });
         // TODO: Fix InstanceNotifierEventReceiver to use executor service
         // do not remove this since execute() is a blocking call
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                instanceNotifierEventReceiver.execute();
-            }
-        });
-        if (log.isDebugEnabled()) {
-            log.debug(String.format(
-                    "Mock instance instance notifier event message receiver started for mock member [member-id] %s",
-                    mockInstanceContext.getMemberId()));
-        }
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                instanceNotifierEventReceiver.execute();
+//            }
+//        });
+//        if (log.isDebugEnabled()) {
+//            log.debug(String.format(
+//                    "Mock instance instance notifier event message receiver started for mock member [member-id] %s",
+//                    mockInstanceContext.getMemberId()));
+//        }
     }
 
     private void handleMemberTermination() {
@@ -213,9 +213,9 @@ public class MockInstance implements Serializable {
         healthStatNotifierScheduledFuture.cancel(true);
     }
 
-    private void stopInstanceNotifierReceiver() {
-        instanceNotifierEventReceiver.terminate();
-    }
+//    private void stopInstanceNotifierReceiver() {
+//        instanceNotifierEventReceiver.terminate();
+//    }
 
     public MockInstanceContext getMockInstanceContext() {
         return mockInstanceContext;
@@ -223,7 +223,7 @@ public class MockInstance implements Serializable {
 
     public synchronized void terminate() {
         if (MemberStatus.Initialized.equals(memberStatus)) {
-            stopInstanceNotifierReceiver();
+            //stopInstanceNotifierReceiver();
             stopHealthStatisticsPublisher();
             memberStatus = MemberStatus.Terminated;
             if (log.isInfoEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
index f31583c..308dde0 100644
--- a/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
+++ b/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
@@ -128,9 +128,9 @@ public abstract class PythonAgentIntegrationTest {
 //        topologyEventReceiver.setExecutorService(executorService);
 //        topologyEventReceiver.execute();
 
-        instanceStatusEventReceiver = new InstanceStatusEventReceiver();
-        instanceStatusEventReceiver.setExecutorService(executorService);
-        instanceStatusEventReceiver.execute();
+        instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
+//        instanceStatusEventReceiver.setExecutorService(executorService);
+//        instanceStatusEventReceiver.execute();
 
         instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {
             @Override

http://git-wip-us.apache.org/repos/asf/stratos/blob/82980e64/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/adc/GitHookTestCase.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/adc/GitHookTestCase.java b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/adc/GitHookTestCase.java
index 3f708db..7412540 100644
--- a/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/adc/GitHookTestCase.java
+++ b/products/stratos/modules/integration/test-integration/src/test/java/org/apache/stratos/integration/tests/adc/GitHookTestCase.java
@@ -56,19 +56,19 @@ public class GitHookTestCase extends StratosIntegrationTest {
     private static final String appPolicyId = "application-policy-git-hook-test";
     private static final String GIT_HOOK_ARTIFACT_FILENAME = "hook-req.json";
     private static final int ARTIFACT_UPDATED_EXPECTED_COUNT = 2;
-    private ExecutorService eventListenerExecutorService = StratosThreadPool
-            .getExecutorService("stratos.integration.test.git.thread.pool", 5);
+//    private ExecutorService eventListenerExecutorService = StratosThreadPool
+//            .getExecutorService("stratos.integration.test.git.thread.pool", 5);
 
     @Test(timeOut = DEFAULT_TEST_TIMEOUT)
     public void sendRepoNotify() throws Exception {
         deployArtifacts();
-        final InstanceNotifierEventReceiver instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
-        eventListenerExecutorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                instanceNotifierEventReceiver.execute();
-            }
-        });
+        final InstanceNotifierEventReceiver instanceNotifierEventReceiver = InstanceNotifierEventReceiver.getInstance();
+//        eventListenerExecutorService.submit(new Runnable() {
+//            @Override
+//            public void run() {
+//                instanceNotifierEventReceiver.execute();
+//            }
+//        });
 
         ArtifactUpdateEventListener artifactUpdateEventListener = new ArtifactUpdateEventListener() {
             @Override
@@ -86,8 +86,8 @@ public class GitHookTestCase extends StratosIntegrationTest {
             Thread.sleep(1000);
         }
         TopologyHandler.getInstance().assertApplicationActiveStatus(applicationId);
-        instanceNotifierEventReceiver.terminate();
-        eventListenerExecutorService.shutdownNow();
+        //instanceNotifierEventReceiver.terminate();
+       // eventListenerExecutorService.shutdownNow();
         undeployArtifacts();
     }
 


[16/19] stratos git commit: Refactor aws lb extension

Posted by is...@apache.org.
Refactor aws lb extension


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

Branch: refs/heads/stratos-4.1.x
Commit: 7f9bcf77979f02052534b861125321e4b91c8f8c
Parents: 9f7b483
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 11:35:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 16:55:58 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/aws/extension/AWSHelper.java |  2 +-
 .../stratos/aws/extension/AWSLoadBalancer.java  | 60 +++++++-------------
 .../aws/extension/AWSStatisticsReader.java      |  5 +-
 3 files changed, 23 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
index a12fc96..ef66290 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
@@ -957,7 +957,7 @@ public class AWSHelper {
      * Returns the Listeners required for the service. Listeners are derived
      * from the proxy port, port and protocol values of the service.
      *
-     * @param service
+     * @param member
      * @return list of listeners required for the service
      */
     public List<Listener> getRequiredListeners(Member member) throws LoadBalancerExtensionException {

http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index 5cd5556..b365c9b 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -43,9 +43,8 @@ public class AWSLoadBalancer implements LoadBalancer {
 
     private static final Log log = LogFactory.getLog(AWSLoadBalancer.class);
 
-    // A map <clusterId, load balancer info> to store load balancer information
-    // against the cluster id
-    private static ConcurrentHashMap<String, LoadBalancerInfo> clusterIdToLoadBalancerMap = new ConcurrentHashMap<String, LoadBalancerInfo>();
+    // A map <clusterId, load balancer info dto> to store load balancer information against the cluster id
+    private static ConcurrentHashMap<String, LBInfoDTO> clusterIdToLoadBalancerMap = new ConcurrentHashMap<String, LBInfoDTO>();
 
     // Object used to invoke methods related to AWS API
     private AWSHelper awsHelper;
@@ -93,6 +92,8 @@ public class AWSLoadBalancer implements LoadBalancer {
                     Collection<Member> clusterMembers = cluster.getMembers();
 
                     if (clusterMembers.size() > 0) {
+
+	                    //We assume all the members are in the same region.
                         Member aMember = clusterMembers.iterator().next();
 
                         // a unique load balancer name with user-defined prefix and a sequence number.
@@ -119,10 +120,11 @@ public class AWSLoadBalancer implements LoadBalancer {
                                 initialAvailabilityZones.add(region + zone);
                             }
                         }
+
+
 	                    String loadBalancerDNSName =
 			                    createAWSLoadBalancer(loadBalancerName, region, listenersForThisCluster,initialAvailabilityZones);
 
-
                         log.info(String.format("Load balancer %s  created for cluster %s " , loadBalancerDNSName, cluster.getClusterId()));
 
 	                    if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){
@@ -130,17 +132,17 @@ public class AWSLoadBalancer implements LoadBalancer {
 	                    }
 
                         // persist LB info
+
+	                    LBInfoDTO lbInfoDTO = new LBInfoDTO(loadBalancerName, cluster.getClusterId(), region);
                         try {
-                            persistenceManager.persist(new LBInfoDTO(loadBalancerName, cluster.getClusterId(), region));
+                            persistenceManager.persist(lbInfoDTO);
 
                         } catch (PersistenceException e) {
 	                        log.error(String.format(
 			                        "Unable to persist LB Information for %s , cluster id %s " + loadBalancerName,
 			                        cluster.getClusterId()));
                         }
-
-                        LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region);
-                        clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo);
+	                    clusterIdToLoadBalancerMap.put(cluster.getClusterId(), lbInfoDTO);
 
                     }
 
@@ -160,8 +162,7 @@ public class AWSLoadBalancer implements LoadBalancer {
                     clustersToRemoveFromMap.add(clusterId);
 
                     if (log.isDebugEnabled()) {
-                        log.debug("Load balancer for cluster " + clusterId
-                                + " needs to be removed.");
+                        log.debug(String.format("Load balancer for cluster %s needs to be removed.", clusterId));
                     }
 
                 }
@@ -179,8 +180,8 @@ public class AWSLoadBalancer implements LoadBalancer {
                     persistenceManager.remove(new LBInfoDTO(loadBalancerName, clusterId, region));
 
                 } catch (PersistenceException e) {
-                    log.error("Unable to persist LB Information for " + loadBalancerName + ", cluster id " +
-                            clusterId);
+                    log.error(String.format("Unable to persist LB Information for[Load Balancer Name] %s [Cluster ID] %s"
+                                            ,loadBalancerName, clusterId));
                 }
                 clusterIdToLoadBalancerMap.remove(clusterId);
             }
@@ -276,10 +277,10 @@ public class AWSLoadBalancer implements LoadBalancer {
 
 	private Boolean updateExistingLoadBalancer(Cluster cluster) {
 		Boolean isUpdated=false;
-		LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
+		LBInfoDTO lbInfoDTO = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
 
-		String loadBalancerName = loadBalancerInfo.getName();
-		String region = loadBalancerInfo.getRegion();
+		String loadBalancerName = lbInfoDTO.getName();
+		String region = lbInfoDTO.getRegion();
 
 		// Get all the instances attached - Attach newly added instances to load balancer
 
@@ -326,8 +327,7 @@ public class AWSLoadBalancer implements LoadBalancer {
                 LoadBalancerDescription lbDesc = awsHelper.getLoadBalancerDescription(lbInfoDTO.getName(),
                         lbInfoDTO.getRegion());
                 if (lbDesc != null) {
-                    clusterIdToLoadBalancerMap.put(lbInfoDTO.getClusterId(), new LoadBalancerInfo(lbInfoDTO.getName(),
-                            lbInfoDTO.getRegion()));
+                    clusterIdToLoadBalancerMap.put(lbInfoDTO.getClusterId(),lbInfoDTO);
                 } else {
                     // make debug
                     if (log.isInfoEnabled()) {
@@ -361,7 +361,7 @@ public class AWSLoadBalancer implements LoadBalancer {
     public void stop() throws LoadBalancerExtensionException {
         // Remove all load balancers if 'terminate.lbs.on.extension.stop' = true in aws-extension.sh
         if (AWSExtensionContext.getInstance().terminateLBsOnExtensionStop()) {
-            for (Map.Entry<String, LoadBalancerInfo> lbInfoEntry : clusterIdToLoadBalancerMap
+            for (Map.Entry<String, LBInfoDTO> lbInfoEntry : clusterIdToLoadBalancerMap
                     .entrySet()) {
                 // Remove load balancer
                 awsHelper.deleteLoadBalancer(lbInfoEntry.getValue().getName(),
@@ -392,30 +392,8 @@ public class AWSLoadBalancer implements LoadBalancer {
         }
     }
 
-    public static ConcurrentHashMap<String, LoadBalancerInfo> getClusterIdToLoadBalancerMap() {
+    public static ConcurrentHashMap<String, LBInfoDTO> getClusterIdToLoadBalancerMap() {
         return clusterIdToLoadBalancerMap;
     }
 }
 
-/**
- * Used to store load balancer name and the region in which it is created. This
- * helps in finding region while calling API methods to modify/delete a load
- * balancer.
- */
-class LoadBalancerInfo {
-    private String name;
-    private String region;
-
-    public LoadBalancerInfo(String name, String region) {
-        this.name = name;
-        this.region = region;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/7f9bcf77/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
index 55aca3d..c3ac2eb 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSStatisticsReader.java
@@ -21,6 +21,7 @@ package org.apache.stratos.aws.extension;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.aws.extension.persistence.dto.LBInfoDTO;
 import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.load.balancer.common.statistics.LoadBalancerStatisticsReader;
 import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
@@ -60,14 +61,14 @@ public class AWSStatisticsReader implements LoadBalancerStatisticsReader {
 
 		int inFlightRequestCount = 0;
 
-		ConcurrentHashMap<String, LoadBalancerInfo> clusterIdToLoadBalancerMap = AWSLoadBalancer
+		ConcurrentHashMap<String, LBInfoDTO> clusterIdToLoadBalancerMap = AWSLoadBalancer
 				.getClusterIdToLoadBalancerMap();
 
 		// Check if load balancer info is available for this cluster.
 		// If yes, then find difference between total requests made to the load balancer and 
 		// total responses generated by instances attached to it.
 		if (clusterIdToLoadBalancerMap.containsKey(clusterId)) {
-			LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap
+			LBInfoDTO loadBalancerInfo = clusterIdToLoadBalancerMap
 					.get(clusterId);
 
 			String loadBalancerName = loadBalancerInfo.getName();


[19/19] stratos git commit: Merge branch 'stratos-4.1.x' of https://git-wip-us.apache.org/repos/asf/stratos into stratos-4.1.x

Posted by is...@apache.org.
Merge branch 'stratos-4.1.x' of https://git-wip-us.apache.org/repos/asf/stratos into stratos-4.1.x


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

Branch: refs/heads/stratos-4.1.x
Commit: c251d5eb8c556a8c3f0689f63ce5f318167b8a67
Parents: f7d0317 42a9654
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 24 18:11:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 18:11:56 2015 +0530

----------------------------------------------------------------------

----------------------------------------------------------------------



[15/19] stratos git commit: adding comments for StratosEventReceiver abstraction, starting the event reseivers from messaging activator and adding shutdown for tenant, application and signup synchronizers

Posted by is...@apache.org.
adding comments for StratosEventReceiver abstraction, starting the event reseivers from messaging activator and adding shutdown for tenant, application and signup synchronizers


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

Branch: refs/heads/stratos-4.1.x
Commit: b5b660980acbca5d8ff7bc3b8407e83e70cd54af
Parents: 570d74e
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 24 16:55:07 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 16:55:07 2015 +0530

----------------------------------------------------------------------
 .../CloudControllerServiceComponent.java        |  3 +
 .../common/threading/StratosThreadPool.java     |  3 +
 .../StratosManagerServiceComponent.java         |  3 +
 .../internal/MessagingServiceComponent.java     | 21 ++++++-
 .../message/receiver/StratosEventReceiver.java  | 62 +++++++++++++++++++-
 .../application/ApplicationsEventReceiver.java  |  6 +-
 .../ApplicationSignUpEventMessageDelegator.java |  4 ++
 .../signup/ApplicationSignUpEventReceiver.java  |  8 +--
 .../ClusterStatusEventMessageDelegator.java     |  4 ++
 .../status/ClusterStatusEventReceiver.java      |  8 +--
 .../DomainMappingEventMessageDelegator.java     |  4 ++
 .../mapping/DomainMappingEventReceiver.java     |  8 +--
 .../stat/HealthStatEventMessageDelegator.java   |  4 ++
 .../health/stat/HealthStatEventReceiver.java    |  7 +--
 .../InitializerEventMessageDelegator.java       |  4 ++
 .../initializer/InitializerEventReceiver.java   |  9 ++-
 .../InstanceNotifierEventMessageDelegator.java  |  4 ++
 .../notifier/InstanceNotifierEventReceiver.java |  8 +--
 .../InstanceStatusEventMessageDelegator.java    |  4 ++
 .../status/InstanceStatusEventReceiver.java     |  7 +--
 .../tenant/TenantEventMessageDelegator.java     |  4 ++
 .../receiver/tenant/TenantEventReceiver.java    |  8 +--
 .../topology/TopologyEventMessageDelegator.java |  4 ++
 .../topology/TopologyEventReceiver.java         |  8 +--
 24 files changed, 159 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index c30fc63..5b01330 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -229,5 +229,8 @@ public class CloudControllerServiceComponent {
         } catch (Exception e) {
             log.warn("An error occurred while closing cloud controller topology event publisher", e);
         }
+
+        // shutdown TopologyEventSync task
+        StratosThreadPool.shutdown(THREAD_POOL_ID);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
index b28fb40..ed8d445 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
@@ -104,6 +104,9 @@ public class StratosThreadPool {
             executorService.shutdownNow();
         }
 
+        // remove from the map
+        executorServiceMap.remove(identifier);
+
         log.info("Successfully shutdown thread pool associated with id: " + identifier);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index aa7cc02..5bd3f76 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -328,5 +328,8 @@ public class StratosManagerServiceComponent {
         // Close event publisher connections to message broker
         EventPublisherPool.close(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName());
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
+
+        // shut down the scheduled thread pool
+        StratosThreadPool.shutdown(THREAD_POOL_ID);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
index c97125b..b582d56 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/internal/MessagingServiceComponent.java
@@ -21,6 +21,8 @@ package org.apache.stratos.messaging.internal;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
 import org.apache.stratos.messaging.message.receiver.application.signup.ApplicationSignUpEventReceiver;
 import org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventReceiver;
@@ -40,8 +42,20 @@ public class MessagingServiceComponent {
     private static final Log log = LogFactory.getLog(MessagingServiceComponent.class);
 
     protected void activate(ComponentContext context) {
+        // activate all message receivers
         try {
-            log.info("Messaging Service bundle activated");
+            ApplicationSignUpEventReceiver.getInstance();
+            ApplicationsEventReceiver.getInstance();
+            ClusterStatusEventReceiver.getInstance();
+            DomainMappingEventReceiver.getInstance();
+            HealthStatEventReceiver.getInstance();
+            InitializerEventReceiver.getInstance();
+            TenantEventReceiver.getInstance();
+            TopologyEventReceiver.getInstance();
+
+            if (log.isDebugEnabled()) {
+                log.debug("Messaging Service bundle activated");
+            }
         } catch (Exception e) {
             log.error("Could not activate Messaging Service component", e);
         }
@@ -58,7 +72,10 @@ public class MessagingServiceComponent {
             InitializerEventReceiver.getInstance().terminate();
             TenantEventReceiver.getInstance().terminate();
             TopologyEventReceiver.getInstance().terminate();
-            log.info("Messaging Service component is deactivated");
+            StratosThreadPool.shutdown(StratosEventReceiver.STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID);
+            if (log.isDebugEnabled()) {
+                log.debug("Messaging Service component is deactivated");
+            }
         } catch (Exception e) {
             log.error("Could not de-activate Messaging Service component", e);
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
index 5040371..8c29816 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
@@ -19,13 +19,71 @@
 
 package org.apache.stratos.messaging.message.receiver;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
+import org.apache.stratos.messaging.listener.EventListener;
+
 import java.util.concurrent.ExecutorService;
 
-public class StratosEventReceiver {
+/**
+ * Abstraction for Event Receivers used in Stratos
+ */
+public abstract class StratosEventReceiver {
 
-    protected ExecutorService executorService;
+    private static final Log log = LogFactory.getLog(StratosEventReceiver.class);
+
+    /**
+     * Thread pool information for all StratosEventReceiver implementations
+     */
+
+    public static String STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID = "stratos-event-receiver-pool";
+    private static String STRATOS_EVENT_RECEIEVER_THREAD_POOL_SIZE = "stratos.event.receiver.pool.size";
+
+    // thread pool id
     protected String threadPoolId;
+    // executor service used
+    protected ExecutorService executorService;
+    // pool size
+    protected static int threadPoolSize = 15;
+
+    static {
+        // check if the thread pool size is given as a system parameter
+        String poolSize = System.getProperty(STRATOS_EVENT_RECEIEVER_THREAD_POOL_SIZE);
+        if (poolSize != null) {
+            try {
+                threadPoolSize = Integer.parseInt(poolSize);
+            } catch (NumberFormatException e) {
+                log.error("Invalid configuration found for StratosEventReceiver thread pool size", e);
+                threadPoolSize = 15;
+            }
+        }
+        if (log.isDebugEnabled()) {
+            log.debug("Number of threads used in pool " + STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID + " : " + threadPoolSize);
+        }
+    }
 
     public StratosEventReceiver () {
+        this.threadPoolId = STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID;
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, threadPoolSize);
     }
+
+    /**
+     * Adds an EventListener to this StratosEventReceiver instance
+     *
+     * @param eventListener EventListener instance to add
+     */
+    public abstract void addEventListener(EventListener eventListener);
+
+    /**
+     * Removed an EventListener from this StratosEventReceiver instance
+     *
+     * @param eventListener EventListener instance to remove
+     */
+    public abstract void removeEventListener(EventListener eventListener);
+
+    /**
+     * Terminates this StratosEventReceiver instance
+     */
+    public abstract void terminate();
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/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 697d9dd..89dd73e 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
@@ -38,9 +38,6 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     private static volatile ApplicationsEventReceiver instance;
 
     private ApplicationsEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "application-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);
@@ -67,7 +64,7 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
         messageDelegator.removeEventListener(eventListener);
     }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.APPLICATION_TOPIC.getTopicName(),
@@ -95,7 +92,6 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteApplicationsModel() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventMessageDelegator.java
index adf805d..59374bb 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventMessageDelegator.java
@@ -46,6 +46,10 @@ class ApplicationSignUpEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
index 89cf7ea..5ad6070 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
@@ -43,9 +43,6 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     private static volatile ApplicationSignUpEventReceiver instance;
 
     private ApplicationSignUpEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "application-signup-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);
@@ -68,6 +65,10 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread
@@ -117,6 +118,5 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventMessageDelegator.java
index 5c9c502..954d9be 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventMessageDelegator.java
@@ -46,6 +46,10 @@ class ClusterStatusEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
index bdbd509..9de351b 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
@@ -39,9 +39,6 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     private static volatile ClusterStatusEventReceiver instance;
 
     private ClusterStatusEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "clusterstatus-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);
@@ -52,6 +49,10 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     public static ClusterStatusEventReceiver getInstance () {
         if (instance == null) {
             synchronized (ClusterStatusEventReceiver.class) {
@@ -91,7 +92,6 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public boolean isSubscribed() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventMessageDelegator.java
index fa783a9..03154f2 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventMessageDelegator.java
@@ -46,6 +46,10 @@ class DomainMappingEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 7ce3982..6c88f73 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -40,9 +40,6 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
     private static volatile DomainMappingEventReceiver instance;
 
     private DomainMappingEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "domainmapping-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -53,6 +50,10 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     public static DomainMappingEventReceiver getInstance () {
         if (instance == null) {
             synchronized (DomainMappingEventReceiver.class) {
@@ -68,7 +69,6 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 
     private void execute() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
index 2cde2a9..29fb47b 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventMessageDelegator.java
@@ -48,6 +48,10 @@ class HealthStatEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
index 1699592..442bdb6 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
@@ -39,9 +39,6 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
     private static volatile HealthStatEventReceiver instance;
 
     private HealthStatEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "healthstat-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 100);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);
@@ -64,6 +61,9 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
 
     private void execute() {
         try {
@@ -87,6 +87,5 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventMessageDelegator.java
index ffd2ae4..baca350 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventMessageDelegator.java
@@ -41,6 +41,10 @@ public class InitializerEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
index 6c948a0..c7e5daf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
@@ -26,7 +26,6 @@ import org.apache.stratos.messaging.listener.EventListener;
 import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.util.concurrent.ExecutorService;
 
 public class InitializerEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(InitializerEventReceiver.class);
@@ -38,9 +37,6 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     //private ExecutorService executorService;
 
     private InitializerEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "initializer-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);
@@ -63,6 +59,10 @@ public class InitializerEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread
@@ -85,6 +85,5 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventMessageDelegator.java
index 73ef9fe..b695db7 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventMessageDelegator.java
@@ -46,6 +46,10 @@ class InstanceNotifierEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
index e8f84c2..6314f52 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
@@ -38,9 +38,6 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     private static volatile InstanceNotifierEventReceiver instance;
 
     private InstanceNotifierEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "instance-notifier-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceNotifierEventMessageListener(messageQueue);
@@ -63,6 +60,10 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread
@@ -94,6 +95,5 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     public synchronized void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventMessageDelegator.java
index 9f754b0..e5df65e 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventMessageDelegator.java
@@ -46,6 +46,10 @@ class InstanceStatusEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index 233de18..3d9f793 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -38,9 +38,6 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     private static volatile InstanceStatusEventReceiver instance;
 
     private InstanceStatusEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "instance-status_event-reciever";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);
@@ -63,6 +60,9 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
 
     private void execute() {
         try {
@@ -92,6 +92,5 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventMessageDelegator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventMessageDelegator.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventMessageDelegator.java
index c735d9b..cd8724c 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventMessageDelegator.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventMessageDelegator.java
@@ -48,6 +48,10 @@ class TenantEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
index 5726d44..e30d3ab 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
@@ -42,9 +42,6 @@ public class TenantEventReceiver extends StratosEventReceiver {
     private static volatile TenantEventReceiver instance;
 
     private TenantEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "tenant-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);
@@ -67,6 +64,10 @@ public class TenantEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread
@@ -113,6 +114,5 @@ public class TenantEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/b5b66098/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 8508d91..d2664f4 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
@@ -47,6 +47,10 @@ class TopologyEventMessageDelegator 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/b5b66098/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
index 776b2b3..4f1f254 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
@@ -44,9 +44,6 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     private static volatile TopologyEventReceiver instance;
 
     private TopologyEventReceiver() {
-        // TODO: make pool size configurable
-        this.threadPoolId = "topology-event-receiver";
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);
@@ -69,6 +66,10 @@ public class TopologyEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
+
     private void execute() {
         try {
             // Start topic subscriber thread
@@ -96,7 +97,6 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteTopology() {


[08/19] stratos git commit: making ApplicationsEventReceiver singleton and fixing references in components

Posted by is...@apache.org.
making ApplicationsEventReceiver singleton and fixing references in components


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

Branch: refs/heads/stratos-4.1.x
Commit: 23741d83b85e67dc7e7a18ef3f1993e9be716973
Parents: e4e72d9
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:48:14 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:35:08 2015 +0530

----------------------------------------------------------------------
 .../CloudControllerServiceComponent.java        |  4 +--
 .../application/ApplicationEventReceiver.java   | 24 ++++++-------
 .../extension/api/LoadBalancerExtension.java    |  6 ++--
 .../StratosManagerServiceComponent.java         |  4 +--
 .../StratosManagerApplicationEventReceiver.java | 19 +++++-----
 .../application/ApplicationsEventReceiver.java  | 37 ++++++++++++++------
 .../MetadataApplicationEventReceiver.java       | 31 ++++++++--------
 .../service/registry/MetadataApiRegistry.java   |  8 ++---
 8 files changed, 75 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 74d36e7..c4c0336 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -146,8 +146,8 @@ public class CloudControllerServiceComponent {
 
     private void executeCoordinatorTasks() {
         applicationEventReceiver = new ApplicationEventReceiver();
-        applicationEventReceiver.setExecutorService(executorService);
-        applicationEventReceiver.execute();
+//        applicationEventReceiver.setExecutorService(executorService);
+//        applicationEventReceiver.execute();
 
         if (log.isInfoEnabled()) {
             log.info("Application event receiver thread started");

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
index bd35e25..8da5575 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/application/ApplicationEventReceiver.java
@@ -37,20 +37,20 @@ import java.util.concurrent.ExecutorService;
 public class ApplicationEventReceiver {
     private static final Log log = LogFactory.getLog(ApplicationEventReceiver.class);
     private ApplicationsEventReceiver applicationsEventReceiver;
-    private ExecutorService executorService;
+   // private ExecutorService executorService;
 
     public ApplicationEventReceiver() {
-        this.applicationsEventReceiver = new ApplicationsEventReceiver();
+        this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        if (log.isInfoEnabled()) {
-            log.info("Cloud controller application event receiver thread started");
-        }
-        applicationsEventReceiver.setExecutorService(executorService);
-        applicationsEventReceiver.execute();
-    }
+//    public void execute() {
+//        if (log.isInfoEnabled()) {
+//            log.info("Cloud controller application event receiver thread started");
+//        }
+//        applicationsEventReceiver.setExecutorService(executorService);
+//        applicationsEventReceiver.execute();
+//    }
 
     private void addEventListeners() {
         applicationsEventReceiver.addEventListener(new ApplicationInstanceTerminatedEventListener() {
@@ -76,7 +76,7 @@ public class ApplicationEventReceiver {
         });
     }
 
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/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 c2ee077..ec1ddbc 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
@@ -150,9 +150,9 @@ public class LoadBalancerExtension {
     }
 
     private void startApplicationEventReceiver(ExecutorService executorService) {
-        applicationsEventReceiver = new ApplicationsEventReceiver();
-        applicationsEventReceiver.setExecutorService(executorService);
-        applicationsEventReceiver.execute();
+        applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
+//        applicationsEventReceiver.setExecutorService(executorService);
+//        applicationsEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Application event receiver thread started");
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index ed45852..573c19d 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -220,8 +220,8 @@ public class StratosManagerServiceComponent {
      */
     private void initializeApplicationEventReceiver() {
         applicationEventReceiver = new StratosManagerApplicationEventReceiver();
-        applicationEventReceiver.setExecutorService(executorService);
-        applicationEventReceiver.execute();
+//        applicationEventReceiver.setExecutorService(executorService);
+//        applicationEventReceiver.execute();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerApplicationEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerApplicationEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerApplicationEventReceiver.java
index b6ce035..ff85c83 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerApplicationEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerApplicationEventReceiver.java
@@ -26,23 +26,22 @@ import org.apache.stratos.messaging.message.receiver.application.ApplicationsEve
 /**
  * Stratos manager application event receiver.
  */
-public class StratosManagerApplicationEventReceiver extends ApplicationsEventReceiver {
+public class StratosManagerApplicationEventReceiver {
 
     private static final Log log = LogFactory.getLog(StratosManagerApplicationEventReceiver.class);
 
     public StratosManagerApplicationEventReceiver() {
         addEventListeners();
-
     }
 
-    @Override
-    public void execute() {
-        super.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Stratos manager application event receiver thread started");
-        }
-    }
+//    @Override
+//    public void execute() {
+//        super.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Stratos manager application event receiver thread started");
+//        }
+//    }
 
     private void addEventListeners() {
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/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 9306ad2..e94bafd 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
@@ -20,27 +20,44 @@ package org.apache.stratos.messaging.message.receiver.application;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.event.initializer.CompleteApplicationsRequestEvent;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
 
-public class ApplicationsEventReceiver {
+public class ApplicationsEventReceiver extends StratosEventReceiver{
     private static final Log log = LogFactory.getLog(ApplicationsEventReceiver.class);
 
     private ApplicationsEventMessageDelegator messageDelegator;
     private ApplicationsEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile ApplicationsEventReceiver instance;
 
-    public ApplicationsEventReceiver() {
+    private ApplicationsEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("application-event-receiver", 100);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);
+        execute();
+    }
+
+    public static ApplicationsEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (ApplicationsEventReceiver.class) {
+                if (instance == null) {
+                    instance = new ApplicationsEventReceiver();
+                }
+            }
+        }
+
+        return instance;
     }
 
     public void addEventListener(EventListener eventListener) {
@@ -101,11 +118,11 @@ public class ApplicationsEventReceiver {
         });
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
index ca00c3c..e1bf929 100644
--- a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
+++ b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
@@ -40,11 +40,12 @@ import java.util.concurrent.ExecutorService;
 public class MetadataApplicationEventReceiver {
     private static final Log log = LogFactory.getLog(MetadataApplicationEventReceiver.class);
     private ApplicationsEventReceiver applicationsEventReceiver;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
 
     public MetadataApplicationEventReceiver() {
-        this.applicationsEventReceiver = new ApplicationsEventReceiver();
-        executorService = StratosThreadPool.getExecutorService(Constants.METADATA_SERVICE_THREAD_POOL_ID, 20);
+        this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
+        //executorService = StratosThreadPool.getExecutorService(Constants
+        //        .METADATA_SERVICE_THREAD_POOL_ID, 20);
         addEventListeners();
     }
 
@@ -65,19 +66,19 @@ public class MetadataApplicationEventReceiver {
                 if (log.isDebugEnabled()) {
                     log.debug("Metadata service READ WRITE locks initialized on complete applications event.");
                 }
-                terminate();
+                //terminate();
             }
         });
     }
 
-    public void execute() {
-        applicationsEventReceiver.setExecutorService(getExecutorService());
-        applicationsEventReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Metadata service application receiver started.");
-        }
-    }
+//    public void execute() {
+//        applicationsEventReceiver.setExecutorService(getExecutorService());
+//        applicationsEventReceiver.execute();
+//
+//        if (log.isInfoEnabled()) {
+//            log.info("Metadata service application receiver started.");
+//        }
+//    }
 
     public void terminate() {
         applicationsEventReceiver.terminate();
@@ -86,8 +87,8 @@ public class MetadataApplicationEventReceiver {
         }
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
+ //   public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/23741d83/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
index 47fc600..abb21ba 100644
--- a/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
+++ b/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/registry/MetadataApiRegistry.java
@@ -59,7 +59,7 @@ public class MetadataApiRegistry implements DataStore {
 //        metadataTopologyEventReceiver.execute();
 
         metadataApplicationEventReceiver = new MetadataApplicationEventReceiver();
-        metadataApplicationEventReceiver.execute();
+//        metadataApplicationEventReceiver.execute();
     }
 
     /**
@@ -421,7 +421,7 @@ public class MetadataApiRegistry implements DataStore {
 //        metadataTopologyEventReceiver.terminate();
 //    }
 
-    public void stopApplicationReceiver() {
-        metadataApplicationEventReceiver.terminate();
-    }
+//    public void stopApplicationReceiver() {
+//        metadataApplicationEventReceiver.terminate();
+//    }
 }


[17/19] stratos git commit: Refactor the aws lb extension

Posted by is...@apache.org.
Refactor the aws lb extension


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

Branch: refs/heads/stratos-4.1.x
Commit: 9f7b4837f11dc43b534ec4e604312b8dbd886734
Parents: b5b6609
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 10:41:57 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 16:55:58 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/aws/extension/AWSHelper.java |   9 +-
 .../stratos/aws/extension/AWSLoadBalancer.java  | 259 +++++++++----------
 .../org/apache/stratos/aws/extension/Main.java  |  24 +-
 3 files changed, 136 insertions(+), 156 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9f7b4837/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
index 8078252..a12fc96 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
@@ -471,20 +471,17 @@ public class AWSHelper {
     public List<Instance> getAttachedInstances(String loadBalancerName,
                                                String region) {
         try {
-            LoadBalancerDescription lbDescription = getLoadBalancerDescription(
-                    loadBalancerName, region);
+            LoadBalancerDescription lbDescription = getLoadBalancerDescription(loadBalancerName, region);
 
             if (lbDescription == null) {
-                log.warn("Could not find description of load balancer "
-                        + loadBalancerName);
+                log.warn("Could not find description of load balancer "+ loadBalancerName);
                 return null;
             }
 
             return lbDescription.getInstances();
 
         } catch (AmazonClientException e) {
-            log.error("Could not find instances attached  load balancer "
-                    + loadBalancerName, e);
+            log.error("Could not find instances attached  load balancer "+ loadBalancerName, e);
         }
 
         return null;

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f7b4837/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index 62f9882..5cd5556 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -80,63 +80,13 @@ public class AWSLoadBalancer implements LoadBalancer {
                     // Get the load balancer and update it.
 
                     if (log.isDebugEnabled()) {
-                        log.debug("Load balancer for cluster " + cluster.getClusterId() + " is already present.");
+                        log.debug(String.format("Load balancer for cluster %s is already present.", cluster.getClusterId()));
                     }
 
-                    LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
+	                if(updateExistingLoadBalancer(cluster)){
+		                activeClusters.add(cluster.getClusterId());
+	                }
 
-                    String loadBalancerName = loadBalancerInfo.getName();
-                    String region = loadBalancerInfo.getRegion();
-
-                    // Get all the instances attached - Attach newly added instances to load balancer
-
-                    // attachedInstances list is useful in finding out what are the new instances which
-                    // should be attached to this load balancer.
-                    List<Instance> attachedInstances = awsHelper.getAttachedInstances(loadBalancerName, region);
-
-                    // clusterMembers stores all the members of a cluster.
-                    Collection<Member> clusterMembers = cluster.getMembers();
-
-                    if (clusterMembers.size() > 0) {
-                        activeClusters.add(cluster.getClusterId());
-
-                        List<Instance> instancesToAddToLoadBalancer = new ArrayList<Instance>();
-                        List<String> availabilityZones = new ArrayList<String>();
-
-                        for (Member member : clusterMembers) {
-                            // if instance id of member is not in
-                            // attachedInstances
-                            // add this to instancesToAddToLoadBalancer
-                            Instance instance = new Instance(awsHelper.getAWSInstanceName(member.getInstanceId()));
-
-                            if (attachedInstances == null || !attachedInstances.contains(instance)) {
-                                instancesToAddToLoadBalancer.add(instance);
-
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Instance " + awsHelper.getAWSInstanceName(member.getInstanceId()) +
-                                            " needs to be registered to load balancer " + loadBalancerName);
-                                }
-
-                                // LB Common Member has a property 'EC2_AVAILABILITY_ZONE' points to the ec2 availability zone
-                                // for this member. Use the property value to update the LB about the relevant zone
-                                String availabilityZone = getEC2AvaialbilityZoneOfMember(member);
-                                if (availabilityZone != null) {
-                                    availabilityZones.add(availabilityZone);
-                                }
-                            }
-                        }
-
-                        if (instancesToAddToLoadBalancer.size() > 0) {
-                            awsHelper.registerInstancesToLoadBalancer(
-                                    loadBalancerName,
-                                    instancesToAddToLoadBalancer, region);
-                        }
-
-                        // update LB with the zones
-                        if (!availabilityZones.isEmpty() && !AWSExtensionContext.getInstance().isOperatingInVPC()) {
-                            awsHelper.addAvailabilityZonesForLoadBalancer(loadBalancerName, availabilityZones, region);
-                        }
-                    }
 
                 } else {
                     // Create a new load balancer for this cluster
@@ -161,8 +111,7 @@ public class AWSLoadBalancer implements LoadBalancer {
                         if (initialZones.isEmpty()) {
                             // initial availability zones not defined
                             // use the default (<region>a)
-                            initialAvailabilityZones.add(awsHelper.getAvailabilityZoneFromRegion
-                                    (region));
+                            initialAvailabilityZones.add(awsHelper.getAvailabilityZoneFromRegion(region));
                         } else {
                             // prepend the region and construct the availability zone list with
                             // full names (<region> + <zone>)
@@ -170,98 +119,29 @@ public class AWSLoadBalancer implements LoadBalancer {
                                 initialAvailabilityZones.add(region + zone);
                             }
                         }
+	                    String loadBalancerDNSName =
+			                    createAWSLoadBalancer(loadBalancerName, region, listenersForThisCluster,initialAvailabilityZones);
 
-                        // Returns DNS name of load balancer which was created.
-                        // This is used in the domain mapping of this cluster.
-                        String loadBalancerDNSName = awsHelper.createLoadBalancer(loadBalancerName, listenersForThisCluster,
-                                region, initialAvailabilityZones, AWSExtensionContext.getInstance().isOperatingInVPC());
-
-                        // enable connection draining (default) and cross zone load balancing (if specified in aws-extension.sh)
-                        awsHelper.modifyLBAttributes(loadBalancerName, region, AWSExtensionContext.getInstance().
-                                isCrossZoneLoadBalancingEnabled(), true);
-
-                        // Add the inbound rule the security group of the load balancer
-                        // For each listener, add a new rule with load balancer port as allowed protocol in the security group.
-                        // if security group id is defined, directly use that
-                        for (Listener listener : listenersForThisCluster) {
-                            int port = listener.getLoadBalancerPort();
-
-                            if (awsHelper.getLbSecurityGroupIdDefinedInConfiguration() != null && !awsHelper.
-                                    getLbSecurityGroupIdDefinedInConfiguration().isEmpty())  {
-                                for (String protocol : awsHelper.getAllowedProtocolsForLBSecurityGroup()) {
-                                    awsHelper.addInboundRuleToSecurityGroup(awsHelper.getLbSecurityGroupIdDefinedInConfiguration(),
-                                            region, protocol, port);
-                                }
-                            } else if (awsHelper.getLbSecurityGroupName() != null && !awsHelper
-                                    .getLbSecurityGroupName().isEmpty()) {
-                                for (String protocol : awsHelper.getAllowedProtocolsForLBSecurityGroup()) {
-                                    awsHelper.addInboundRuleToSecurityGroup(awsHelper.getSecurityGroupId(awsHelper
-                                            .getLbSecurityGroupName(), region), region, protocol, port);
-                                }
-                            }
-                        }
-
-                        log.info("Load balancer '" + loadBalancerDNSName + "' created for cluster '" + cluster.getClusterId());
-
-                        // Register instances in the cluster to load balancer
-                        List<Instance> instances = new ArrayList<Instance>();
-                        List<String> availabilityZones = new ArrayList<String>();
-
-                        for (Member member : clusterMembers) {
-                            String instanceId = member.getInstanceId();
-
-                            if (log.isDebugEnabled()) {
-                                log.debug("Instance " + awsHelper.getAWSInstanceName(instanceId) + " needs to be registered to load balancer "
-                                        + loadBalancerName);
-                            }
-
-                            Instance instance = new Instance();
-                            instance.setInstanceId(awsHelper.getAWSInstanceName(instanceId));
 
-                            instances.add(instance);
-                            // LB Common Member has a property 'EC2_AVAILABILITY_ZONE' which points to the ec2 availability
-                            // zone for this member. Use the property value to update the LB about the relevant zone
-                            String availabilityZone = getEC2AvaialbilityZoneOfMember(member);
-                            if (availabilityZone != null) {
-                                availabilityZones.add(availabilityZone);
-                            }
-                        }
+                        log.info(String.format("Load balancer %s  created for cluster %s " , loadBalancerDNSName, cluster.getClusterId()));
 
-                        awsHelper.registerInstancesToLoadBalancer(loadBalancerName, instances, region);
-
-                        // update LB with the zones
-                        if (!availabilityZones.isEmpty() && !AWSExtensionContext.getInstance().isOperatingInVPC()) {
-                            awsHelper.addAvailabilityZonesForLoadBalancer(loadBalancerName, availabilityZones, region);
-                        }
-
-                        // add stickiness policy
-                        if (awsHelper.getAppStickySessionCookie() != null && !awsHelper.getAppStickySessionCookie().isEmpty()) {
-                            CreateAppCookieStickinessPolicyResult result = awsHelper.createStickySessionPolicy(loadBalancerName,
-                                    awsHelper.getAppStickySessionCookie(), Constants.STICKINESS_POLICY, region);
-
-                            if (result != null) {
-                                // Take a single port mapping from a member, and apply the policy for
-                                // the LB Listener port (Proxy port of the port mapping)
-                                awsHelper.applyPolicyToLBListenerPorts(aMember.getPorts(), loadBalancerName,
-                                        Constants.STICKINESS_POLICY, region);
-                            }
-                        }
+	                    if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){
+		                    activeClusters.add(cluster.getClusterId());
+	                    }
 
                         // persist LB info
                         try {
                             persistenceManager.persist(new LBInfoDTO(loadBalancerName, cluster.getClusterId(), region));
 
                         } catch (PersistenceException e) {
-                            log.error("Unable to persist LB Information for " + loadBalancerName + ", cluster id " +
-                                    cluster.getClusterId());
+	                        log.error(String.format(
+			                        "Unable to persist LB Information for %s , cluster id %s " + loadBalancerName,
+			                        cluster.getClusterId()));
                         }
 
-                        LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(
-                                loadBalancerName, region);
+                        LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region);
+                        clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo);
 
-                        clusterIdToLoadBalancerMap.put(cluster.getClusterId(),
-                                loadBalancerInfo);
-                        activeClusters.add(cluster.getClusterId());
                     }
 
                     pause(3000);
@@ -311,7 +191,111 @@ public class AWSLoadBalancer implements LoadBalancer {
         return true;
     }
 
-    private String getEC2AvaialbilityZoneOfMember(Member member) {
+	private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region) {
+		Boolean isUpdated=false;
+		// Register instances in the cluster to load balancer
+		List<Instance> instances = new ArrayList<Instance>();
+		List<String> availabilityZones = new ArrayList<String>();
+
+		for (Member member : clusterMembers) {
+			isUpdated=true;
+		    String instanceId = member.getInstanceId();
+
+		    if (log.isDebugEnabled()) {
+		        log.debug("Instance " + awsHelper.getAWSInstanceName(instanceId) + " needs to be registered to load balancer "
+		                + loadBalancerName);
+		    }
+
+		    Instance instance = new Instance();
+		    instance.setInstanceId(awsHelper.getAWSInstanceName(instanceId));
+
+		    instances.add(instance);
+		    // LB Common Member has a property 'EC2_AVAILABILITY_ZONE' which points to the ec2 availability
+		    // zone for this member. Use the property value to update the LB about the relevant zone
+		    String availabilityZone = getEC2AvaialbilityZoneOfMember(member);
+		    if (availabilityZone != null) {
+		        availabilityZones.add(availabilityZone);
+		    }
+
+			// add stickiness policy
+			if (awsHelper.getAppStickySessionCookie() != null && !awsHelper.getAppStickySessionCookie().isEmpty()) {
+				CreateAppCookieStickinessPolicyResult result = awsHelper.createStickySessionPolicy(loadBalancerName, awsHelper.getAppStickySessionCookie(),
+				                                                                                   Constants.STICKINESS_POLICY,
+				                                                                                   region);
+
+				if (result != null) {
+					// Take a single port mapping from a member, and apply the policy for
+					// the LB Listener port (Proxy port of the port mapping)
+					awsHelper.applyPolicyToLBListenerPorts(member.getPorts(), loadBalancerName,
+					                                       Constants.STICKINESS_POLICY, region);
+				}
+			}
+
+		}
+
+		awsHelper.registerInstancesToLoadBalancer(loadBalancerName, instances, region);
+
+		// update LB with the zones
+		if (!availabilityZones.isEmpty() && !AWSExtensionContext.getInstance().isOperatingInVPC()) {
+		    awsHelper.addAvailabilityZonesForLoadBalancer(loadBalancerName, availabilityZones, region);
+		}
+		return isUpdated;
+	}
+
+	private String createAWSLoadBalancer(String loadBalancerName, String region, List<Listener> listenersForThisCluster,
+	                                     Set<String> initialAvailabilityZones) throws LoadBalancerExtensionException {
+		// Returns DNS name of load balancer which was created.
+		// This is used in the domain mapping of this cluster.
+		String loadBalancerDNSName = awsHelper.createLoadBalancer(loadBalancerName, listenersForThisCluster,
+		        region, initialAvailabilityZones, AWSExtensionContext.getInstance().isOperatingInVPC());
+
+		// enable connection draining (default) and cross zone load balancing (if specified in aws-extension.sh)
+		awsHelper.modifyLBAttributes(loadBalancerName, region, AWSExtensionContext.getInstance().
+		        isCrossZoneLoadBalancingEnabled(), true);
+		// Add the inbound rule the security group of the load balancer
+		// For each listener, add a new rule with load balancer port as allowed protocol in the security group.
+		// if security group id is defined, directly use that
+		for (Listener listener : listenersForThisCluster) {
+			int port = listener.getLoadBalancerPort();
+
+			if (awsHelper.getLbSecurityGroupIdDefinedInConfiguration() != null && !awsHelper.getLbSecurityGroupIdDefinedInConfiguration().isEmpty()) {
+				for (String protocol : awsHelper.getAllowedProtocolsForLBSecurityGroup()) {
+					awsHelper.addInboundRuleToSecurityGroup(awsHelper.getLbSecurityGroupIdDefinedInConfiguration(),
+					                                        region, protocol, port);
+				}
+			} else if (awsHelper.getLbSecurityGroupName() != null && !awsHelper
+					.getLbSecurityGroupName().isEmpty()) {
+				for (String protocol : awsHelper.getAllowedProtocolsForLBSecurityGroup()) {
+					awsHelper.addInboundRuleToSecurityGroup(awsHelper.getSecurityGroupId(awsHelper.getLbSecurityGroupName(),region), region, protocol,port);
+				}
+			}
+		}
+
+		return loadBalancerDNSName;
+	}
+
+	private Boolean updateExistingLoadBalancer(Cluster cluster) {
+		Boolean isUpdated=false;
+		LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
+
+		String loadBalancerName = loadBalancerInfo.getName();
+		String region = loadBalancerInfo.getRegion();
+
+		// Get all the instances attached - Attach newly added instances to load balancer
+
+		// attachedInstances list is useful in finding out what are the new instances which
+		// should be attached to this load balancer.
+		List<Instance> attachedInstances = awsHelper.getAttachedInstances(loadBalancerName, region);
+
+		// clusterMembers stores all the members of a cluster.
+		Collection<Member> clusterMembers = cluster.getMembers();
+
+		isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region);
+
+		return isUpdated;
+	}
+
+	private String getEC2AvaialbilityZoneOfMember(Member member) {
         if (member.getProperties() != null) {
             return member.getProperties().getProperty(Constants.EC2_AVAILABILITY_ZONE_PROPERTY);
         }
@@ -324,7 +308,6 @@ public class AWSLoadBalancer implements LoadBalancer {
      * nothing but logs the message.
      */
     public void start() throws LoadBalancerExtensionException {
-
         log.info("AWS load balancer extension started.");
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/9f7b4837/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
index 73fa971..80b6481 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
@@ -25,6 +25,7 @@ import org.apache.log4j.PropertyConfigurator;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
 import org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension;
+import org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException;
 
 import java.util.concurrent.ExecutorService;
 
@@ -34,6 +35,8 @@ import java.util.concurrent.ExecutorService;
 
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
+	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
+	public static final int THREAD_POOL_SIZE = 10;
 	private static ExecutorService executorService;
 
 	public static void main(String[] args) {
@@ -41,23 +44,20 @@ public class Main {
 		LoadBalancerExtension extension = null;
 		try {
 			// Configure log4j properties
-			PropertyConfigurator.configure(System
-					.getProperty("log4j.properties.file.path"));
+			PropertyConfigurator.configure(System.getProperty("log4j.properties.file.path"));
 
 			if (log.isInfoEnabled()) {
 				log.info("AWS extension started");
 			}
 
-			executorService = StratosThreadPool.getExecutorService(
-					"aws.extension.thread.pool", 10);
+			executorService = StratosThreadPool.getExecutorService(AWS_EXTENSION_THREAD_POOL, THREAD_POOL_SIZE);
 			// Validate runtime parameters
 			AWSExtensionContext.getInstance().validate();
 			TopologyProvider topologyProvider = new TopologyProvider();
-			AWSStatisticsReader statisticsReader = AWSExtensionContext
-					.getInstance().isCEPStatsPublisherEnabled() ? new AWSStatisticsReader(
-					topologyProvider) : null;
-			extension = new LoadBalancerExtension(new AWSLoadBalancer(),
-					statisticsReader, topologyProvider);
+			AWSStatisticsReader statisticsReader =
+					AWSExtensionContext.getInstance().isCEPStatsPublisherEnabled() ? new AWSStatisticsReader(
+							topologyProvider) : null;
+			extension = new LoadBalancerExtension(new AWSLoadBalancer(), statisticsReader, topologyProvider);
 			extension.setExecutorService(executorService);
 			extension.execute();
 
@@ -68,7 +68,7 @@ public class Main {
 				public void run() {
 					try {
 						if (finalExtension != null) {
-							log.info("Shutting aws extension...");
+							log.info("Shutting aws LB extension...");
 							finalExtension.stop();
 						}
 						mainThread.join();
@@ -77,9 +77,9 @@ public class Main {
 					}
 				}
 			});
-		} catch (Exception e) {
+		} catch (LoadBalancerExtensionException e) {
 			if (log.isErrorEnabled()) {
-				log.error(e);
+				log.error("Error occurred while running the aws lb extension");
 			}
 			if (extension != null) {
 				log.info("Shutting aws extension...");


[06/19] stratos git commit: making DomainMappingEventReceiver singleton and fixing references in components

Posted by is...@apache.org.
making DomainMappingEventReceiver singleton and fixing references in components


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

Branch: refs/heads/stratos-4.1.x
Commit: bd37f9ce1ef3c3229e1cabf5e9055d15f111a6ef
Parents: f688296
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:22:37 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:34:40 2015 +0530

----------------------------------------------------------------------
 ...alancerCommonDomainMappingEventReceiver.java |  8 ++++---
 .../extension/api/LoadBalancerExtension.java    |  9 ++++----
 .../internal/LoadBalancerServiceComponent.java  | 24 ++++++++++----------
 .../mapping/DomainMappingEventReceiver.java     | 21 ++++++++++++++---
 4 files changed, 40 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/bd37f9ce/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
index a51ed22..c0d9f81 100644
--- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonDomainMappingEventReceiver.java
@@ -34,13 +34,15 @@ import org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappin
  * Load balancer common domain mapping event receiver updates the topology in the given topology provider
  * with the domains found in domain mapping events.
  */
-public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingEventReceiver {
+public class LoadBalancerCommonDomainMappingEventReceiver {
 
     private static final Log log = LogFactory.getLog(LoadBalancerCommonDomainMappingEventReceiver.class);
 
     private TopologyProvider topologyProvider;
+    private DomainMappingEventReceiver domainMappingEventReceiver;
 
     public LoadBalancerCommonDomainMappingEventReceiver(TopologyProvider topologyProvider) {
+        this.domainMappingEventReceiver = DomainMappingEventReceiver.getInstance();
         this.topologyProvider = topologyProvider;
         addEventListeners();
     }
@@ -57,7 +59,7 @@ public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingE
      * domain mapping events.
      */
     public void addEventListeners() {
-        addEventListener(new DomainMappingAddedEventListener() {
+        domainMappingEventReceiver.addEventListener(new DomainMappingAddedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 DomainMappingAddedEvent domainMappingAddedEvent = (DomainMappingAddedEvent) event;
@@ -75,7 +77,7 @@ public class LoadBalancerCommonDomainMappingEventReceiver extends DomainMappingE
             }
         });
 
-        addEventListener(new DomainMappingRemovedEventListener() {
+        domainMappingEventReceiver.addEventListener(new DomainMappingRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 DomainMappingRemovedEvent domainMappingRemovedEvent = (DomainMappingRemovedEvent) event;

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd37f9ce/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 d2a8cb3..c2ee077 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
@@ -39,6 +39,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
 import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
 import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
+import org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappingEventReceiver;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
 
 import java.util.concurrent.ExecutorService;
@@ -170,8 +171,8 @@ public class LoadBalancerExtension {
         addDomainMappingsEventListeners(domainMappingEventReceiver);
         // Add default domain mapping event listeners
         domainMappingEventReceiver.addEventListeners();
-        domainMappingEventReceiver.setExecutorService(executorService);
-        domainMappingEventReceiver.execute();
+//        domainMappingEventReceiver.setExecutorService(executorService);
+//        domainMappingEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Domain mapping event receiver thread started");
         }
@@ -179,14 +180,14 @@ public class LoadBalancerExtension {
 
     private void addDomainMappingsEventListeners(final LoadBalancerCommonDomainMappingEventReceiver
                                                          domainMappingEventReceiver) {
-        domainMappingEventReceiver.addEventListener(new DomainMappingAddedEventListener() {
+        DomainMappingEventReceiver.getInstance().addEventListener(new DomainMappingAddedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();
             }
         });
 
-        domainMappingEventReceiver.addEventListener(new DomainMappingRemovedEventListener() {
+        DomainMappingEventReceiver.getInstance().addEventListener(new DomainMappingRemovedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 reloadConfiguration();

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd37f9ce/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index e772322..3786af8 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -173,11 +173,11 @@ public class LoadBalancerServiceComponent {
         }
 
         domainMappingEventReceiver = new LoadBalancerDomainMappingEventReceiver(topologyProvider);
-        domainMappingEventReceiver.setExecutorService(executorService);
-        domainMappingEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Domain mapping event receiver thread started");
-        }
+//        domainMappingEventReceiver.setExecutorService(executorService);
+//        domainMappingEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Domain mapping event receiver thread started");
+//        }
     }
 
     private void startApplicationSignUpEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
@@ -275,13 +275,13 @@ public class LoadBalancerServiceComponent {
 //        }
 
         // Terminate domain mapping event receiver
-        if (domainMappingEventReceiver != null) {
-            try {
-                domainMappingEventReceiver.terminate();
-            } catch (Exception e) {
-                log.warn("An error occurred while terminating domain mapping event receiver", e);
-            }
-        }
+//        if (domainMappingEventReceiver != null) {
+//            try {
+//                domainMappingEventReceiver.terminate();
+//            } catch (Exception e) {
+//                log.warn("An error occurred while terminating domain mapping event receiver", e);
+//            }
+//        }
 
         // Terminate statistics notifier
         if (statisticsNotifier != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/bd37f9ce/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 1d582b5..3c723a3 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -21,8 +21,10 @@ package org.apache.stratos.messaging.message.receiver.domain.mapping;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -30,16 +32,18 @@ import java.util.concurrent.ExecutorService;
 /**
  * Domain mapping event receiver.
  */
-public class DomainMappingEventReceiver {
+public class DomainMappingEventReceiver extends StratosEventReceiver {
 
     private static final Log log = LogFactory.getLog(DomainMappingEventReceiver.class);
 
     private DomainMappingEventMessageDelegator messageDelegator;
     private DomainMappingEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private ExecutorService executorService;
+    private static volatile DomainMappingEventReceiver instance;
 
-    public DomainMappingEventReceiver() {
+    private DomainMappingEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 100);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -49,6 +53,17 @@ public class DomainMappingEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public static DomainMappingEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (DomainMappingEventReceiver.class) {
+                if (instance == null) {
+                    instance = new DomainMappingEventReceiver();
+                }
+            }
+        }
+
+        return instance;
+    }
 
     public void execute() {
         try {


[14/19] stratos git commit: shutting down thread pools from event receivers

Posted by is...@apache.org.
shutting down thread pools from event receivers


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

Branch: refs/heads/stratos-4.1.x
Commit: 570d74ea5543908c2362cc9b3c6224276921de48
Parents: 4c6442a
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 18 07:23:07 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 18 07:23:07 2015 +0530

----------------------------------------------------------------------
 .../common/threading/StratosThreadPool.java     | 30 +++++++++++++++++---
 .../message/receiver/StratosEventReceiver.java  |  1 +
 .../application/ApplicationsEventReceiver.java  |  4 ++-
 .../signup/ApplicationSignUpEventReceiver.java  |  4 ++-
 .../status/ClusterStatusEventReceiver.java      |  4 ++-
 .../mapping/DomainMappingEventReceiver.java     |  4 ++-
 .../health/stat/HealthStatEventReceiver.java    |  4 ++-
 .../initializer/InitializerEventReceiver.java   |  4 ++-
 .../notifier/InstanceNotifierEventReceiver.java |  7 ++---
 .../status/InstanceStatusEventReceiver.java     |  5 ++--
 .../receiver/tenant/TenantEventReceiver.java    |  4 ++-
 .../topology/TopologyEventReceiver.java         |  4 ++-
 12 files changed, 57 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
index 687cec2..b28fb40 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadPool.java
@@ -24,10 +24,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.*;
 
 /**
  * Utility class for Stratos thread pool
@@ -84,4 +81,29 @@ public class StratosThreadPool {
         }
         return scheduledExecutorService;
     }
+
+    public static void shutdown (String identifier) {
+
+        ExecutorService executorService = executorServiceMap.get(identifier);
+        if (executorService == null) {
+            log.warn("No executor service found for id " + identifier + ", unable to shut down");
+            return;
+        }
+
+        // try to shut down gracefully
+        executorService.shutdown();
+        // wait 10 secs till terminated
+        try {
+            if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) {
+                log.info("Thread Pool [id] " + identifier + " did not finish all tasks before " +
+                        "timeout, forcefully shutting down");
+                executorService.shutdownNow();
+            }
+        } catch (InterruptedException e) {
+            // interrupted, shutdown now
+            executorService.shutdownNow();
+        }
+
+        log.info("Successfully shutdown thread pool associated with id: " + identifier);
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
index 5ac89e6..5040371 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/StratosEventReceiver.java
@@ -24,6 +24,7 @@ import java.util.concurrent.ExecutorService;
 public class StratosEventReceiver {
 
     protected ExecutorService executorService;
+    protected String threadPoolId;
 
     public StratosEventReceiver () {
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/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 69dba01..697d9dd 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
@@ -39,7 +39,8 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
 
     private ApplicationsEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("application-event-receiver", 100);
+        this.threadPoolId = "application-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);
@@ -94,6 +95,7 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteApplicationsModel() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
index df90cf9..89cf7ea 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
@@ -44,7 +44,8 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
 
     private ApplicationSignUpEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("application-signup-event-receiver", 100);
+        this.threadPoolId = "application-signup-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);
@@ -116,5 +117,6 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
index be42b43..bdbd509 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
@@ -40,7 +40,8 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
 
     private ClusterStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("clusterstatus-event-receiver", 100);
+        this.threadPoolId = "clusterstatus-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);
@@ -90,6 +91,7 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public boolean isSubscribed() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 6de99c0..7ce3982 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -41,7 +41,8 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
 
     private DomainMappingEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 100);
+        this.threadPoolId = "domainmapping-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -67,6 +68,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     private void execute() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
index a9d2602..1699592 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
@@ -40,7 +40,8 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
 
     private HealthStatEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("healthstat-event-receiver", 100);
+        this.threadPoolId = "healthstat-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 100);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);
@@ -86,5 +87,6 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
index 805a8bf..6c948a0 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/initializer/InitializerEventReceiver.java
@@ -39,7 +39,8 @@ public class InitializerEventReceiver extends StratosEventReceiver {
 
     private InitializerEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("initializer-event-receiver", 100);
+        this.threadPoolId = "initializer-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);
@@ -84,5 +85,6 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
index e0b8e9f..e8f84c2 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/notifier/InstanceNotifierEventReceiver.java
@@ -36,11 +36,11 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     private EventSubscriber eventSubscriber;
     private InstanceNotifierEventMessageListener messageListener;
     private static volatile InstanceNotifierEventReceiver instance;
-    //private boolean terminated;
 
     private InstanceNotifierEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.threadPoolId = "instance-notifier-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceNotifierEventMessageListener(messageQueue);
@@ -94,7 +94,6 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     public synchronized void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        //terminated = true;
-        log.info("InstanceNotifierEventReceiver terminated");
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index a565ea9..233de18 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -39,7 +39,8 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
 
     private InstanceStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.threadPoolId = "instance-status_event-reciever";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);
@@ -91,6 +92,6 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-       // terminated = true;
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
index a52cb20..5726d44 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
@@ -43,7 +43,8 @@ public class TenantEventReceiver extends StratosEventReceiver {
 
     private TenantEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("tenant-event-receiver", 100);
+        this.threadPoolId = "tenant-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);
@@ -112,5 +113,6 @@ public class TenantEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/570d74ea/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
index bfa3950..776b2b3 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
@@ -45,7 +45,8 @@ public class TopologyEventReceiver extends StratosEventReceiver {
 
     private TopologyEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.threadPoolId = "topology-event-receiver";
+        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, 20);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);
@@ -95,6 +96,7 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteTopology() {


[11/19] stratos git commit: commenting unused methods after making EventReceivers singleton

Posted by is...@apache.org.
commenting unused methods after making EventReceivers singleton


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

Branch: refs/heads/stratos-4.1.x
Commit: 35bec3cb67c3d3d9f62616b3474309b7a3d6cb1a
Parents: 3bb9de9
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 16:04:54 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 16:04:54 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerHealthStatEventReceiver.java      | 31 -------------
 .../StratosManagerServiceComponent.java         | 49 --------------------
 .../status/InstanceStatusEventReceiver.java     |  4 --
 .../topology/TopologyEventReceiver.java         |  8 ----
 4 files changed, 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/35bec3cb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
index 55dc1fa..4201ec1 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/health/AutoscalerHealthStatEventReceiver.java
@@ -41,28 +41,12 @@ public class AutoscalerHealthStatEventReceiver {
     private static final Log log = LogFactory.getLog(AutoscalerHealthStatEventReceiver.class);
 
     private HealthStatEventReceiver healthStatEventReceiver;
-<<<<<<< HEAD
-    private ExecutorService executorService;
-=======
->>>>>>> d4b35c0... removing unused methods
 
     public AutoscalerHealthStatEventReceiver() {
         this.healthStatEventReceiver = HealthStatEventReceiver.getInstance();
         addEventListeners();
     }
 
-<<<<<<< HEAD
-//    public void execute() {
-//        healthStatEventReceiver.setExecutorService(executorService);
-//        healthStatEventReceiver.execute();
-//
-//        if (log.isInfoEnabled()) {
-//            log.info("Autoscaler health stat event receiver thread started");
-//        }
-//    }
-
-=======
->>>>>>> d4b35c0... removing unused methods
     private void addEventListeners() {
         // Listen to health stat events that affect clusters
         healthStatEventReceiver.addEventListener(new AverageLoadAverageEventListener() {
@@ -480,19 +464,4 @@ public class AutoscalerHealthStatEventReceiver {
             TopologyManager.releaseReadLock();
         }
     }
-<<<<<<< HEAD
-
-    public void terminate() {
-        this.terminated = true;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
-=======
->>>>>>> d4b35c0... removing unused methods
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/35bec3cb/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index 7c421d9..aa7cc02 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -193,11 +193,6 @@ public class StratosManagerServiceComponent {
 
     private void initializeInitializerEventReceiver() {
         initializerTopicReceiver = new StratosManagerInitializerTopicReceiver();
-<<<<<<< HEAD
-//        initializerTopicReceiver.setExecutorService(executorService);
-//        initializerTopicReceiver.execute();
-=======
->>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -205,11 +200,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeInstanceStatusEventReceiver() {
         instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
-<<<<<<< HEAD
-//        instanceStatusEventReceiver.setExecutorService(executorService);
-//        instanceStatusEventReceiver.execute();
-=======
->>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -217,11 +207,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = new StratosManagerTopologyEventReceiver();
-<<<<<<< HEAD
-//        topologyEventReceiver.setExecutorService(executorService);
-//        topologyEventReceiver.execute();
-=======
->>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -229,11 +214,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeApplicationEventReceiver() {
         applicationEventReceiver = new StratosManagerApplicationEventReceiver();
-<<<<<<< HEAD
-//        applicationEventReceiver.setExecutorService(executorService);
-//        applicationEventReceiver.execute();
-=======
->>>>>>> d4b35c0... removing unused methods
     }
 
     /**
@@ -348,34 +328,5 @@ public class StratosManagerServiceComponent {
         // Close event publisher connections to message broker
         EventPublisherPool.close(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName());
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
-<<<<<<< HEAD
-
-        shutdownExecutorService(THREAD_POOL_ID);
-        shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
-    }
-
-    private void shutdownExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownScheduledExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
-        }
-    }
-
-    private void shutdownExecutorService(ExecutorService executorService) {
-        try {
-            executorService.shutdownNow();
-        } catch (Exception e) {
-            log.warn("An error occurred while shutting down executor service", e);
-        }
-    }
-=======
     }
->>>>>>> d4b35c0... removing unused methods
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/35bec3cb/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
index 5bc27ff..a2a1623 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
@@ -39,11 +39,7 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
 
     private InstanceStatusEventReceiver() {
         // TODO: make pool size configurable
-<<<<<<< HEAD
         this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
-=======
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
->>>>>>> d4b35c0... removing unused methods
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/35bec3cb/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
index 50e078a..8378486 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
@@ -117,12 +117,4 @@ public class TopologyEventReceiver extends StratosEventReceiver {
             }
         });
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executorService;
-//    }
-//
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }


[18/19] stratos git commit: Refactor AWS LB extension

Posted by is...@apache.org.
Refactor AWS LB extension


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

Branch: refs/heads/stratos-4.1.x
Commit: f7d0317970f451670f36397c83a7b8d09d4e0e63
Parents: 7f9bcf7
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Dec 21 17:27:43 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 16:55:58 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/aws/extension/AWSHelper.java | 58 ++++++++------------
 .../stratos/aws/extension/AWSLoadBalancer.java  | 26 +++++++--
 .../org/apache/stratos/aws/extension/Main.java  |  6 +-
 3 files changed, 49 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f7d03179/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
index ef66290..85d6811 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java
@@ -19,24 +19,8 @@
 
 package org.apache.stratos.aws.extension;
 
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.services.ec2.model.*;
-import com.amazonaws.services.elasticloadbalancing.model.Instance;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.load.balancer.common.domain.*;
-import org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-
 import com.amazonaws.AmazonClientException;
+import com.amazonaws.AmazonServiceException;
 import com.amazonaws.ClientConfiguration;
 import com.amazonaws.auth.BasicAWSCredentials;
 import com.amazonaws.services.cloudwatch.AmazonCloudWatchClient;
@@ -45,8 +29,24 @@ import com.amazonaws.services.cloudwatch.model.Dimension;
 import com.amazonaws.services.cloudwatch.model.GetMetricStatisticsRequest;
 import com.amazonaws.services.cloudwatch.model.GetMetricStatisticsResult;
 import com.amazonaws.services.ec2.AmazonEC2Client;
+import com.amazonaws.services.ec2.model.*;
 import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient;
 import com.amazonaws.services.elasticloadbalancing.model.*;
+import com.amazonaws.services.elasticloadbalancing.model.Instance;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.load.balancer.common.domain.Member;
+import org.apache.stratos.load.balancer.common.domain.Port;
+import org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class AWSHelper {
     private String awsAccessKey;
@@ -125,11 +125,6 @@ public class AWSHelper {
                         "group id is required");
             }
 
-//            if (this.lbSecurityGroupName.isEmpty() || this.lbSecurityGroupName.length() >
-//                    Constants.SECURITY_GROUP_NAME_MAX_LENGTH) {
-//                throw new LoadBalancerExtensionException("Invalid load balancer security group name.");
-//            }
-
             // Read the SSL certificate Id. This is mandatory if only we are using HTTPS as the front end protocol.
             // http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-elb-listenerconfig-quickref.html
             this.sslCertificateId = properties
@@ -270,12 +265,6 @@ public class AWSHelper {
 
         createLoadBalancerRequest.setListeners(listeners);
 
-        // don't need this now since we are anyway updating zone according to the member
-//		Set<String> availabilityZones = new HashSet<String>();
-//		availabilityZones.add(getAvailabilityZoneFromRegion(region));
-//
-//		createLoadBalancerRequest.setAvailabilityZones(availabilityZones);
-        
 
         try {
             if (inVPC) {
@@ -365,10 +354,11 @@ public class AWSHelper {
             log.info(instance.getInstanceId());
         }
 
-        RegisterInstancesWithLoadBalancerRequest registerInstancesWithLoadBalancerRequest = new RegisterInstancesWithLoadBalancerRequest(
-                loadBalancerName, instances);
+	    RegisterInstancesWithLoadBalancerRequest registerInstancesWithLoadBalancerRequest =
+			    new RegisterInstancesWithLoadBalancerRequest(
+					    loadBalancerName, instances);
 
-        RegisterInstancesWithLoadBalancerResult registerInstancesWithLBRes = null;
+	    RegisterInstancesWithLoadBalancerResult registerInstancesWithLBRes = null;
 
         try {
             elbClient.setEndpoint(String.format(
@@ -969,10 +959,10 @@ public class AWSHelper {
             int instancePort = port.getValue();
             int proxyPort = port.getProxy();
             String protocol = port.getProtocol().toUpperCase();
-            String instanceProtocol = protocol;
+
 
             Listener listener = new Listener(protocol, proxyPort, instancePort);
-            listener.setInstanceProtocol(instanceProtocol);
+            listener.setInstanceProtocol(protocol);
             if ("HTTPS".equalsIgnoreCase(protocol) || "SSL".equalsIgnoreCase(protocol)) {
                 // if the SSL certificate is not configured in the aws.properties file, can't continue
                 if (getSslCertificateId() == null || getSslCertificateId().isEmpty()) {
@@ -996,7 +986,7 @@ public class AWSHelper {
     /**
      * Constructs name of the load balancer to be associated with the cluster
      *
-     * @param clusterId
+     * @param serviceName
      * @return name of the load balancer
      * @throws LoadBalancerExtensionException
      */

http://git-wip-us.apache.org/repos/asf/stratos/blob/f7d03179/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index b365c9b..f5210b9 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -127,7 +127,7 @@ public class AWSLoadBalancer implements LoadBalancer {
 
                         log.info(String.format("Load balancer %s  created for cluster %s " , loadBalancerDNSName, cluster.getClusterId()));
 
-	                    if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){
+	                    if(addClusterMembersInfo(clusterMembers, loadBalancerName, region,null)){
 		                    activeClusters.add(cluster.getClusterId());
 	                    }
 
@@ -192,7 +192,8 @@ public class AWSLoadBalancer implements LoadBalancer {
         return true;
     }
 
-	private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region) {
+	private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region,
+	                                      List<Instance> attachedInstances) {
 		Boolean isUpdated=false;
 		// Register instances in the cluster to load balancer
 		List<Instance> instances = new ArrayList<Instance>();
@@ -208,6 +209,22 @@ public class AWSLoadBalancer implements LoadBalancer {
 		    }
 
 		    Instance instance = new Instance();
+
+			if (attachedInstances == null || !attachedInstances.contains(instance)) {
+				instances.add(instance);
+
+				if (log.isDebugEnabled()) {
+					log.debug("Instance " + awsHelper.getAWSInstanceName(member.getInstanceId()) +
+					          " needs to be registered to load balancer " + loadBalancerName);
+				}
+
+				// LB Common Member has a property 'EC2_AVAILABILITY_ZONE' points to the ec2 availability zone
+				// for this member. Use the property value to update the LB about the relevant zone
+				String availabilityZone = getEC2AvaialbilityZoneOfMember(member);
+				if (availabilityZone != null) {
+					availabilityZones.add(availabilityZone);
+				}
+			}
 		    instance.setInstanceId(awsHelper.getAWSInstanceName(instanceId));
 
 		    instances.add(instance);
@@ -220,7 +237,8 @@ public class AWSLoadBalancer implements LoadBalancer {
 
 			// add stickiness policy
 			if (awsHelper.getAppStickySessionCookie() != null && !awsHelper.getAppStickySessionCookie().isEmpty()) {
-				CreateAppCookieStickinessPolicyResult result = awsHelper.createStickySessionPolicy(loadBalancerName, awsHelper.getAppStickySessionCookie(),
+				CreateAppCookieStickinessPolicyResult result = awsHelper.createStickySessionPolicy(loadBalancerName,
+				                                                                                   awsHelper.getAppStickySessionCookie(),
 				                                                                                   Constants.STICKINESS_POLICY,
 				                                                                                   region);
 
@@ -291,7 +309,7 @@ public class AWSLoadBalancer implements LoadBalancer {
 		// clusterMembers stores all the members of a cluster.
 		Collection<Member> clusterMembers = cluster.getMembers();
 
-		isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region);
+		isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region,attachedInstances);
 
 		return isUpdated;
 	}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f7d03179/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
index 80b6481..0ea2005 100644
--- a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
+++ b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
@@ -36,7 +36,7 @@ import java.util.concurrent.ExecutorService;
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
 	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
-	public static final int THREAD_POOL_SIZE = 10;
+	public static final int THREAD_POOL_SIZE =2;
 	private static ExecutorService executorService;
 
 	public static void main(String[] args) {
@@ -73,13 +73,13 @@ public class Main {
 						}
 						mainThread.join();
 					} catch (Exception e) {
-						log.error(e);
+						log.error("Error occurred while shutting down the aws lb extension",e);
 					}
 				}
 			});
 		} catch (LoadBalancerExtensionException e) {
 			if (log.isErrorEnabled()) {
-				log.error("Error occurred while running the aws lb extension");
+				log.error("Error occurred while running the aws lb extension",e);
 			}
 			if (extension != null) {
 				log.info("Shutting aws extension...");


[07/19] stratos git commit: making ClusterStatusEventReceiver singleton and fixing references in components

Posted by is...@apache.org.
making ClusterStatusEventReceiver singleton and fixing references in components


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

Branch: refs/heads/stratos-4.1.x
Commit: e4e72d94e3bf2896dc7f8806faa085c7680b848e
Parents: bd37f9c
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:30:49 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 17 11:34:50 2015 +0530

----------------------------------------------------------------------
 .../CloudControllerServiceComponent.java        |  4 +-
 .../status/ClusterStatusTopicReceiver.java      | 59 ++++++++++----------
 .../status/ClusterStatusEventReceiver.java      | 51 +++++++++++------
 .../mapping/DomainMappingEventReceiver.java     | 27 ++++-----
 4 files changed, 78 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e4e72d94/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 2368596..74d36e7 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -154,8 +154,8 @@ public class CloudControllerServiceComponent {
         }
 
         clusterStatusTopicReceiver = new ClusterStatusTopicReceiver();
-        clusterStatusTopicReceiver.setExecutorService(executorService);
-        clusterStatusTopicReceiver.execute();
+//        clusterStatusTopicReceiver.setExecutorService(executorService);
+//        clusterStatusTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
             log.info("Cluster status event receiver thread started");

http://git-wip-us.apache.org/repos/asf/stratos/blob/e4e72d94/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
index daa6bf5..e0b9f62 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
@@ -32,28 +32,27 @@ import java.util.concurrent.ExecutorService;
 public class ClusterStatusTopicReceiver {
     private static final Log log = LogFactory.getLog(ClusterStatusTopicReceiver.class);
 
-    private ClusterStatusEventReceiver statusEventReceiver;
-    private boolean terminated;
-    private ExecutorService executorService;
+    private ClusterStatusEventReceiver clusterStatusEventReceiver;
+    //private boolean terminated;
+    //private ExecutorService executorService;
 
     public ClusterStatusTopicReceiver() {
-        this.statusEventReceiver = new ClusterStatusEventReceiver();
-
+        this.clusterStatusEventReceiver = ClusterStatusEventReceiver.getInstance();
         addEventListeners();
     }
 
-    public void execute() {
-        statusEventReceiver.setExecutorService(executorService);
-        statusEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Cloud controller Cluster status thread started");
-        }
-
-    }
+//    public void execute() {
+//        clusterStatusEventReceiver.setExecutorService(executorService);
+//        clusterStatusEventReceiver.execute();
+//        if (log.isInfoEnabled()) {
+//            log.info("Cloud controller Cluster status thread started");
+//        }
+//
+//    }
 
     private void addEventListeners() {
         // Listen to topology events that affect clusters
-        statusEventReceiver.addEventListener(new ClusterStatusClusterResetEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterResetEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -64,14 +63,14 @@ public class ClusterStatusTopicReceiver {
             }
         });
 
-        statusEventReceiver.addEventListener(new ClusterStatusClusterInstanceCreatedEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterInstanceCreatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 //TopologyBuilder.handleClusterInstanceCreated((ClusterStatusClusterInstanceCreatedEvent) event);
             }
         });
 
-        statusEventReceiver.addEventListener(new ClusterStatusClusterActivatedEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -82,7 +81,7 @@ public class ClusterStatusTopicReceiver {
             }
         });
 
-        statusEventReceiver.addEventListener(new ClusterStatusClusterTerminatedEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -93,7 +92,7 @@ public class ClusterStatusTopicReceiver {
             }
         });
 
-        statusEventReceiver.addEventListener(new ClusterStatusClusterTerminatingEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterTerminatingEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -104,7 +103,7 @@ public class ClusterStatusTopicReceiver {
             }
         });
 
-        statusEventReceiver.addEventListener(new ClusterStatusClusterInactivateEventListener() {
+        clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterInactivateEventListener() {
             @Override
             protected void onEvent(Event event) {
                 try {
@@ -116,15 +115,15 @@ public class ClusterStatusTopicReceiver {
         });
     }
 
-    public void setTerminated(boolean terminated) {
-        this.terminated = terminated;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void setTerminated(boolean terminated) {
+//        this.terminated = terminated;
+//    }
+//
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e4e72d94/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
index 119cf49..2b4d557 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
@@ -21,8 +21,10 @@ package org.apache.stratos.messaging.message.receiver.cluster.status;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
 import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
 import java.util.concurrent.ExecutorService;
@@ -30,26 +32,39 @@ import java.util.concurrent.ExecutorService;
 /**
  * A thread for receiving instance notifier information from message broker.
  */
-public class ClusterStatusEventReceiver {
+public class ClusterStatusEventReceiver extends StratosEventReceiver {
     private static final Log log = LogFactory.getLog(ClusterStatusEventReceiver.class);
     private final ClusterStatusEventMessageDelegator messageDelegator;
     private final ClusterStatusEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
-    private boolean terminated;
-    private ExecutorService executorService;
+    private static volatile ClusterStatusEventReceiver instance;
 
-    public ClusterStatusEventReceiver() {
+    private ClusterStatusEventReceiver() {
+        // TODO: make pool size configurable
+        this.executorService = StratosThreadPool.getExecutorService("clusterstatus-event-receiver", 100);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);
+        execute();
     }
 
     public void addEventListener(EventListener eventListener) {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public static ClusterStatusEventReceiver getInstance () {
+        if (instance == null) {
+            synchronized (ClusterStatusEventReceiver.class) {
+                if (instance == null) {
+                    instance = new ClusterStatusEventReceiver();
+                }
+            }
+        }
 
-    public void execute() {
+        return instance;
+    }
+
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.CLUSTER_STATUS_TOPIC.getTopicName(), messageListener);
@@ -77,17 +92,17 @@ public class ClusterStatusEventReceiver {
         return ((eventSubscriber != null) && (eventSubscriber.isSubscribed()));
     }
 
-    public void terminate() {
-        eventSubscriber.terminate();
-        messageDelegator.terminate();
-        terminated = true;
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void terminate() {
+//        eventSubscriber.terminate();
+//        messageDelegator.terminate();
+//        terminated = true;
+//    }
+//
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e4e72d94/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
index 3c723a3..6b79873 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
@@ -47,6 +47,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
+        execute();
     }
 
     public void addEventListener(EventListener eventListener) {
@@ -65,7 +66,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
         return instance;
     }
 
-    public void execute() {
+    private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.DOMAIN_MAPPING_TOPIC.getTopicName(), messageListener);
@@ -91,16 +92,16 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
         }
     }
 
-    public void terminate() {
-        eventSubscriber.terminate();
-        messageDelegator.terminate();
-    }
-
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public void terminate() {
+//        eventSubscriber.terminate();
+//        messageDelegator.terminate();
+//    }
+//
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
+//
+//    public void setExecutorService(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }