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 2016/01/05 16:47:10 UTC

[01/50] [abbrv] stratos git commit: making TopologyEventReceiver a singleton and fixing references

Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x 8033fd38d -> 495ddb76e


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/98cd18f2
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/98cd18f2
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/98cd18f2

Branch: refs/heads/stratos-4.1.x
Commit: 98cd18f2fa33bf148ae24a899bf8aabd1799cf35
Parents: 033ab1f
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 17:28:00 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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/98cd18f2/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();
     }
 
     /**


[27/50] [abbrv] stratos git commit: Update the sh and docker files with 4.1.6-SNAPSHOT

Posted by is...@apache.org.
Update the sh and docker files with 4.1.6-SNAPSHOT


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

Branch: refs/heads/stratos-4.1.x
Commit: c7dc6662514e06e3d97840384737c43f97c69068
Parents: d9d7c36
Author: gayangunarathne <ga...@wso2.com>
Authored: Fri Dec 11 17:44:53 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:01:14 2015 +0530

----------------------------------------------------------------------
 tools/docker-images/cartridge-docker-images/base-image/Dockerfile | 2 +-
 tools/docker-images/cartridge-docker-images/base-image/files/run  | 2 +-
 tools/docker-images/cartridge-docker-images/build.sh              | 2 +-
 tools/docker-images/stratos-docker-images/run-example.sh          | 2 +-
 tools/stratos-installer/conf/setup.conf                           | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/c7dc6662/tools/docker-images/cartridge-docker-images/base-image/Dockerfile
----------------------------------------------------------------------
diff --git a/tools/docker-images/cartridge-docker-images/base-image/Dockerfile b/tools/docker-images/cartridge-docker-images/base-image/Dockerfile
index 95b3ca2..f4af792 100644
--- a/tools/docker-images/cartridge-docker-images/base-image/Dockerfile
+++ b/tools/docker-images/cartridge-docker-images/base-image/Dockerfile
@@ -22,7 +22,7 @@
 FROM debian:7.8
 MAINTAINER dev@stratos.apache.org
 
-ENV PCA_DISTRIBUTION_NAME apache-stratos-python-cartridge-agent-4.1.5-SNAPSHOT
+ENV PCA_DISTRIBUTION_NAME apache-stratos-python-cartridge-agent-4.1.6-SNAPSHOT
 # ------------------
 # Setup ssh server
 # ------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/c7dc6662/tools/docker-images/cartridge-docker-images/base-image/files/run
----------------------------------------------------------------------
diff --git a/tools/docker-images/cartridge-docker-images/base-image/files/run b/tools/docker-images/cartridge-docker-images/base-image/files/run
index ebbd34f..eed654b 100755
--- a/tools/docker-images/cartridge-docker-images/base-image/files/run
+++ b/tools/docker-images/cartridge-docker-images/base-image/files/run
@@ -26,7 +26,7 @@
 
 source /root/.bashrc
 
-export STRATOS_VERSION="4.1.5-SNAPSHOT"
+export STRATOS_VERSION="4.1.6-SNAPSHOT"
 export PCA_HOME="/mnt/apache-stratos-python-cartridge-agent-${STRATOS_VERSION}"
 
 set -o posix ; set | sed -e ':a;N;$!ba;s/\n/,/g' > ${PCA_HOME}/payload/launch-params

http://git-wip-us.apache.org/repos/asf/stratos/blob/c7dc6662/tools/docker-images/cartridge-docker-images/build.sh
----------------------------------------------------------------------
diff --git a/tools/docker-images/cartridge-docker-images/build.sh b/tools/docker-images/cartridge-docker-images/build.sh
index c90abb8..11edab9 100755
--- a/tools/docker-images/cartridge-docker-images/build.sh
+++ b/tools/docker-images/cartridge-docker-images/build.sh
@@ -26,7 +26,7 @@ pca_distribution_path=`cd "$script_path/../../../products/python-cartridge-agent
 
 pushd ${pca_distribution_path}
 mvn clean install -Dmaven.test.skip=true
-cp -vf target/apache-stratos-python-cartridge-agent-4.1.5-SNAPSHOT.zip ${script_path}/base-image/packs/
+cp -vf target/apache-stratos-python-cartridge-agent-4.1.6-SNAPSHOT.zip ${script_path}/base-image/packs/
 popd
 
 pushd ${script_path}/base-image/

http://git-wip-us.apache.org/repos/asf/stratos/blob/c7dc6662/tools/docker-images/stratos-docker-images/run-example.sh
----------------------------------------------------------------------
diff --git a/tools/docker-images/stratos-docker-images/run-example.sh b/tools/docker-images/stratos-docker-images/run-example.sh
index b03ec89..98c5acb 100755
--- a/tools/docker-images/stratos-docker-images/run-example.sh
+++ b/tools/docker-images/stratos-docker-images/run-example.sh
@@ -31,7 +31,7 @@ export DOMAIN=example.com
 export IP_ADDR=192.168.56.5
 
 # Set the version of Stratos docker images
-export STRATOS_VERSION=4.1.5-SNAPSHOT
+export STRATOS_VERSION=4.1.6-SNAPSHOT
 
 ########
 # Bind

http://git-wip-us.apache.org/repos/asf/stratos/blob/c7dc6662/tools/stratos-installer/conf/setup.conf
----------------------------------------------------------------------
diff --git a/tools/stratos-installer/conf/setup.conf b/tools/stratos-installer/conf/setup.conf
index 740a8f4..229b172 100644
--- a/tools/stratos-installer/conf/setup.conf
+++ b/tools/stratos-installer/conf/setup.conf
@@ -55,7 +55,7 @@ export mb_ip="127.0.0.1" # Machine ip on which mb run
 export mb_port=61616 #default port which the message broker service runs
  
 export stratos_extract_path=$stratos_path/"apache-stratos"
-export stratos_pack_zip_name="apache-stratos-4.1.5-SNAPSHOT.zip"
+export stratos_pack_zip_name="apache-stratos-4.1.6-SNAPSHOT.zip"
 export stratos_pack_zip=$stratos_packs/$stratos_pack_zip_name
 
 export activemq_pack=$stratos_packs/"apache-activemq-5.9.1-bin.tar.gz"


[46/50] [abbrv] stratos git commit: fixing issues after rebasing

Posted by is...@apache.org.
fixing issues after rebasing


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

Branch: refs/heads/stratos-4.1.x
Commit: 991da8ee82135d10b76555f73f40777e30f8f93e
Parents: 051b24c
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 25 19:26:43 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 19:26:43 2015 +0530

----------------------------------------------------------------------
 .../CloudControllerServiceComponent.java        |  3 ++-
 .../common/threading/StratosThreadPool.java     | 28 --------------------
 .../StratosManagerServiceComponent.java         |  3 ++-
 .../internal/MessagingServiceComponent.java     |  2 +-
 .../message/receiver/StratosEventReceiver.java  |  7 ++---
 5 files changed, 7 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/991da8ee/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 74b9804..720bf17 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
@@ -230,6 +230,7 @@ public class CloudControllerServiceComponent {
         }
 
         // shutdown TopologyEventSync task
-        StratosThreadPool.shutdown(THREAD_POOL_ID);
+        StratosThreadPool.shutDownThreadPoolGracefully(THREAD_POOL_ID);
+        StratosThreadPool.shutDownScheduledThreadPoolGracefully(SCHEDULER_THREAD_POOL_ID);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/991da8ee/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 da48caf..1f4e5c8 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
@@ -233,32 +233,4 @@ public class StratosThreadPool {
                     " and removed from the cache");
         }
     }
-
-    public static void shutdown (String identifier) {
-
-        ExecutorService executorService = executorMap.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();
-        }
-
-        // 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/991da8ee/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 04ec264..1b48603 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
@@ -329,6 +329,7 @@ public class StratosManagerServiceComponent {
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
 
         // shut down the scheduled thread pool
-        StratosThreadPool.shutdown(THREAD_POOL_ID);
+        StratosThreadPool.shutDownThreadPoolGracefully(THREAD_POOL_ID);
+        StratosThreadPool.shutDownScheduledThreadPoolGracefully(SCHEDULER_THREAD_POOL_ID);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/991da8ee/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 b582d56..2136fe4 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
@@ -72,7 +72,7 @@ public class MessagingServiceComponent {
             InitializerEventReceiver.getInstance().terminate();
             TenantEventReceiver.getInstance().terminate();
             TopologyEventReceiver.getInstance().terminate();
-            StratosThreadPool.shutdown(StratosEventReceiver.STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID);
+            StratosThreadPool.shutDownThreadPoolGracefully(StratosEventReceiver.STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID);
             if (log.isDebugEnabled()) {
                 log.debug("Messaging Service component is deactivated");
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/991da8ee/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 08d75a4..0c17efb 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
@@ -25,8 +25,6 @@ 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;
-
 /**
  * Abstraction for Event Receivers used in Stratos
  */
@@ -44,8 +42,6 @@ public abstract class StratosEventReceiver {
 
     // thread pool id
     protected String threadPoolId;
-    // executor service used
-    protected ExecutorService executorService;
     // pool size
     protected static int threadPoolSize = 25;
 
@@ -67,7 +63,8 @@ public abstract class StratosEventReceiver {
 
     public StratosEventReceiver () {
         this.threadPoolId = STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID;
-        this.executorService = StratosThreadPool.getExecutorService(threadPoolId, threadPoolSize);
+        this.executor = StratosThreadPool.getExecutorService(threadPoolId, (int)Math.ceil(threadPoolSize/3),
+                threadPoolSize);
     }
 
     /**


[04/50] [abbrv] stratos git commit: removing ThreadPoolExecutor from StratosThreadPool temporarily

Posted by is...@apache.org.
removing ThreadPoolExecutor from StratosThreadPool temporarily


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

Branch: refs/heads/stratos-4.1.x
Commit: d4d27629fdc7629a146fd13bc8fafd830b5cb8ec
Parents: 78ff21c
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 3 10:02:44 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 2015 +0530

----------------------------------------------------------------------
 .../cloud/controller/context/CloudControllerContext.java        | 2 --
 .../org/apache/stratos/common/threading/StratosThreadPool.java  | 5 +++--
 2 files changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d4d27629/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
index 0d2e8bc..4d28dd5 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
@@ -22,7 +22,6 @@ import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.domain.*;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesClusterContext;
@@ -31,7 +30,6 @@ import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster;
 import org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
 import org.apache.stratos.cloud.controller.exception.NonExistingKubernetesClusterException;
 import org.apache.stratos.cloud.controller.exception.NonExistingKubernetesHostException;
-import org.apache.stratos.cloud.controller.iaases.Iaas;
 import org.apache.stratos.cloud.controller.internal.ServiceReferenceHolder;
 import org.apache.stratos.cloud.controller.registry.RegistryManager;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4d27629/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 b4784a4..efa567e 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
@@ -50,8 +50,9 @@ public class StratosThreadPool {
         if (executorService == null) {
             synchronized (executorServiceMapLock) {
                 if (executorService == null) {
-                    executorService = new ThreadPoolExecutor(25, threadPoolSize, 60L, TimeUnit.SECONDS,
-                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
+//                    executorService = new ThreadPoolExecutor(25, threadPoolSize, 60L, TimeUnit.SECONDS,
+//                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
+                    executorService = Executors.newFixedThreadPool(threadPoolSize, new StratosThreadFactory(identifier));
                     executorServiceMap.put(identifier, executorService);
                     log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize));
                 }


[31/50] [abbrv] stratos git commit: Preparing for the next release

Posted by is...@apache.org.
Preparing for the next release


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

Branch: refs/heads/stratos-4.1.x
Commit: d9d7c36babff35355160c6c02afec29089946bf8
Parents: 17b46f7
Author: gayangunarathne <ga...@wso2.com>
Authored: Thu Dec 10 20:12:19 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:01:14 2015 +0530

----------------------------------------------------------------------
 components/org.apache.stratos.autoscaler/pom.xml                   | 2 +-
 components/org.apache.stratos.cartridge.agent/pom.xml              | 2 +-
 components/org.apache.stratos.cli/pom.xml                          | 2 +-
 components/org.apache.stratos.cloud.controller/pom.xml             | 2 +-
 components/org.apache.stratos.common/pom.xml                       | 2 +-
 components/org.apache.stratos.custom.handlers/pom.xml              | 2 +-
 components/org.apache.stratos.kubernetes.client/pom.xml            | 2 +-
 components/org.apache.stratos.load.balancer.common/pom.xml         | 2 +-
 components/org.apache.stratos.load.balancer.extension.api/pom.xml  | 2 +-
 components/org.apache.stratos.load.balancer/pom.xml                | 2 +-
 components/org.apache.stratos.manager.styles/pom.xml               | 2 +-
 components/org.apache.stratos.manager/pom.xml                      | 2 +-
 components/org.apache.stratos.messaging/pom.xml                    | 2 +-
 components/org.apache.stratos.metadata.client/pom.xml              | 2 +-
 components/org.apache.stratos.metadata.service/pom.xml             | 2 +-
 components/org.apache.stratos.mock.iaas.api/pom.xml                | 2 +-
 components/org.apache.stratos.mock.iaas.client/pom.xml             | 2 +-
 components/org.apache.stratos.mock.iaas/pom.xml                    | 2 +-
 components/org.apache.stratos.python.cartridge.agent/pom.xml       | 2 +-
 components/org.apache.stratos.python.cli/pom.xml                   | 2 +-
 components/org.apache.stratos.rest.endpoint/pom.xml                | 2 +-
 components/pom.xml                                                 | 2 +-
 dependencies/fabric8/kubernetes-api/pom.xml                        | 2 +-
 dependencies/fabric8/pom.xml                                       | 2 +-
 dependencies/guice-assistedinject/pom.xml                          | 2 +-
 dependencies/guice-multibindings/pom.xml                           | 2 +-
 dependencies/guice/pom.xml                                         | 2 +-
 dependencies/jclouds/cloudstack/pom.xml                            | 2 +-
 dependencies/jclouds/ec2/pom.xml                                   | 2 +-
 .../jclouds/google-jclouds-labs/google-cloud-storage/pom.xml       | 2 +-
 .../jclouds/google-jclouds-labs/google-compute-engine/pom.xml      | 2 +-
 dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml       | 2 +-
 dependencies/jclouds/google-jclouds-labs/oauth/pom.xml             | 2 +-
 dependencies/jclouds/google-jclouds-labs/pom.xml                   | 2 +-
 dependencies/jclouds/jclouds-blobstore/pom.xml                     | 2 +-
 dependencies/jclouds/jclouds-bouncycastle/pom.xml                  | 2 +-
 dependencies/jclouds/jclouds-compute/pom.xml                       | 2 +-
 dependencies/jclouds/jclouds-core/pom.xml                          | 2 +-
 dependencies/jclouds/jclouds-enterprise/pom.xml                    | 2 +-
 dependencies/jclouds/jclouds-joda/pom.xml                          | 2 +-
 dependencies/jclouds/jclouds-netty/pom.xml                         | 2 +-
 dependencies/jclouds/jclouds-sshj/pom.xml                          | 2 +-
 dependencies/jclouds/openstack-common/pom.xml                      | 2 +-
 dependencies/jclouds/openstack-keystone/pom.xml                    | 2 +-
 dependencies/jclouds/openstack-neutron/pom.xml                     | 2 +-
 dependencies/jclouds/openstack-nova/pom.xml                        | 2 +-
 dependencies/jclouds/pom.xml                                       | 2 +-
 dependencies/jclouds/sts/pom.xml                                   | 2 +-
 dependencies/pom.xml                                               | 2 +-
 dependencies/rocoto/pom.xml                                        | 2 +-
 dependencies/sshj/pom.xml                                          | 2 +-
 extensions/cep/modules/distribution/pom.xml                        | 2 +-
 extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml | 2 +-
 extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml | 2 +-
 extensions/cep/pom.xml                                             | 2 +-
 extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml  | 2 +-
 .../das/modules/artifacts/monitoring-dashboard/capps/pom.xml       | 2 +-
 extensions/das/modules/distribution/pom.xml                        | 2 +-
 extensions/das/modules/stratos-das-extension/pom.xml               | 2 +-
 extensions/das/pom.xml                                             | 2 +-
 extensions/load-balancer/modules/aws-extension/pom.xml             | 2 +-
 extensions/load-balancer/modules/haproxy-extension/pom.xml         | 2 +-
 extensions/load-balancer/modules/lvs-extension/pom.xml             | 2 +-
 extensions/load-balancer/modules/nginx-extension/pom.xml           | 2 +-
 extensions/load-balancer/pom.xml                                   | 2 +-
 extensions/pom.xml                                                 | 2 +-
 features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml  | 2 +-
 features/autoscaler/pom.xml                                        | 2 +-
 features/cep/org.apache.stratos.event.processor.feature/pom.xml    | 2 +-
 .../cep/org.apache.stratos.event.processor.server.feature/pom.xml  | 2 +-
 features/cep/pom.xml                                               | 2 +-
 .../org.apache.stratos.cloud.controller.feature/pom.xml            | 2 +-
 features/cloud-controller/pom.xml                                  | 2 +-
 features/common/org.apache.stratos.common.feature/pom.xml          | 2 +-
 features/common/org.apache.stratos.common.server.feature/pom.xml   | 2 +-
 features/common/org.apache.stratos.custom.handlers.feature/pom.xml | 2 +-
 features/common/pom.xml                                            | 2 +-
 .../org.apache.stratos.load.balancer.common.feature/pom.xml        | 2 +-
 .../load-balancer/org.apache.stratos.load.balancer.feature/pom.xml | 2 +-
 features/load-balancer/pom.xml                                     | 2 +-
 .../org.apache.stratos.metadata.client.feature/pom.xml             | 2 +-
 .../org.apache.stratos.metadata.service.feature/pom.xml            | 2 +-
 features/manager/pom.xml                                           | 2 +-
 .../rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml | 2 +-
 .../manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml | 2 +-
 .../stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml  | 2 +-
 features/manager/stratos-mgt/pom.xml                               | 2 +-
 .../styles/org.apache.stratos.manager.styles.feature/pom.xml       | 2 +-
 features/messaging/org.apache.stratos.messaging.feature/pom.xml    | 2 +-
 features/messaging/pom.xml                                         | 2 +-
 .../mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml     | 2 +-
 features/mock-iaas/pom.xml                                         | 2 +-
 features/pom.xml                                                   | 2 +-
 pom.xml                                                            | 2 +-
 products/cartridge-agent/modules/distribution/pom.xml              | 2 +-
 products/cartridge-agent/pom.xml                                   | 2 +-
 products/load-balancer/modules/distribution/pom.xml                | 2 +-
 products/load-balancer/modules/p2-profile-gen/pom.xml              | 2 +-
 products/load-balancer/pom.xml                                     | 2 +-
 products/pom.xml                                                   | 2 +-
 products/python-cartridge-agent/modules/distribution/pom.xml       | 2 +-
 products/python-cartridge-agent/modules/integration/pom.xml        | 2 +-
 .../python-cartridge-agent/modules/integration/test-common/pom.xml | 2 +-
 .../modules/integration/test-integration/pom.xml                   | 2 +-
 products/python-cartridge-agent/pom.xml                            | 2 +-
 products/python-cli/modules/distribution/pom.xml                   | 2 +-
 products/python-cli/pom.xml                                        | 2 +-
 products/stratos-cli/modules/distribution/pom.xml                  | 2 +-
 products/stratos-cli/pom.xml                                       | 2 +-
 products/stratos/modules/distribution/pom.xml                      | 2 +-
 products/stratos/modules/integration/pom.xml                       | 2 +-
 products/stratos/modules/integration/test-common/pom.xml           | 2 +-
 products/stratos/modules/integration/test-integration/pom.xml      | 2 +-
 products/stratos/modules/p2-profile-gen/pom.xml                    | 2 +-
 products/stratos/pom.xml                                           | 2 +-
 service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml   | 2 +-
 .../org.apache.stratos.cloud.controller.service.stub/pom.xml       | 2 +-
 service-stubs/org.apache.stratos.manager.service.stub/pom.xml      | 2 +-
 service-stubs/pom.xml                                              | 2 +-
 119 files changed, 119 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.autoscaler/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/pom.xml b/components/org.apache.stratos.autoscaler/pom.xml
index 1a74b82..a9127a9 100644
--- a/components/org.apache.stratos.autoscaler/pom.xml
+++ b/components/org.apache.stratos.autoscaler/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.autoscaler</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.cartridge.agent/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/pom.xml b/components/org.apache.stratos.cartridge.agent/pom.xml
index 0f45bbf..5f4cc70 100644
--- a/components/org.apache.stratos.cartridge.agent/pom.xml
+++ b/components/org.apache.stratos.cartridge.agent/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.cartridge.agent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.cli/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/pom.xml b/components/org.apache.stratos.cli/pom.xml
index e05709a..0360c29 100644
--- a/components/org.apache.stratos.cli/pom.xml
+++ b/components/org.apache.stratos.cli/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.cli</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.cloud.controller/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/pom.xml b/components/org.apache.stratos.cloud.controller/pom.xml
index 953d034..c693d8f 100644
--- a/components/org.apache.stratos.cloud.controller/pom.xml
+++ b/components/org.apache.stratos.cloud.controller/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.cloud.controller</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.common/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/pom.xml b/components/org.apache.stratos.common/pom.xml
index 64d93f3..e1dc23e 100644
--- a/components/org.apache.stratos.common/pom.xml
+++ b/components/org.apache.stratos.common/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.common</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.custom.handlers/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.custom.handlers/pom.xml b/components/org.apache.stratos.custom.handlers/pom.xml
index c4e3218..588e2b2 100644
--- a/components/org.apache.stratos.custom.handlers/pom.xml
+++ b/components/org.apache.stratos.custom.handlers/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.custom.handlers</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.kubernetes.client/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.kubernetes.client/pom.xml b/components/org.apache.stratos.kubernetes.client/pom.xml
index 38c45bd..f54afba 100644
--- a/components/org.apache.stratos.kubernetes.client/pom.xml
+++ b/components/org.apache.stratos.kubernetes.client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.kubernetes.client</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.load.balancer.common/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.common/pom.xml b/components/org.apache.stratos.load.balancer.common/pom.xml
index 27626c1..72f62ea 100644
--- a/components/org.apache.stratos.load.balancer.common/pom.xml
+++ b/components/org.apache.stratos.load.balancer.common/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.load.balancer.common</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.load.balancer.extension.api/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer.extension.api/pom.xml b/components/org.apache.stratos.load.balancer.extension.api/pom.xml
index ec765e1..5932396 100644
--- a/components/org.apache.stratos.load.balancer.extension.api/pom.xml
+++ b/components/org.apache.stratos.load.balancer.extension.api/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.load.balancer.extension.api</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.load.balancer/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/pom.xml b/components/org.apache.stratos.load.balancer/pom.xml
index 498d848..28a2798 100644
--- a/components/org.apache.stratos.load.balancer/pom.xml
+++ b/components/org.apache.stratos.load.balancer/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.load.balancer</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.manager.styles/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.styles/pom.xml b/components/org.apache.stratos.manager.styles/pom.xml
index 3c1f8d8..cb5462d 100644
--- a/components/org.apache.stratos.manager.styles/pom.xml
+++ b/components/org.apache.stratos.manager.styles/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.manager/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/pom.xml b/components/org.apache.stratos.manager/pom.xml
index 8eb64cc..ccaa688 100644
--- a/components/org.apache.stratos.manager/pom.xml
+++ b/components/org.apache.stratos.manager/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.manager</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.messaging/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/pom.xml b/components/org.apache.stratos.messaging/pom.xml
index 3f2089a..8b14d02 100644
--- a/components/org.apache.stratos.messaging/pom.xml
+++ b/components/org.apache.stratos.messaging/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.messaging</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.metadata.client/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.client/pom.xml b/components/org.apache.stratos.metadata.client/pom.xml
index f280c09..5c186d6 100644
--- a/components/org.apache.stratos.metadata.client/pom.xml
+++ b/components/org.apache.stratos.metadata.client/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.metadata.client</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.metadata.service/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/pom.xml b/components/org.apache.stratos.metadata.service/pom.xml
index 12f8c72..103db9f 100644
--- a/components/org.apache.stratos.metadata.service/pom.xml
+++ b/components/org.apache.stratos.metadata.service/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.metadata.service</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.mock.iaas.api/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas.api/pom.xml b/components/org.apache.stratos.mock.iaas.api/pom.xml
index b88c6c2..051abdd 100644
--- a/components/org.apache.stratos.mock.iaas.api/pom.xml
+++ b/components/org.apache.stratos.mock.iaas.api/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.mock.iaas.api</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.mock.iaas.client/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas.client/pom.xml b/components/org.apache.stratos.mock.iaas.client/pom.xml
index 4fe9b57..d421764 100644
--- a/components/org.apache.stratos.mock.iaas.client/pom.xml
+++ b/components/org.apache.stratos.mock.iaas.client/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>stratos-components-parent</artifactId>
         <groupId>org.apache.stratos</groupId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.mock.iaas.client</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.mock.iaas/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/pom.xml b/components/org.apache.stratos.mock.iaas/pom.xml
index cc11078..099e829 100644
--- a/components/org.apache.stratos.mock.iaas/pom.xml
+++ b/components/org.apache.stratos.mock.iaas/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <artifactId>stratos-components-parent</artifactId>
         <groupId>org.apache.stratos</groupId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.mock.iaas</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.python.cartridge.agent/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/pom.xml b/components/org.apache.stratos.python.cartridge.agent/pom.xml
index 1ea6aa7..1cb67f0 100644
--- a/components/org.apache.stratos.python.cartridge.agent/pom.xml
+++ b/components/org.apache.stratos.python.cartridge.agent/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.python.cartridge.agent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.python.cli/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cli/pom.xml b/components/org.apache.stratos.python.cli/pom.xml
index ab6411e..eb203f7 100644
--- a/components/org.apache.stratos.python.cli/pom.xml
+++ b/components/org.apache.stratos.python.cli/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.python.cli</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/org.apache.stratos.rest.endpoint/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/pom.xml b/components/org.apache.stratos.rest.endpoint/pom.xml
index 2aaeada..8cb823f 100644
--- a/components/org.apache.stratos.rest.endpoint/pom.xml
+++ b/components/org.apache.stratos.rest.endpoint/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-components-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.rest.endpoint</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/components/pom.xml
----------------------------------------------------------------------
diff --git a/components/pom.xml b/components/pom.xml
index 540bd9d..529a9a5 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-components-parent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/fabric8/kubernetes-api/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/fabric8/kubernetes-api/pom.xml b/dependencies/fabric8/kubernetes-api/pom.xml
index d60c976..62e9a8f 100644
--- a/dependencies/fabric8/kubernetes-api/pom.xml
+++ b/dependencies/fabric8/kubernetes-api/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-fabric8</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>kubernetes-api</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/fabric8/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/fabric8/pom.xml b/dependencies/fabric8/pom.xml
index ba0ebe6..28dfd08 100644
--- a/dependencies/fabric8/pom.xml
+++ b/dependencies/fabric8/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-dependencies-fabric8</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/guice-assistedinject/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/guice-assistedinject/pom.xml b/dependencies/guice-assistedinject/pom.xml
index 76185af..220e7b2 100644
--- a/dependencies/guice-assistedinject/pom.xml
+++ b/dependencies/guice-assistedinject/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>guice-assistedinject</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/guice-multibindings/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/guice-multibindings/pom.xml b/dependencies/guice-multibindings/pom.xml
index 3d002e3..c1d4325 100644
--- a/dependencies/guice-multibindings/pom.xml
+++ b/dependencies/guice-multibindings/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>guice-multibindings</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/guice/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/guice/pom.xml b/dependencies/guice/pom.xml
index 89cf949..c827b34 100644
--- a/dependencies/guice/pom.xml
+++ b/dependencies/guice/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>guice</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/cloudstack/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/cloudstack/pom.xml b/dependencies/jclouds/cloudstack/pom.xml
index 2b95424..3d27161 100644
--- a/dependencies/jclouds/cloudstack/pom.xml
+++ b/dependencies/jclouds/cloudstack/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>cloudstack</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/ec2/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/ec2/pom.xml b/dependencies/jclouds/ec2/pom.xml
index 1a8ec6c..cb0e46e 100644
--- a/dependencies/jclouds/ec2/pom.xml
+++ b/dependencies/jclouds/ec2/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>ec2</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/google-jclouds-labs/google-cloud-storage/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/google-jclouds-labs/google-cloud-storage/pom.xml b/dependencies/jclouds/google-jclouds-labs/google-cloud-storage/pom.xml
index 021d587..142d2cd 100644
--- a/dependencies/jclouds/google-jclouds-labs/google-cloud-storage/pom.xml
+++ b/dependencies/jclouds/google-jclouds-labs/google-cloud-storage/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>google-jclouds-labs</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>google-cloud-storage</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/google-jclouds-labs/google-compute-engine/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/google-jclouds-labs/google-compute-engine/pom.xml b/dependencies/jclouds/google-jclouds-labs/google-compute-engine/pom.xml
index 0af4e36..8cf3441 100644
--- a/dependencies/jclouds/google-jclouds-labs/google-compute-engine/pom.xml
+++ b/dependencies/jclouds/google-jclouds-labs/google-compute-engine/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>google-jclouds-labs</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>google-compute-engine</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml b/dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml
index 5d4dea5..6879075 100644
--- a/dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml
+++ b/dependencies/jclouds/google-jclouds-labs/googlecloud/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>google-jclouds-labs</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>googlecloud</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/google-jclouds-labs/oauth/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/google-jclouds-labs/oauth/pom.xml b/dependencies/jclouds/google-jclouds-labs/oauth/pom.xml
index 2eac9c0..7d130a5 100644
--- a/dependencies/jclouds/google-jclouds-labs/oauth/pom.xml
+++ b/dependencies/jclouds/google-jclouds-labs/oauth/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>google-jclouds-labs</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>oauth</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/google-jclouds-labs/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/google-jclouds-labs/pom.xml b/dependencies/jclouds/google-jclouds-labs/pom.xml
index 3ef4ec5..f8ce680 100644
--- a/dependencies/jclouds/google-jclouds-labs/pom.xml
+++ b/dependencies/jclouds/google-jclouds-labs/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>google-jclouds-labs</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-blobstore/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-blobstore/pom.xml b/dependencies/jclouds/jclouds-blobstore/pom.xml
index c831798..c5a86df 100644
--- a/dependencies/jclouds/jclouds-blobstore/pom.xml
+++ b/dependencies/jclouds/jclouds-blobstore/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-blobstore</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-bouncycastle/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-bouncycastle/pom.xml b/dependencies/jclouds/jclouds-bouncycastle/pom.xml
index c4be8ec..b9165d9 100644
--- a/dependencies/jclouds/jclouds-bouncycastle/pom.xml
+++ b/dependencies/jclouds/jclouds-bouncycastle/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-bouncycastle</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-compute/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-compute/pom.xml b/dependencies/jclouds/jclouds-compute/pom.xml
index a07126d..44ff0c6 100644
--- a/dependencies/jclouds/jclouds-compute/pom.xml
+++ b/dependencies/jclouds/jclouds-compute/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-compute</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-core/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-core/pom.xml b/dependencies/jclouds/jclouds-core/pom.xml
index 4e5ac81..138ef38 100644
--- a/dependencies/jclouds/jclouds-core/pom.xml
+++ b/dependencies/jclouds/jclouds-core/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-core</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-enterprise/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-enterprise/pom.xml b/dependencies/jclouds/jclouds-enterprise/pom.xml
index 5401ad4..c5263e7 100644
--- a/dependencies/jclouds/jclouds-enterprise/pom.xml
+++ b/dependencies/jclouds/jclouds-enterprise/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-enterprise</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-joda/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-joda/pom.xml b/dependencies/jclouds/jclouds-joda/pom.xml
index 55f3e25..8f28db7 100644
--- a/dependencies/jclouds/jclouds-joda/pom.xml
+++ b/dependencies/jclouds/jclouds-joda/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-joda</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-netty/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-netty/pom.xml b/dependencies/jclouds/jclouds-netty/pom.xml
index 0598a82..21f3ee6 100644
--- a/dependencies/jclouds/jclouds-netty/pom.xml
+++ b/dependencies/jclouds/jclouds-netty/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-netty</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/jclouds-sshj/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/jclouds-sshj/pom.xml b/dependencies/jclouds/jclouds-sshj/pom.xml
index 8f147b3..10c58b7 100644
--- a/dependencies/jclouds/jclouds-sshj/pom.xml
+++ b/dependencies/jclouds/jclouds-sshj/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>jclouds-sshj</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/openstack-common/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/openstack-common/pom.xml b/dependencies/jclouds/openstack-common/pom.xml
index 25041f4..8301f74 100644
--- a/dependencies/jclouds/openstack-common/pom.xml
+++ b/dependencies/jclouds/openstack-common/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>openstack-common</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/openstack-keystone/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/openstack-keystone/pom.xml b/dependencies/jclouds/openstack-keystone/pom.xml
index 7a532c8..85dbca2 100644
--- a/dependencies/jclouds/openstack-keystone/pom.xml
+++ b/dependencies/jclouds/openstack-keystone/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>openstack-keystone</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/openstack-neutron/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/openstack-neutron/pom.xml b/dependencies/jclouds/openstack-neutron/pom.xml
index e45b860..7caf3b2 100644
--- a/dependencies/jclouds/openstack-neutron/pom.xml
+++ b/dependencies/jclouds/openstack-neutron/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>openstack-neutron</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/openstack-nova/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/openstack-nova/pom.xml b/dependencies/jclouds/openstack-nova/pom.xml
index 328fc4e..a1b155f 100644
--- a/dependencies/jclouds/openstack-nova/pom.xml
+++ b/dependencies/jclouds/openstack-nova/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>openstack-nova</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/pom.xml b/dependencies/jclouds/pom.xml
index e84984f..636ce51 100644
--- a/dependencies/jclouds/pom.xml
+++ b/dependencies/jclouds/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-dependencies-jclouds</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/jclouds/sts/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/sts/pom.xml b/dependencies/jclouds/sts/pom.xml
index 1785224..37aefbc 100644
--- a/dependencies/jclouds/sts/pom.xml
+++ b/dependencies/jclouds/sts/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependencies-jclouds</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>sts</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index 9d8e420..53cc7ff 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-dependents</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/rocoto/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/rocoto/pom.xml b/dependencies/rocoto/pom.xml
index 4f8072d..9d6dec8 100644
--- a/dependencies/rocoto/pom.xml
+++ b/dependencies/rocoto/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>rocoto</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/dependencies/sshj/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/sshj/pom.xml b/dependencies/sshj/pom.xml
index 74740d6..95f2091 100644
--- a/dependencies/sshj/pom.xml
+++ b/dependencies/sshj/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-dependents</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>net.schmizz.sshj</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/cep/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/distribution/pom.xml b/extensions/cep/modules/distribution/pom.xml
index b1266f9..2e4b0dd 100644
--- a/extensions/cep/modules/distribution/pom.xml
+++ b/extensions/cep/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cep-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml
index a455bcf..dc0756d 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.0.0/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cep-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml
index 8208571..b7a4b7f 100644
--- a/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml
+++ b/extensions/cep/modules/stratos-cep-extension/wso2cep-3.1.0/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cep-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/cep/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/cep/pom.xml b/extensions/cep/pom.xml
index b746075..dc5d804 100644
--- a/extensions/cep/pom.xml
+++ b/extensions/cep/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>cep-extensions</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml b/extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml
index dacc1da..cf32b7c 100644
--- a/extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml
+++ b/extensions/das/modules/artifacts/metering-dashboard/capps/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>das-extension</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/das/modules/artifacts/monitoring-dashboard/capps/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/das/modules/artifacts/monitoring-dashboard/capps/pom.xml b/extensions/das/modules/artifacts/monitoring-dashboard/capps/pom.xml
index 18c375e..3ea16c5 100644
--- a/extensions/das/modules/artifacts/monitoring-dashboard/capps/pom.xml
+++ b/extensions/das/modules/artifacts/monitoring-dashboard/capps/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>das-extension</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/das/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/das/modules/distribution/pom.xml b/extensions/das/modules/distribution/pom.xml
index 43e6b8a..9c5322b 100644
--- a/extensions/das/modules/distribution/pom.xml
+++ b/extensions/das/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>das-extension</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/das/modules/stratos-das-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/das/modules/stratos-das-extension/pom.xml b/extensions/das/modules/stratos-das-extension/pom.xml
index e7d9053..9203543 100644
--- a/extensions/das/modules/stratos-das-extension/pom.xml
+++ b/extensions/das/modules/stratos-das-extension/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>das-extension</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/das/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/das/pom.xml b/extensions/das/pom.xml
index e81a68b..f81810f 100644
--- a/extensions/das/pom.xml
+++ b/extensions/das/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/load-balancer/modules/aws-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/aws-extension/pom.xml b/extensions/load-balancer/modules/aws-extension/pom.xml
index 36dc5c8..bb1f7cc 100644
--- a/extensions/load-balancer/modules/aws-extension/pom.xml
+++ b/extensions/load-balancer/modules/aws-extension/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-load-balancer-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/load-balancer/modules/haproxy-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/haproxy-extension/pom.xml b/extensions/load-balancer/modules/haproxy-extension/pom.xml
index 5f42132..93b3c6c 100644
--- a/extensions/load-balancer/modules/haproxy-extension/pom.xml
+++ b/extensions/load-balancer/modules/haproxy-extension/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-load-balancer-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/load-balancer/modules/lvs-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/lvs-extension/pom.xml b/extensions/load-balancer/modules/lvs-extension/pom.xml
index e100c70..f276c75 100644
--- a/extensions/load-balancer/modules/lvs-extension/pom.xml
+++ b/extensions/load-balancer/modules/lvs-extension/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-load-balancer-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/load-balancer/modules/nginx-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/nginx-extension/pom.xml b/extensions/load-balancer/modules/nginx-extension/pom.xml
index 71989d1..9506c88 100644
--- a/extensions/load-balancer/modules/nginx-extension/pom.xml
+++ b/extensions/load-balancer/modules/nginx-extension/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-load-balancer-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/load-balancer/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/pom.xml b/extensions/load-balancer/pom.xml
index f11ef0b..de9f499 100644
--- a/extensions/load-balancer/pom.xml
+++ b/extensions/load-balancer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-extensions</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-load-balancer-extensions</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/extensions/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 197c31c..483e132 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-extensions</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml b/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
index 6534a26..dd251c4 100644
--- a/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
+++ b/features/autoscaler/org.apache.stratos.autoscaler.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>autoscaler-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/autoscaler/pom.xml
----------------------------------------------------------------------
diff --git a/features/autoscaler/pom.xml b/features/autoscaler/pom.xml
index b5d81b4..9c582e6 100644
--- a/features/autoscaler/pom.xml
+++ b/features/autoscaler/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>autoscaler-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/cep/org.apache.stratos.event.processor.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/cep/org.apache.stratos.event.processor.feature/pom.xml b/features/cep/org.apache.stratos.event.processor.feature/pom.xml
index 1ccca10..a89db67 100644
--- a/features/cep/org.apache.stratos.event.processor.feature/pom.xml
+++ b/features/cep/org.apache.stratos.event.processor.feature/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cep-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/cep/org.apache.stratos.event.processor.server.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/cep/org.apache.stratos.event.processor.server.feature/pom.xml b/features/cep/org.apache.stratos.event.processor.server.feature/pom.xml
index 06a5d61..6584d03 100644
--- a/features/cep/org.apache.stratos.event.processor.server.feature/pom.xml
+++ b/features/cep/org.apache.stratos.event.processor.server.feature/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cep-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/cep/pom.xml
----------------------------------------------------------------------
diff --git a/features/cep/pom.xml b/features/cep/pom.xml
index aabdf6c..a132e44 100644
--- a/features/cep/pom.xml
+++ b/features/cep/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>cep-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml
index 3befc3d..02c2cf0 100644
--- a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml
+++ b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cloud-controller-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/cloud-controller/pom.xml
----------------------------------------------------------------------
diff --git a/features/cloud-controller/pom.xml b/features/cloud-controller/pom.xml
index f5becdd..16d24c9 100644
--- a/features/cloud-controller/pom.xml
+++ b/features/cloud-controller/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/common/org.apache.stratos.common.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/common/org.apache.stratos.common.feature/pom.xml b/features/common/org.apache.stratos.common.feature/pom.xml
index 5d75e68..ec9cd12 100644
--- a/features/common/org.apache.stratos.common.feature/pom.xml
+++ b/features/common/org.apache.stratos.common.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>common-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.common.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/common/org.apache.stratos.common.server.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/common/org.apache.stratos.common.server.feature/pom.xml b/features/common/org.apache.stratos.common.server.feature/pom.xml
index ec4cd0c..6798868 100644
--- a/features/common/org.apache.stratos.common.server.feature/pom.xml
+++ b/features/common/org.apache.stratos.common.server.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>common-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/common/org.apache.stratos.custom.handlers.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/common/org.apache.stratos.custom.handlers.feature/pom.xml b/features/common/org.apache.stratos.custom.handlers.feature/pom.xml
index ef9dbd2..0f2d7f0 100644
--- a/features/common/org.apache.stratos.custom.handlers.feature/pom.xml
+++ b/features/common/org.apache.stratos.custom.handlers.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>common-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/common/pom.xml
----------------------------------------------------------------------
diff --git a/features/common/pom.xml b/features/common/pom.xml
index a29442b..2c3ebdc 100644
--- a/features/common/pom.xml
+++ b/features/common/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>common-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/load-balancer/org.apache.stratos.load.balancer.common.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/load-balancer/org.apache.stratos.load.balancer.common.feature/pom.xml b/features/load-balancer/org.apache.stratos.load.balancer.common.feature/pom.xml
index c428358..9242cb1 100644
--- a/features/load-balancer/org.apache.stratos.load.balancer.common.feature/pom.xml
+++ b/features/load-balancer/org.apache.stratos.load.balancer.common.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>loadbalancer-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.load.balancer.common.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/load-balancer/org.apache.stratos.load.balancer.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/load-balancer/org.apache.stratos.load.balancer.feature/pom.xml b/features/load-balancer/org.apache.stratos.load.balancer.feature/pom.xml
index eed0860..15f6cd5 100644
--- a/features/load-balancer/org.apache.stratos.load.balancer.feature/pom.xml
+++ b/features/load-balancer/org.apache.stratos.load.balancer.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>loadbalancer-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.load.balancer.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/load-balancer/pom.xml
----------------------------------------------------------------------
diff --git a/features/load-balancer/pom.xml b/features/load-balancer/pom.xml
index f643ec6..e14b28f 100644
--- a/features/load-balancer/pom.xml
+++ b/features/load-balancer/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>loadbalancer-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/metadata-service/org.apache.stratos.metadata.client.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/metadata-service/org.apache.stratos.metadata.client.feature/pom.xml b/features/manager/metadata-service/org.apache.stratos.metadata.client.feature/pom.xml
index 196a2be..54e8024 100644
--- a/features/manager/metadata-service/org.apache.stratos.metadata.client.feature/pom.xml
+++ b/features/manager/metadata-service/org.apache.stratos.metadata.client.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-manager-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/metadata-service/org.apache.stratos.metadata.service.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/metadata-service/org.apache.stratos.metadata.service.feature/pom.xml b/features/manager/metadata-service/org.apache.stratos.metadata.service.feature/pom.xml
index b8889d2..364a760 100644
--- a/features/manager/metadata-service/org.apache.stratos.metadata.service.feature/pom.xml
+++ b/features/manager/metadata-service/org.apache.stratos.metadata.service.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-manager-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/pom.xml b/features/manager/pom.xml
index e2d2804..2f7a52f 100644
--- a/features/manager/pom.xml
+++ b/features/manager/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-manager-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml b/features/manager/rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml
index 6ab73bb..b9a9869 100644
--- a/features/manager/rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml
+++ b/features/manager/rest-endpoint/org.apache.stratos.rest.endpoint.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-manager-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml b/features/manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml
index 1d472dd..7cb9652 100644
--- a/features/manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml
+++ b/features/manager/stratos-mgt/org.apache.stratos.manager.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-mgt-parent-feature</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.manager.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml b/features/manager/stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml
index 66ee3eb..34a9a89 100644
--- a/features/manager/stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml
+++ b/features/manager/stratos-mgt/org.apache.stratos.manager.server.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-mgt-parent-feature</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.manager.server.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/stratos-mgt/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/stratos-mgt/pom.xml b/features/manager/stratos-mgt/pom.xml
index b03c997..b023631 100644
--- a/features/manager/stratos-mgt/pom.xml
+++ b/features/manager/stratos-mgt/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-manager-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-mgt-parent-feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/manager/styles/org.apache.stratos.manager.styles.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/manager/styles/org.apache.stratos.manager.styles.feature/pom.xml b/features/manager/styles/org.apache.stratos.manager.styles.feature/pom.xml
index 68fc7ff..4a5621a 100644
--- a/features/manager/styles/org.apache.stratos.manager.styles.feature/pom.xml
+++ b/features/manager/styles/org.apache.stratos.manager.styles.feature/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-manager-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/messaging/org.apache.stratos.messaging.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/messaging/org.apache.stratos.messaging.feature/pom.xml b/features/messaging/org.apache.stratos.messaging.feature/pom.xml
index 4b0e09b..f95f711 100644
--- a/features/messaging/org.apache.stratos.messaging.feature/pom.xml
+++ b/features/messaging/org.apache.stratos.messaging.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>messaging-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.messaging.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/messaging/pom.xml
----------------------------------------------------------------------
diff --git a/features/messaging/pom.xml b/features/messaging/pom.xml
index 6f829f4..90ea370 100644
--- a/features/messaging/pom.xml
+++ b/features/messaging/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>messaging-features</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml
----------------------------------------------------------------------
diff --git a/features/mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml b/features/mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml
index 1ee50ac..a499654 100644
--- a/features/mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml
+++ b/features/mock-iaas/org.apache.stratos.mock.iaas.api.feature/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>mock-iaas-features</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.mock.iaas.api.feature</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/mock-iaas/pom.xml
----------------------------------------------------------------------
diff --git a/features/mock-iaas/pom.xml b/features/mock-iaas/pom.xml
index 430a345..bc5e491 100644
--- a/features/mock-iaas/pom.xml
+++ b/features/mock-iaas/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-features-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/features/pom.xml
----------------------------------------------------------------------
diff --git a/features/pom.xml b/features/pom.xml
index 2f2d578..230075e 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-features-parent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 50dd47a..d1755d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
     <groupId>org.apache.stratos</groupId>
     <artifactId>stratos-parent</artifactId>
     <packaging>pom</packaging>
-    <version>4.1.5-SNAPSHOT</version>
+    <version>4.1.6-SNAPSHOT</version>
     <name>Apache Stratos</name>
     <description>Apache Stratos is an open source polyglot Platform as a Service (PaaS) framework</description>
     <url>http://stratos.apache.org</url>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/cartridge-agent/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/modules/distribution/pom.xml b/products/cartridge-agent/modules/distribution/pom.xml
index e0be347..90b57fd 100644
--- a/products/cartridge-agent/modules/distribution/pom.xml
+++ b/products/cartridge-agent/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>cartidge-agent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/cartridge-agent/pom.xml
----------------------------------------------------------------------
diff --git a/products/cartridge-agent/pom.xml b/products/cartridge-agent/pom.xml
index c4f251d..bc26573 100644
--- a/products/cartridge-agent/pom.xml
+++ b/products/cartridge-agent/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-products-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>cartidge-agent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/load-balancer/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/load-balancer/modules/distribution/pom.xml b/products/load-balancer/modules/distribution/pom.xml
index 5761c2c..856d310 100755
--- a/products/load-balancer/modules/distribution/pom.xml
+++ b/products/load-balancer/modules/distribution/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos.load.balancer</groupId>
         <artifactId>load-balancer-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/load-balancer/modules/p2-profile-gen/pom.xml
----------------------------------------------------------------------
diff --git a/products/load-balancer/modules/p2-profile-gen/pom.xml b/products/load-balancer/modules/p2-profile-gen/pom.xml
index f201d35..3b99fbc 100755
--- a/products/load-balancer/modules/p2-profile-gen/pom.xml
+++ b/products/load-balancer/modules/p2-profile-gen/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos.load.balancer</groupId>
         <artifactId>load-balancer-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/load-balancer/pom.xml
----------------------------------------------------------------------
diff --git a/products/load-balancer/pom.xml b/products/load-balancer/pom.xml
index e8c0a0c..146c1d3 100755
--- a/products/load-balancer/pom.xml
+++ b/products/load-balancer/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/pom.xml
----------------------------------------------------------------------
diff --git a/products/pom.xml b/products/pom.xml
index b9806e1..f2ed290 100644
--- a/products/pom.xml
+++ b/products/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cartridge-agent/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/distribution/pom.xml b/products/python-cartridge-agent/modules/distribution/pom.xml
index 737fd72..1b9e1db 100644
--- a/products/python-cartridge-agent/modules/distribution/pom.xml
+++ b/products/python-cartridge-agent/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>python-cartridge-agent-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cartridge-agent/modules/integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/pom.xml b/products/python-cartridge-agent/modules/integration/pom.xml
index f16d8a3..29713fa 100755
--- a/products/python-cartridge-agent/modules/integration/pom.xml
+++ b/products/python-cartridge-agent/modules/integration/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>python-cartridge-agent-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cartridge-agent/modules/integration/test-common/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/test-common/pom.xml b/products/python-cartridge-agent/modules/integration/test-common/pom.xml
index 4175928..9638b0a 100755
--- a/products/python-cartridge-agent/modules/integration/test-common/pom.xml
+++ b/products/python-cartridge-agent/modules/integration/test-common/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>python-cartridge-agent-integration</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.python.cartridge.agent.integration.common</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cartridge-agent/modules/integration/test-integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/modules/integration/test-integration/pom.xml b/products/python-cartridge-agent/modules/integration/test-integration/pom.xml
index 47d1de3..eb7245f 100755
--- a/products/python-cartridge-agent/modules/integration/test-integration/pom.xml
+++ b/products/python-cartridge-agent/modules/integration/test-integration/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>python-cartridge-agent-integration</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>python-agent-test-integration</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cartridge-agent/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cartridge-agent/pom.xml b/products/python-cartridge-agent/pom.xml
index 5aef681..3c8f23c 100755
--- a/products/python-cartridge-agent/pom.xml
+++ b/products/python-cartridge-agent/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-products-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>python-cartridge-agent-parent</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cli/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cli/modules/distribution/pom.xml b/products/python-cli/modules/distribution/pom.xml
index 9597e8b..4bcece3 100644
--- a/products/python-cli/modules/distribution/pom.xml
+++ b/products/python-cli/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>apache-stratos-python-cli-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/python-cli/pom.xml
----------------------------------------------------------------------
diff --git a/products/python-cli/pom.xml b/products/python-cli/pom.xml
index 41f2c6d..07d0344 100644
--- a/products/python-cli/pom.xml
+++ b/products/python-cli/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-products-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos-cli/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-cli/modules/distribution/pom.xml b/products/stratos-cli/modules/distribution/pom.xml
index 80d0814..25d4c1d 100644
--- a/products/stratos-cli/modules/distribution/pom.xml
+++ b/products/stratos-cli/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>apache-stratos-cli-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos-cli/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos-cli/pom.xml b/products/stratos-cli/pom.xml
index 2370fa3..6309f26 100644
--- a/products/stratos-cli/pom.xml
+++ b/products/stratos-cli/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-products-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/modules/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/pom.xml b/products/stratos/modules/distribution/pom.xml
index 9c23923..8f3f064 100755
--- a/products/stratos/modules/distribution/pom.xml
+++ b/products/stratos/modules/distribution/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 


[42/50] [abbrv] 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/d134a286
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d134a286
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d134a286

Branch: refs/heads/stratos-4.1.x
Commit: d134a2867b138e36f093423e4c60753491244ada
Parents: 7d1e527
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 10:41:57 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 17:08:32 2015 +0530

----------------------------------------------------------------------
 .../stratos/aws/extension/AWSLoadBalancer.java  | 37 +++++---------------
 .../org/apache/stratos/aws/extension/Main.java  |  3 +-
 2 files changed, 11 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d134a286/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 f5210b9..1bfb10a 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
@@ -120,14 +120,12 @@ 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,null)){
+	                    if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){
 		                    activeClusters.add(cluster.getClusterId());
 	                    }
 
@@ -143,7 +141,8 @@ public class AWSLoadBalancer implements LoadBalancer {
 			                        cluster.getClusterId()));
                         }
 	                    clusterIdToLoadBalancerMap.put(cluster.getClusterId(), lbInfoDTO);
-
+                        LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region);
+                        clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo);
                     }
 
                     pause(3000);
@@ -192,8 +191,7 @@ public class AWSLoadBalancer implements LoadBalancer {
         return true;
     }
 
-	private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region,
-	                                      List<Instance> attachedInstances) {
+	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>();
@@ -209,22 +207,6 @@ 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);
@@ -237,8 +219,7 @@ 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);
 
@@ -295,10 +276,10 @@ public class AWSLoadBalancer implements LoadBalancer {
 
 	private Boolean updateExistingLoadBalancer(Cluster cluster) {
 		Boolean isUpdated=false;
-		LBInfoDTO lbInfoDTO = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
+		LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId());
 
-		String loadBalancerName = lbInfoDTO.getName();
-		String region = lbInfoDTO.getRegion();
+		String loadBalancerName = loadBalancerInfo.getName();
+		String region = loadBalancerInfo.getRegion();
 
 		// Get all the instances attached - Attach newly added instances to load balancer
 
@@ -309,7 +290,7 @@ public class AWSLoadBalancer implements LoadBalancer {
 		// clusterMembers stores all the members of a cluster.
 		Collection<Member> clusterMembers = cluster.getMembers();
 
-		isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region,attachedInstances);
+		isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region);
 
 		return isUpdated;
 	}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d134a286/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 928c599..3d404ac 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,6 +36,8 @@ import java.util.concurrent.ThreadPoolExecutor;
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
 	private static ThreadPoolExecutor executor;
+	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
+	public static final int THREAD_POOL_SIZE = 10;
 
 	public static void main(String[] args) {
 
@@ -59,7 +61,6 @@ public class Main {
 			extension = new LoadBalancerExtension(new AWSLoadBalancer(),
 					statisticsReader, topologyProvider);
 			extension.setExecutorService(executor);
-
 			extension.execute();
 
 			// Add shutdown hook


[33/50] [abbrv] 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/334bb023
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/334bb023
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/334bb023

Branch: refs/heads/stratos-4.1.x
Commit: 334bb023be226373667ed9b04b1fcf302880afcf
Parents: 6afa5f2
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 8 07:32:06 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:47:46 2015 +0530

----------------------------------------------------------------------
 .../StratosManagerServiceComponent.java         | 25 ++++++++++++++
 .../mapping/DomainMappingEventReceiver.java     | 13 -------
 .../notifier/InstanceNotifierEventReceiver.java | 36 --------------------
 .../tests/PythonAgentIntegrationTest.java       | 16 +++------
 .../integration/common/TopologyHandler.java     | 10 +-----
 5 files changed, 30 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/334bb023/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 0dbc417..ddd2288 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
@@ -327,5 +327,30 @@ 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());
+
+        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);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/334bb023/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 1348db0..7181850 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
@@ -89,17 +89,4 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
             }
         }
     }
-
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/334bb023/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 2d8ed62..0e91c29 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/334bb023/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 5b951dd..860e019 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,15 +123,9 @@ public abstract class PythonAgentIntegrationTest {
             startActiveMQInstance(Integer.parseInt(amqpBindPorts[i]), Integer.parseInt(mqttBindPorts[i]), true);
         }
 
-        //ExecutorService executorService = StratosThreadPool.getExecutorService
-        //        ("TEST_THREAD_POOL", testThreadPoolSize);
         topologyEventReceiver = TopologyEventReceiver.getInstance();
-//        topologyEventReceiver.setExecutorService(executorService);
-//        topologyEventReceiver.execute();
 
         instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
-//        instanceStatusEventReceiver.setExecutorService(executorService);
-//        instanceStatusEventReceiver.execute();
 
         instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {
             @Override
@@ -150,8 +144,6 @@ public abstract class PythonAgentIntegrationTest {
         });
 
         initializerEventReceiver = InitializerEventReceiver.getInstance();
-//        initializerEventReceiver.setExecutorService(executorService);
-//        initializerEventReceiver.execute();
 
         this.eventReceiverInitialized = true;
 
@@ -217,10 +209,10 @@ public abstract class PythonAgentIntegrationTest {
             } catch (Exception ignore) {
             }
         }
-        log.info("Terminating event receivers...");
-        this.instanceStatusEventReceiver.terminate();
-        this.topologyEventReceiver.terminate();
-        this.initializerEventReceiver.terminate();
+//        log.info("Terminating event receivers...");
+//        this.instanceStatusEventReceiver.terminate();
+//        this.topologyEventReceiver.terminate();
+//        this.initializerEventReceiver.terminate();
 
         this.instanceStatusEventReceiver = null;
         this.topologyEventReceiver = null;

http://git-wip-us.apache.org/repos/asf/stratos/blob/334bb023/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 a91c034..d506b83 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
@@ -110,14 +110,10 @@ public class TopologyHandler {
 
     private void initializeApplicationSignUpEventReceiver() {
         applicationSignUpEventReceiver = ApplicationSignUpEventReceiver.getInstance();
-//        applicationSignUpEventReceiver.setExecutorService(executor);
-//        applicationSignUpEventReceiver.execute();
     }
 
     private void initializeTenantEventReceiver() {
         tenantEventReceiver = TenantEventReceiver.getInstance();
-//        tenantEventReceiver.setExecutorService(executor);
-//        tenantEventReceiver.execute();
     }
 
     /**
@@ -125,7 +121,6 @@ public class TopologyHandler {
      */
     private void initializeHealthStatsEventReceiver() {
         healthStatEventReceiver = HealthStatEventReceiver.getInstance();
-//        healthStatEventReceiver.setExecutorService(executor);
         healthStatEventReceiver.addEventListener(new MemberFaultEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -134,7 +129,6 @@ public class TopologyHandler {
                         memberFaultEvent.getMemberId()));
             }
         });
-//        healthStatEventReceiver.execute();
     }
 
     /**
@@ -142,7 +136,6 @@ public class TopologyHandler {
      */
     private void initializeApplicationEventReceiver() {
         applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
-//        applicationsEventReceiver.setExecutorService(executor);
         applicationsEventReceiver.addEventListener(new ApplicationInstanceActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -165,7 +158,7 @@ public class TopologyHandler {
                         appInstanceInactivatedEvent.getInstanceId()));
             }
         });
-        //applicationsEventReceiver.execute();
+
     }
 
     /**
@@ -173,7 +166,6 @@ public class TopologyHandler {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = TopologyEventReceiver.getInstance();
-//        topologyEventReceiver.setExecutorService(executor);
         topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {


[26/50] [abbrv] stratos git commit: Revert "Update the AS registry manager"

Posted by is...@apache.org.
Revert "Update the AS registry manager"

This reverts commit e64081f7944dadced190054eb44f8d1dafe0f892.


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

Branch: refs/heads/stratos-4.1.x
Commit: 1a5b99f5432cf539a64a02c5a437df32225261c3
Parents: 8145a03
Author: gayangunarathne <ga...@wso2.com>
Authored: Sun Dec 6 13:21:47 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:20 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/autoscaler/registry/RegistryManager.java    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/1a5b99f5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index 343b76a..925c4ff 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -85,7 +85,7 @@ public class RegistryManager {
         return instance;
     }
 
-    private synchronized Object retrieve(String resourcePath) {
+    private Object retrieve(String resourcePath) {
         try {
             Resource resource = registryService.get(resourcePath);
             return resource.getContent();
@@ -99,7 +99,7 @@ public class RegistryManager {
         }
     }
 
-    private synchronized void delete(String resourcePath) {
+    private void delete(String resourcePath) {
         try {
             registryService.beginTransaction();
             registryService.delete(resourcePath);
@@ -138,7 +138,7 @@ public class RegistryManager {
      * @param dataObj      object to be persisted.
      * @param resourcePath resource path to be persisted.
      */
-    private synchronized void persist(Object dataObj, String resourcePath) throws AutoScalerException {
+    private void persist(Object dataObj, String resourcePath) throws AutoScalerException {
 
         try {
             registryService.beginTransaction();


[40/50] [abbrv] 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/1ed93dd9
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/1ed93dd9
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/1ed93dd9

Branch: refs/heads/stratos-4.1.x
Commit: 1ed93dd9cfbb18a294de3d3541cdd4264fbe2659
Parents: c8c886d
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Dec 21 17:27:43 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:58:46 2015 +0530

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


http://git-wip-us.apache.org/repos/asf/stratos/blob/1ed93dd9/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/1ed93dd9/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/1ed93dd9/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 11fa481..928c599 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
@@ -74,13 +74,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...");


[36/50] [abbrv] 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/ede4990e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ede4990e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ede4990e

Branch: refs/heads/stratos-4.1.x
Commit: ede4990efd9f2d50b33c0dd1deaf07e847107466
Parents: 34462ee
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 23:17:57 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:51:04 2015 +0530

----------------------------------------------------------------------
 ...LoadBalancerCommonTopologyEventReceiver.java |  7 --
 .../internal/LoadBalancerServiceComponent.java  | 68 +-------------------
 .../internal/MessagingServiceComponent.java     | 66 +++++++++++++++++++
 .../status/ClusterStatusEventReceiver.java      |  5 ++
 .../mapping/DomainMappingEventReceiver.java     |  5 ++
 5 files changed, 79 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ede4990e/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/ede4990e/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 e7b45f8..65ca89a 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;
@@ -89,7 +87,6 @@ public class LoadBalancerServiceComponent {
     private static final Log log = LogFactory.getLog(LoadBalancerServiceComponent.class);
 
     private boolean activated = false;
-    //private ThreadPoolExecutor executor;
     private LoadBalancerTopologyEventReceiver topologyEventReceiver;
     private TenantEventReceiver tenantEventReceiver;
     private LoadBalancerDomainMappingEventReceiver domainMappingEventReceiver;
@@ -123,11 +120,8 @@ 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);
-           // executor = StratosThreadPool.getExecutorService(LoadBalancerConstants
-            //                .LOAD_BALANCER_THREAD_POOL_ID,
-            //        ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
+//            int threadPoolSize = Integer.getInteger(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_SIZE_KEY,
+//                    LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
 
             TopologyProvider topologyProvider = LoadBalancerConfiguration.getInstance().getTopologyProvider();
             if (topologyProvider == null) {
@@ -168,16 +162,12 @@ public class LoadBalancerServiceComponent {
     }
 
     private void startDomainMappingEventReceiver( TopologyProvider topologyProvider) {
+
         if (domainMappingEventReceiver != null) {
             return;
         }
 
         domainMappingEventReceiver = new LoadBalancerDomainMappingEventReceiver(topologyProvider);
-//        domainMappingEventReceiver.setExecutorService(executor);
-//        domainMappingEventReceiver.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Domain mapping event receiver thread started");
-//        }
     }
 
     private void startApplicationSignUpEventReceiver(TopologyProvider topologyProvider) {
@@ -186,11 +176,6 @@ public class LoadBalancerServiceComponent {
         }
 
         applicationSignUpEventReceiver = new LoadBalancerCommonApplicationSignUpEventReceiver(topologyProvider);
-//        applicationSignUpEventReceiver.setExecutorService(executor);
-//        applicationSignUpEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Application signup event receiver thread started");
-        }
     }
 
     private void startTopologyEventReceiver(TopologyProvider topologyProvider) {
@@ -199,11 +184,6 @@ public class LoadBalancerServiceComponent {
         }
 
         topologyEventReceiver = new LoadBalancerTopologyEventReceiver(topologyProvider);
-//        topologyEventReceiver.setExecutorService(executor);
-//        topologyEventReceiver.execute();
-//        if (log.isInfoEnabled()) {
-//            log.info("Topology receiver thread started");
-//        }
 
         if (log.isInfoEnabled()) {
             if (TopologyServiceFilter.getInstance().isActive()) {
@@ -224,13 +204,7 @@ public class LoadBalancerServiceComponent {
     }
 
     private void startTenantEventReceiver() {
-
         tenantEventReceiver = TenantEventReceiver.getInstance();
-//        tenantEventReceiver.setExecutorService(executor);
-//        tenantEventReceiver.execute();
-        if (log.isInfoEnabled()) {
-            log.info("Tenant event receiver thread started");
-        }
     }
 
     private void startStatisticsNotifier(TopologyProvider topologyProvider) {
@@ -256,33 +230,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 +238,6 @@ public class LoadBalancerServiceComponent {
                 log.warn("An error occurred while terminating health statistics notifier", e);
             }
         }
-
-        // Shutdown executor service
-//        if (executor != null) {
-//            try {
-//                executor.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/ede4990e/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/ede4990e/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 d797305..ecaa758 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
@@ -86,6 +86,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/ede4990e/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 7181850..844f19b 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


[18/50] [abbrv] stratos git commit: using sheduled thread pool per *monitors

Posted by is...@apache.org.
using sheduled thread pool per *monitors


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

Branch: refs/heads/stratos-4.1.x
Commit: 6189945b97b8bdacce63f4f6792684e33260812f
Parents: d4b35c0
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Mon Dec 21 20:58:15 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 21 20:58:15 2015 +0530

----------------------------------------------------------------------
 .../applications/topic/ApplicationBuilder.java  |  3 +
 .../AutoscalerTopologyEventReceiver.java        |  2 +
 .../stratos/autoscaler/monitor/Monitor.java     |  2 +
 .../monitor/cluster/ClusterMonitor.java         | 13 +++--
 .../component/ParentComponentMonitor.java       | 11 +++-
 .../services/impl/AutoscalerServiceImpl.java    |  5 ++
 .../autoscaler/util/AutoscalerConstants.java    |  3 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |  1 +
 .../threading/GracefulThreadPoolTerminator.java |  2 +
 .../common/threading/StratosThreadPool.java     | 60 ++++++++++++++++++--
 10 files changed, 89 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index 5fd4d5a..ec6b50a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -329,10 +329,12 @@ public class ApplicationBuilder {
                                 getAliasToActiveChildMonitorsMap().values()) {
                             //destroying the drools
                             monitor1.destroy();
+                            monitor1.cleanup();
                         }
                     }
                     // stopping application thread
                     applicationMonitor.destroy();
+                    applicationMonitor.cleanup();
                     AutoscalerContext.getInstance().removeAppMonitor(applicationId);
                     // Remove network partition algorithm context
                     AutoscalerContext.getInstance().removeNetworkPartitionAlgorithmContext(applicationId);
@@ -454,6 +456,7 @@ public class ApplicationBuilder {
                                 getAliasToActiveChildMonitorsMap().values()) {
                             //destroying the drools
                             monitor1.destroy();
+                            monitor1.cleanup();
                         }
                     }
                     org.apache.stratos.autoscaler.context.partition.network.NetworkPartitionContext networkPartitionContext =

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/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 c150a1f..5f123b2 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
@@ -204,6 +204,7 @@ public class AutoscalerTopologyEventReceiver {
                 }
                 //changing the status in the monitor, will notify its parent monitor
                 monitor.destroy();
+                monitor.cleanup();
                 monitor.notifyParentMonitor(ClusterStatus.Created, instanceId);
 
             }
@@ -316,6 +317,7 @@ public class AutoscalerTopologyEventReceiver {
                 if (!monitor.hasInstance() && (appMonitor != null && appMonitor.isTerminating())) {
                     //Destroying and Removing the Cluster monitor
                     monitor.destroy();
+                    monitor.cleanup();
                     AutoscalerContext.getInstance().removeClusterMonitor(clusterId);
                 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
index c58ec41..2814958 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/Monitor.java
@@ -216,4 +216,6 @@ public abstract class Monitor implements EventHandler, Runnable {
     public enum MonitorType {
         Application, Group, Cluster
     }
+
+    public abstract void cleanup ();
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index ead9130..ee936db 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -86,8 +86,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
 public class ClusterMonitor extends Monitor {
 
     private static final Log log = LogFactory.getLog(ClusterMonitor.class);
-    private final ScheduledThreadPoolExecutor scheduler;
-    private final ThreadPoolExecutor executor;
+    private ScheduledThreadPoolExecutor scheduler;
+    private ThreadPoolExecutor executor;
     protected boolean hasFaultyMember = false;
     protected ClusterContext clusterContext;
     protected String serviceType;
@@ -107,11 +107,11 @@ public class ClusterMonitor extends Monitor {
     public ClusterMonitor(Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree,
                           String deploymentPolicyId) {
 
-        scheduler = StratosThreadPool.getScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID, 50);
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
         executor = StratosThreadPool.getExecutorService(
                 AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
         this.clusterId = cluster.getClusterId();
+        scheduler = StratosThreadPool.getScheduledExecutorService(clusterId, 2);
         readConfigurations();
         this.groupScalingEnabledSubtree = groupScalingEnabledSubtree;
         this.setCluster(new Cluster(cluster));
@@ -147,7 +147,7 @@ public class ClusterMonitor extends Monitor {
         return MonitorType.Cluster;
     }
 
-    public void startScheduler() {
+    public synchronized void startScheduler() {
         schedulerFuture = scheduler.scheduleAtFixedRate(this, 0,
                 getMonitorIntervalMilliseconds(), TimeUnit.MILLISECONDS);
     }
@@ -1540,4 +1540,9 @@ public class ClusterMonitor extends Monitor {
     public String getDeploymentPolicyId() {
         return deploymentPolicyId;
     }
+
+    public void cleanup () {
+        // shutdown thread pools
+        StratosThreadPool.shutDownScheduledThreadPoolGracefully(clusterId);
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index 9efdf7c..24983a9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -68,8 +68,7 @@ public abstract class ParentComponentMonitor extends Monitor {
     private static final Log log = LogFactory.getLog(ParentComponentMonitor.class);
 
     //Scheduler executor service to execute this monitor in a thread
-    private final ScheduledThreadPoolExecutor scheduler = StratosThreadPool.getScheduledExecutorService(
-            "autoscaler.monitor.scheduler.thread.pool", 100);
+    private final ScheduledThreadPoolExecutor scheduler;
     //The monitors dependency tree with all the start-able/kill-able dependencies
     protected DependencyTree startupDependencyTree;
     //The monitors dependency tree with all the scaling dependencies
@@ -95,6 +94,7 @@ public abstract class ParentComponentMonitor extends Monitor {
         terminatingInstancesMap = new ConcurrentHashMap<String, List<String>>();
         pendingChildMonitorsList = new ArrayList<String>();
         id = component.getUniqueIdentifier();
+        scheduler = StratosThreadPool.getScheduledExecutorService(id, 2);
 
         // Building the startup dependencies for this monitor within the immediate children
         startupDependencyTree = DependencyBuilder.getInstance().buildDependency(component);
@@ -126,7 +126,7 @@ public abstract class ParentComponentMonitor extends Monitor {
     /**
      * Starting the scheduler for the monitor
      */
-    public void startScheduler() {
+    public synchronized void startScheduler() {
         int monitoringIntervalMilliseconds = 60000;
         schedulerFuture = scheduler.scheduleAtFixedRate(this, 0,
                 monitoringIntervalMilliseconds, TimeUnit.MILLISECONDS);
@@ -1067,4 +1067,9 @@ public abstract class ParentComponentMonitor extends Monitor {
     public void removeMonitor(String id) {
         this.aliasToActiveChildMonitorsMap.remove(id);
     }
+
+    public void cleanup () {
+        // shutdown thread pools
+        StratosThreadPool.shutDownScheduledThreadPoolGracefully(id);
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index 0943de0..a77c80a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -935,6 +935,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
                 getAppMonitor(applicationId);
         if (applicationMonitor != null) {
             applicationMonitor.destroy();
+            applicationMonitor.cleanup();
 
             if (applicationMonitor.hasInstance()) {
                 Map<String, Monitor> monitors = applicationMonitor.
@@ -966,6 +967,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
                             getClusterMonitor(clusterId);
                     if (clusterMonitor != null) {
                         clusterMonitor.destroy();
+                        clusterMonitor.cleanup();
                     } else {
                         if (log.isDebugEnabled()) {
                             log.debug(String.format(
@@ -977,6 +979,8 @@ public class AutoscalerServiceImpl implements AutoscalerService {
                         Collection<ClusterInstance> allClusterInstances = cluster.getClusterInstances();
 
                         if (allClusterInstances.isEmpty() && clusterMonitor != null) {
+                            clusterMonitor.destroy();
+                            clusterMonitor.cleanup();
                             AutoscalerContext.getInstance().removeClusterMonitor(clusterId);
                         }
 
@@ -1007,6 +1011,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
                 ApplicationContext applicationContext = AutoscalerContext.getInstance().
                         getApplicationContext(applicationId);
                 applicationMonitor.destroy();
+                applicationMonitor.cleanup();
                 AutoscalerContext.getInstance().removeAppMonitor(applicationId);
                 // Remove network partition algorithm context
                 AutoscalerContext.getInstance().removeNetworkPartitionAlgorithmContext(applicationId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
index ef12983..62ae532 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
@@ -38,7 +38,8 @@ public final class AutoscalerConstants {
     public static final String AUTOSCALER_SCHEDULER_ID = "autoscaler.scheduler.thread.pool";
     public static final String SCHEDULER_THREAD_POOL_SIZE_KEY = "autoscaler.scheduler.thread.pool.size";
     public static final int AUTOSCALER_SCHEDULER_THREAD_POOL_SIZE = 5;
-    public static final int AUTOSCALER_THREAD_POOL_SIZE = 50;
+    //public static final int AUTOSCALER_THREAD_POOL_SIZE = 50;
+    public static final int AUTOSCALER_THREAD_POOL_SIZE = 10;
     public static final String COMPONENTS_CONFIG = CarbonUtils.getCarbonConfigDirPath() +
             File.separator + "stratos-config.xml";
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index b6ce0ed..e00f4e9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -1027,6 +1027,7 @@ public class AutoscalerUtil {
         while(monitorsIter.hasNext()) {
             Monitor monitor = monitorsIter.next();
             monitor.destroy();
+            monitor.cleanup();
             Iterator<Instance> instances = monitor.getInstances().iterator();
             while(instances.hasNext()) {
                 Instance instance = instances.next();

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
index 70cda66..2ccfc45 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
@@ -41,6 +41,7 @@ public class GracefulThreadPoolTerminator implements Callable<String> {
     @Override
     public String call() {
         // try to shut down gracefully
+        log.info("Attempting to gracefully shut down thread pool " +  threadPoolId);
         executor.shutdown();
         // wait 10 secs till terminated
         try {
@@ -53,6 +54,7 @@ public class GracefulThreadPoolTerminator implements Callable<String> {
             // interrupted, shutdown now
             executor.shutdownNow();
         }
+        log.info("Successfully shut down thread pool " +  threadPoolId);
         return threadPoolId;
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6189945b/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 4eb8304..1f4e5c8 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
@@ -35,8 +35,8 @@ public class StratosThreadPool {
 
     private static final Log log = LogFactory.getLog(StratosThreadPool.class);
 
-    private static Map<String, ThreadPoolExecutor> executorMap = new ConcurrentHashMap<>();
-    private static Map<String, ScheduledThreadPoolExecutor> scheduledExecutorMap = new ConcurrentHashMap<>();
+    private static volatile Map<String, ThreadPoolExecutor> executorMap = new ConcurrentHashMap<>();
+    private static volatile Map<String, ScheduledThreadPoolExecutor> scheduledExecutorMap = new ConcurrentHashMap<>();
     private static final Object executorServiceMapLock = new Object();
     private static final Object scheduledServiceMapLock = new Object();
 
@@ -47,14 +47,14 @@ public class StratosThreadPool {
      * @param maxSize Thread pool size
      * @return ThreadPoolExecutor
      */
-    public static ThreadPoolExecutor getExecutorService(String identifier, int initialSize, int
-            maxSize) {
+    public static ThreadPoolExecutor getExecutorService(String identifier, int initialSize, int maxSize) {
         ThreadPoolExecutor executor = executorMap.get(identifier);
         if (executor == null) {
             synchronized (executorServiceMapLock) {
                 if (executor == null) {
+                    int taskQueueSize = initialSize > 3 ? (int)Math.ceil(initialSize/3) : 1;
                     executor = new ThreadPoolExecutor(initialSize, maxSize, 60L, TimeUnit.SECONDS,
-                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
+                            new LinkedBlockingQueue<Runnable>(taskQueueSize), new StratosThreadFactory(identifier));
                     executorMap.put(identifier, executor);
                     log.info(String.format("Thread pool created: [type] Executor [id] %s " +
                             "[initial size] %d [max size] %d", identifier, initialSize, maxSize));
@@ -88,6 +88,43 @@ public class StratosThreadPool {
         return scheduledExecutor;
     }
 
+    /**
+     * Stops the executor with the specified id in a graceful manner
+     *
+     * @param threadPoolId thread pool id
+     */
+    public static void shutDownThreadPoolGracefully (String threadPoolId) {
+
+        ThreadPoolExecutor executor = executorMap.get(threadPoolId);
+        if (executor == null) {
+            log.warn("No thread pool found for id " + threadPoolId + ", unable to shut down");
+            return;
+        }
+
+        new GracefulThreadPoolTerminator(threadPoolId, executor).call();
+        removeThreadPoolFromCache(threadPoolId);
+    }
+
+    /**
+     * Stops the scheduled executor with the specified id in a graceful manner
+     *
+     * @param threadPoolId thread pool id
+     */
+    public static void shutDownScheduledThreadPoolGracefully (String threadPoolId) {
+
+        ScheduledThreadPoolExecutor scheduledExecutor = scheduledExecutorMap.get(threadPoolId);
+        if (scheduledExecutor == null) {
+            log.warn("No scheduled thread pool found for id " + threadPoolId + ", unable to shut down");
+            return;
+        }
+
+        new GracefulThreadPoolTerminator(threadPoolId, scheduledExecutor).call();
+        removeScheduledThreadPoolFromCache(threadPoolId);
+    }
+
+    /**
+     * Stop all executors in a graceful manner
+     */
     public static void shutDownAllThreadPoolsGracefully () {
 
         int threadPoolCount = executorMap.size();
@@ -129,6 +166,9 @@ public class StratosThreadPool {
         }
     }
 
+    /**
+     * Stop all scheduled executors in a graceful manner
+     */
     public static void shutDownAllScheduledExecutorsGracefully () {
 
         int threadPoolCount = scheduledExecutorMap.size();
@@ -170,6 +210,11 @@ public class StratosThreadPool {
         }
     }
 
+    /**
+     * Removes the thread pool with id terminatedPoolId from the executorMap
+     *
+     * @param terminatedPoolId thread pool id
+     */
     private static void removeThreadPoolFromCache(String terminatedPoolId) {
         if (executorMap.remove(terminatedPoolId) != null) {
             log.info("Thread pool [id] " + terminatedPoolId + " is successfully shut down" +
@@ -177,6 +222,11 @@ public class StratosThreadPool {
         }
     }
 
+    /**
+     * Removes the scheduled thread pool with id terminatedPoolId from the scheduledExecutorMap
+     *
+     * @param terminatedPoolId thread pool id
+     */
     private static void removeScheduledThreadPoolFromCache(String terminatedPoolId) {
         if (scheduledExecutorMap.remove(terminatedPoolId) != null) {
             log.info("Scheduled Thread pool [id] " + terminatedPoolId + " is successfully shut down" +


[47/50] [abbrv] stratos git commit: making min threads for a Thread pool configurable via a ratio and making stratos.manager.thread.pool & cloud.controller.thread.pool configurable

Posted by is...@apache.org.
making min threads for a Thread pool configurable via a ratio and making stratos.manager.thread.pool & cloud.controller.thread.pool configurable


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

Branch: refs/heads/stratos-4.1.x
Commit: 8088240408b3b66fcbccf9740340a8790e050e7b
Parents: 991da8e
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Jan 5 16:15:13 2016 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Jan 5 16:15:13 2016 +0530

----------------------------------------------------------------------
 .../internal/AutoscalerServiceComponent.java          |  5 ++++-
 .../autoscaler/monitor/cluster/ClusterMonitor.java    |  5 ++++-
 .../monitor/component/ApplicationMonitor.java         |  5 ++++-
 .../autoscaler/monitor/component/GroupMonitor.java    |  6 +++++-
 .../monitor/component/ParentComponentMonitor.java     |  5 ++++-
 .../publisher/DASScalingDecisionPublisher.java        |  6 +++++-
 .../internal/CloudControllerServiceComponent.java     | 10 +++++++++-
 .../services/impl/CloudControllerServiceImpl.java     |  5 ++++-
 .../publisher/DASMemberInformationPublisher.java      |  6 +++++-
 .../publisher/DASMemberStatusPublisher.java           |  6 +++++-
 .../controller/util/CloudControllerConstants.java     |  2 ++
 .../stratos/common/constants/StratosConstants.java    |  2 ++
 .../threading/GracefulThreadPoolTerminator.java       | 14 ++++++++++----
 .../stratos/common/threading/StratosThreadPool.java   |  4 ++--
 .../statistics/LoadBalancerStatisticsExecutor.java    |  6 +++++-
 .../internal/StratosManagerServiceComponent.java      | 13 +++++++++++--
 .../manager/utils/StratosManagerConstants.java        |  6 +-----
 .../message/receiver/StratosEventReceiver.java        |  5 ++++-
 18 files changed, 86 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/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 bcd4fc1..d9b6729 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
@@ -45,6 +45,7 @@ import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import org.apache.stratos.autoscaler.util.ConfUtil;
 import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
 import org.apache.stratos.common.Component;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
 import org.apache.stratos.common.services.DistributedObjectProvider;
 import org.apache.stratos.common.threading.StratosThreadPool;
@@ -94,8 +95,10 @@ public class AutoscalerServiceComponent {
             XMLConfiguration conf = ConfUtil.getInstance(AutoscalerConstants.COMPONENTS_CONFIG).getConfiguration();
             int threadPoolSize = conf
                     .getInt(AutoscalerConstants.THREAD_POOL_SIZE_KEY, AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE);
+            Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+            int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
             executor = StratosThreadPool.getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID, ((int) Math
-                    .ceil(threadPoolSize / 3)), threadPoolSize);
+                    .ceil(threadPoolSize / divisor)), threadPoolSize);
 
             int schedulerThreadPoolSize = conf.getInt(AutoscalerConstants.SCHEDULER_THREAD_POOL_SIZE_KEY,
                     AutoscalerConstants.AUTOSCALER_SCHEDULER_THREAD_POOL_SIZE);

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index ee936db..898a26d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -108,8 +108,11 @@ public class ClusterMonitor extends Monitor {
                           String deploymentPolicyId) {
 
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(
-                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
+                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/divisor)),
+                threadPoolSize);
         this.clusterId = cluster.getClusterId();
         scheduler = StratosThreadPool.getScheduledExecutorService(clusterId, 2);
         readConfigurations();

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index c94ef7e..5836ee8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -18,6 +18,7 @@
  */
 package org.apache.stratos.autoscaler.monitor.component;
 
+import org.apache.commons.configuration.SystemConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.algorithms.NetworkPartitionAlgorithm;
@@ -79,8 +80,10 @@ public class ApplicationMonitor extends ParentComponentMonitor {
         super(application);
 
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         this.executor = StratosThreadPool.getExecutorService(AutoscalerConstants.MONITOR_THREAD_POOL_ID,
-                ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
+                ((int)Math.ceil(threadPoolSize/divisor)), threadPoolSize);
 
         //setting the appId for the application
         this.appId = application.getUniqueIdentifier();

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index d5cfc3f..a9c320f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -40,6 +40,7 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.autoscaler.util.AutoscalerConstants;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
 import org.apache.stratos.autoscaler.util.ServiceReferenceHolder;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.partition.NetworkPartitionRef;
 import org.apache.stratos.common.partition.PartitionRef;
 import org.apache.stratos.common.threading.StratosThreadPool;
@@ -85,8 +86,11 @@ public class GroupMonitor extends ParentComponentMonitor {
         super(group);
 
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         this.executor = StratosThreadPool.getExecutorService(
-                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/3)),threadPoolSize);
+                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/divisor)),
+                threadPoolSize);
 
         this.groupScalingEnabled = group.isGroupScalingEnabled();
         this.appId = appId;

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index 24983a9..a7e44cc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -109,8 +109,11 @@ public abstract class ParentComponentMonitor extends Monitor {
         }
 
         // Create the executor service with identifier and thread pool size
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID,
-                ((int)Math.ceil(AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE/3)),AutoscalerConstants
+                ((int)Math.ceil(AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE/divisor)),
+                AutoscalerConstants
                         .AUTOSCALER_THREAD_POOL_SIZE);
         networkPartitionContextsMap = new ConcurrentHashMap<String, NetworkPartitionContext>();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
index ad0e77b..3b5ca4e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
@@ -22,6 +22,7 @@ package org.apache.stratos.autoscaler.statistics.publisher;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.util.AutoscalerConstants;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.wso2.carbon.databridge.commons.Attribute;
 import org.wso2.carbon.databridge.commons.AttributeType;
@@ -46,8 +47,11 @@ public class DASScalingDecisionPublisher extends ScalingDecisionPublisher {
 
     public DASScalingDecisionPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(AutoscalerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                ((int)Math.ceil(STATS_PUBLISHER_THREAD_POOL_SIZE/3)), STATS_PUBLISHER_THREAD_POOL_SIZE);
+                ((int)Math.ceil(STATS_PUBLISHER_THREAD_POOL_SIZE/divisor)),
+                STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 
     public static DASScalingDecisionPublisher getInstance() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/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 720bf17..569d566 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
@@ -33,7 +33,9 @@ import org.apache.stratos.cloud.controller.messaging.receiver.initializer.Initia
 import org.apache.stratos.cloud.controller.messaging.receiver.instance.status.InstanceStatusTopicReceiver;
 import org.apache.stratos.cloud.controller.services.CloudControllerService;
 import org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceImpl;
+import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.common.Component;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
 import org.apache.stratos.common.services.DistributedObjectProvider;
 import org.apache.stratos.common.threading.StratosThreadPool;
@@ -88,8 +90,14 @@ public class CloudControllerServiceComponent {
             log.debug("Activating CloudControllerServiceComponent...");
         }
         try {
+            Integer ccThreadPoolSize = Integer.getInteger(CloudControllerConstants.CC_THREAD_POOL_SIZE);
+            if (ccThreadPoolSize == null || ccThreadPoolSize <= 0) {
+                ccThreadPoolSize = THREAD_POOL_SIZE;
+            }
+            Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+            int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
             executor = StratosThreadPool.getExecutorService(THREAD_POOL_ID, ((int)Math.ceil
-                    (THREAD_POOL_SIZE/3)),THREAD_POOL_SIZE);
+                    (ccThreadPoolSize/divisor)),ccThreadPoolSize);
             scheduler = StratosThreadPool
                     .getScheduledExecutorService(SCHEDULER_THREAD_POOL_ID, SCHEDULER_THREAD_POOL_SIZE);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index f3e363f..f5901e1 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -35,6 +35,7 @@ import org.apache.stratos.cloud.controller.services.CloudControllerService;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.common.Property;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.domain.topology.*;
@@ -63,8 +64,10 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     private ThreadPoolExecutor executor;
 
     public CloudControllerServiceImpl() {
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService("cloud.controller.instance.manager.thread" +
-                ".pool", 20, 50);
+                ".pool", 50/divisor, 50);
 
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
index 0d38967..fbba1c6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
@@ -27,6 +27,7 @@ import org.apache.stratos.cloud.controller.domain.IaasProvider;
 import org.apache.stratos.cloud.controller.domain.InstanceMetadata;
 import org.apache.stratos.cloud.controller.domain.MemberContext;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.wso2.carbon.databridge.commons.Attribute;
 import org.wso2.carbon.databridge.commons.AttributeType;
@@ -52,8 +53,11 @@ public class DASMemberInformationPublisher extends MemberInformationPublisher {
 
     private DASMemberInformationPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/3)), CloudControllerConstants
+                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/divisor)),
+                CloudControllerConstants
                         .STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
index f28d2c8..a9f1cb7 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
@@ -22,6 +22,7 @@ package org.apache.stratos.cloud.controller.statistics.publisher;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.wso2.carbon.databridge.commons.Attribute;
 import org.wso2.carbon.databridge.commons.AttributeType;
@@ -45,8 +46,11 @@ public class DASMemberStatusPublisher extends MemberStatusPublisher {
 
     private DASMemberStatusPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/3)), CloudControllerConstants
+                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/divisor)),
+                CloudControllerConstants
                         .STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
index 29facf0..bc957c0 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
@@ -349,4 +349,6 @@ public final class CloudControllerConstants {
     public static final String IAAS_TYPE_EC2 = "ec2";
     public static final String INSTANCE_CTXT_EC2_REGION = "EC2_REGION";
     public static final String INSTANCE_CTXT_EC2_AVAILABILITY_ZONE = "EC2_AVAILABILITY_ZONE";
+
+    public static final String CC_THREAD_POOL_SIZE = "cc.thread.pool.size";
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
index 143de54..83495f9 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
@@ -212,5 +212,7 @@ public class StratosConstants {
 
     public static final String NOT_DEFINED = "not-defined";
     public static final String CLUSTER_INSTANCE_ID = "cluster.instance.id";
+    public static final String THREAD_POOL_INITIAL_MIN_MAX_RATIO = "thread.pool.initial.min.max.ratio";
+    public static final int DEFAULT_THREAD_POOL_MIN_MAX_RATIO = 3;
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
index 2ccfc45..ce6c12c 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
@@ -41,20 +41,26 @@ public class GracefulThreadPoolTerminator implements Callable<String> {
     @Override
     public String call() {
         // try to shut down gracefully
-        log.info("Attempting to gracefully shut down thread pool " +  threadPoolId);
+        if(log.isDebugEnabled()) {
+            log.debug("Attempting to gracefully shut down thread pool " + threadPoolId);
+        }
         executor.shutdown();
         // wait 10 secs till terminated
         try {
             if (!executor.awaitTermination(10, TimeUnit.SECONDS)) {
-                log.info("Thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
-                        "timeout, forcefully shutting down");
+                if(log.isDebugEnabled()) {
+                    log.debug("Thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
+                            "timeout, forcefully shutting down");
+                }
                 executor.shutdownNow();
             }
         } catch (InterruptedException e) {
             // interrupted, shutdown now
             executor.shutdownNow();
         }
-        log.info("Successfully shut down thread pool " +  threadPoolId);
+        if (log.isDebugEnabled()) {
+            log.debug("Successfully shut down thread pool " + threadPoolId);
+        }
         return threadPoolId;
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/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 1f4e5c8..0e1ffa9 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
@@ -52,12 +52,12 @@ public class StratosThreadPool {
         if (executor == null) {
             synchronized (executorServiceMapLock) {
                 if (executor == null) {
-                    int taskQueueSize = initialSize > 3 ? (int)Math.ceil(initialSize/3) : 1;
+                    int taskQueueSize = initialSize > 4 ? (int)Math.ceil(initialSize/4) : 1;
                     executor = new ThreadPoolExecutor(initialSize, maxSize, 60L, TimeUnit.SECONDS,
                             new LinkedBlockingQueue<Runnable>(taskQueueSize), new StratosThreadFactory(identifier));
                     executorMap.put(identifier, executor);
                     log.info(String.format("Thread pool created: [type] Executor [id] %s " +
-                            "[initial size] %d [max size] %d", identifier, initialSize, maxSize));
+                            "[initial size] %d [max size] %d [queue length] %d", identifier, initialSize, maxSize, taskQueueSize));
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
index 486b98b..d31b702 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
@@ -20,6 +20,7 @@ package org.apache.stratos.load.balancer.statistics;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.load.balancer.util.LoadBalancerConstants;
 
@@ -38,8 +39,11 @@ public class LoadBalancerStatisticsExecutor {
     private ThreadPoolExecutor executor;
 
     private LoadBalancerStatisticsExecutor() {
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
         executor = StratosThreadPool.getExecutorService(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_ID,
-                ((int)Math.ceil(LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE/3)), LoadBalancerConstants
+                ((int)Math.ceil(LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE/divisor)),
+                LoadBalancerConstants
                         .LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/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 1b48603..dab0540 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
@@ -19,9 +19,11 @@
 package org.apache.stratos.manager.internal;
 
 import com.hazelcast.core.HazelcastInstance;
+import org.apache.commons.lang.IncompleteArgumentException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.common.Component;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
 import org.apache.stratos.common.services.DistributedObjectProvider;
 import org.apache.stratos.common.threading.StratosThreadPool;
@@ -36,6 +38,7 @@ import org.apache.stratos.manager.messaging.receiver.StratosManagerTopologyEvent
 import org.apache.stratos.manager.user.management.TenantUserRoleManager;
 import org.apache.stratos.manager.user.management.exception.UserManagerException;
 import org.apache.stratos.common.util.CartridgeConfigFileReader;
+import org.apache.stratos.manager.utils.StratosManagerConstants;
 import org.apache.stratos.manager.utils.UserRoleCreator;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.util.MessagingUtil;
@@ -98,8 +101,14 @@ public class StratosManagerServiceComponent {
             log.debug("Activating StratosManagerServiceComponent...");
         }
         try {
-            executor = StratosThreadPool.getExecutorService(THREAD_POOL_ID, ((int)Math.ceil(THREAD_POOL_SIZE/3))
-                    , THREAD_POOL_SIZE);
+            Integer smThreadPoolSize = Integer.getInteger(StratosManagerConstants.SM_THREAD_POOL_SIZE);
+            if (smThreadPoolSize == null || smThreadPoolSize <= 0) {
+                smThreadPoolSize = THREAD_POOL_SIZE;
+            }
+            Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+            int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
+            executor = StratosThreadPool.getExecutorService(THREAD_POOL_ID, ((int)Math.ceil(smThreadPoolSize/divisor))
+                    , smThreadPoolSize);
             scheduler = StratosThreadPool
                     .getScheduledExecutorService(SCHEDULER_THREAD_POOL_ID, SCHEDULER_THREAD_POOL_SIZE);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/StratosManagerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/StratosManagerConstants.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/StratosManagerConstants.java
index 171f689..0929506 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/StratosManagerConstants.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/StratosManagerConstants.java
@@ -24,9 +24,5 @@ package org.apache.stratos.manager.utils;
  */
 public class StratosManagerConstants {
 
-    public static final String DEFAULT_CRON = "1 * * * * ? *";
-    public static final String TENANT_SYNC_TASK_TYPE = "TENANT_SYNC_TASK_TYPE";
-    public static final String TENANT_SYNC_TASK_NAME = "TENANT_SYNC_TASK";
-    public static final String APPLICATION_SIGNUP_SYNC_TASK_TYPE = "APPLICATION_SIGNUP_SYNC_TASK_TYPE";
-    public static final String APPLICATION_SIGNUP_SYNC_TASK_NAME = "APPLICATION_SIGNUP_SYNC_TASK";
+    public static final String  SM_THREAD_POOL_SIZE = "sm.thread.pool.size";
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/80882404/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 0c17efb..34c0b28 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
@@ -22,6 +22,7 @@ package org.apache.stratos.messaging.message.receiver;
 import java.util.concurrent.ThreadPoolExecutor;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.listener.EventListener;
 
@@ -63,7 +64,9 @@ public abstract class StratosEventReceiver {
 
     public StratosEventReceiver () {
         this.threadPoolId = STRATOS_EVENT_RECEIEVER_THREAD_POOL_ID;
-        this.executor = StratosThreadPool.getExecutorService(threadPoolId, (int)Math.ceil(threadPoolSize/3),
+        Integer ratio = Integer.getInteger(StratosConstants.THREAD_POOL_INITIAL_MIN_MAX_RATIO);
+        int divisor = ratio != null && ratio >= 1 ? ratio : StratosConstants.DEFAULT_THREAD_POOL_MIN_MAX_RATIO;
+        this.executor = StratosThreadPool.getExecutorService(threadPoolId, (int)Math.ceil(threadPoolSize/divisor),
                 threadPoolSize);
     }
 


[49/50] [abbrv] stratos git commit: fixing conflicts

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


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

Branch: refs/heads/stratos-4.1.x
Commit: 90dc06245d03f18ba3d71a6549be3aeed2fa124f
Parents: 4ef0b6e 8033fd3
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Jan 5 16:54:49 2016 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Jan 5 16:54:49 2016 +0530

----------------------------------------------------------------------
 .../AutoscalerTopologyEventReceiver.java        | 11 ---------
 .../agent/test/JavaCartridgeAgentTest.java      |  5 ++--
 .../CloudControllerServiceComponent.java        |  2 +-
 .../status/ClusterStatusTopicReceiver.java      | 25 --------------------
 .../initializer/InitializerTopicReceiver.java   | 18 --------------
 .../extension/api/LoadBalancerExtension.java    | 10 +++-----
 .../internal/LoadBalancerServiceComponent.java  |  7 ++++++
 .../StratosManagerInitializerTopicReceiver.java | 19 ---------------
 .../application/ApplicationsEventReceiver.java  |  1 +
 .../signup/ApplicationSignUpEventReceiver.java  |  1 +
 .../status/ClusterStatusEventReceiver.java      |  1 -
 .../mapping/DomainMappingEventReceiver.java     |  1 +
 .../health/stat/HealthStatEventReceiver.java    |  1 +
 .../status/InstanceStatusEventReceiver.java     |  1 +
 .../receiver/tenant/TenantEventReceiver.java    |  1 +
 .../topology/TopologyEventReceiver.java         |  1 +
 .../MetadataApplicationEventReceiver.java       | 18 --------------
 .../service/MetadataTopologyEventReceiver.java  | 25 --------------------
 .../mock/iaas/services/impl/MockInstance.java   | 15 ------------
 .../org/apache/stratos/aws/extension/Main.java  |  6 +----
 .../tests/PythonAgentIntegrationTest.java       |  1 -
 .../integration/common/TopologyHandler.java     |  1 -
 22 files changed, 22 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/event/receiver/topology/AutoscalerTopologyEventReceiver.java
index 5f123b2,e2b417e..0675342
--- 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
@@@ -47,8 -47,8 +47,6 @@@ import org.apache.stratos.messaging.lis
  import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
  import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
  
--import java.util.concurrent.ExecutorService;
--
  /**
   * Autoscaler topology receiver.
   */
@@@ -63,15 -63,15 +61,6 @@@ public class AutoscalerTopologyEventRec
          addEventListeners();
      }
  
--//    public void execute() {
--//        //FIXME this activated before autoscaler deployer activated.
- //       // topologyEventReceiver.setExecutor(getExecutor());
 -//       // 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
          topologyEventReceiver.addEventListener(new CompleteTopologyEventListener() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
index e6b7b98,903fa58..3fa4097
--- 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
@@@ -121,10 -121,14 +121,11 @@@ public class JavaCartridgeAgentTest 
  
          String agentHome = setupJavaAgent();
  
- //        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
 -        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
          topologyEventReceiver = TopologyEventReceiver.getInstance();
 -        //topologyEventReceiver.setExecutorService(executorService);
 -        //topologyEventReceiver.execute();
--
          instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
 -//        instanceStatusEventReceiver.setExecutorService(executorService);
 -//        instanceStatusEventReceiver.execute();
++        topologyEventReceiver = TopologyEventReceiver.getInstance();
++        instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
++
  
          instanceStarted = false;
          instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 569d566,5b01330..4089ccd
--- 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
@@@ -237,8 -230,7 +237,8 @@@ public class CloudControllerServiceComp
              log.warn("An error occurred while closing cloud controller topology event publisher", e);
          }
  
--        // shutdown TopologyEventSync task
 -        StratosThreadPool.shutdown(THREAD_POOL_ID);
++        // shutdown
 +        StratosThreadPool.shutDownThreadPoolGracefully(THREAD_POOL_ID);
 +        StratosThreadPool.shutDownScheduledThreadPoolGracefully(SCHEDULER_THREAD_POOL_ID);
      }
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/cluster/status/ClusterStatusTopicReceiver.java
index a7c0947,e0b9f62..eead96f
--- 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
@@@ -27,29 -27,29 +27,16 @@@ import org.apache.stratos.messaging.lis
  import org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventReceiver;
  import org.wso2.carbon.registry.core.exceptions.RegistryException;
  
--import java.util.concurrent.ExecutorService;
--
  public class ClusterStatusTopicReceiver {
      private static final Log log = LogFactory.getLog(ClusterStatusTopicReceiver.class);
  
      private ClusterStatusEventReceiver clusterStatusEventReceiver;
--    //private boolean terminated;
-     //private ExecutorService executor;
 -    //private ExecutorService executorService;
  
      public ClusterStatusTopicReceiver() {
          this.clusterStatusEventReceiver = ClusterStatusEventReceiver.getInstance();
          addEventListeners();
      }
  
--//    public void execute() {
- //        clusterStatusEventReceiver.setExecutorService(executor);
 -//        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
          clusterStatusEventReceiver.addEventListener(new ClusterStatusClusterResetEventListener() {
@@@ -114,16 -114,16 +101,4 @@@
              }
          });
      }
--
--//    public void setTerminated(boolean terminated) {
--//        this.terminated = terminated;
--//    }
--//
- //    public ExecutorService getExecutor() {
- //        return executor;
 -//    public ExecutorService getExecutorService() {
 -//        return executorService;
--//    }
--//
- //    public void setExecutorService(ExecutorService executor) {
- //        this.executor = executor;
 -//    public void setExecutorService(ExecutorService executorService) {
 -//        this.executorService = executorService;
--//    }
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/receiver/initializer/InitializerTopicReceiver.java
index 4d31058,9a2c502..f4e30c8
--- 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
@@@ -26,8 -26,8 +26,6 @@@ import org.apache.stratos.messaging.eve
  import org.apache.stratos.messaging.listener.initializer.CompleteTopologyRequestEventListener;
  import org.apache.stratos.messaging.message.receiver.initializer.InitializerEventReceiver;
  
--import java.util.concurrent.ExecutorService;
--
  public class InitializerTopicReceiver {
      private static final Log log = LogFactory.getLog(InitializerTopicReceiver.class);
      private InitializerEventReceiver initializerEventReceiver;
@@@ -38,14 -38,14 +36,6 @@@
          addEventListeners();
      }
  
--//    public void execute() {
- //        initializerEventReceiver.setExecutorService(executor);
 -//        initializerEventReceiver.setExecutorService(executorService);
--//        initializerEventReceiver.execute();
--//        if (log.isInfoEnabled()) {
--//            log.info("Autoscaler initializer topic receiver started");
--//        }
--//    }
--
      private void addEventListeners() {
          initializerEventReceiver.addEventListener(new CompleteTopologyRequestEventListener() {
              @Override
@@@ -61,12 -61,12 +51,4 @@@
              }
          });
      }
--
- //    public ExecutorService getExecutor() {
- //        return executor;
 -//    public ExecutorService getExecutorService() {
 -//        return executorService;
--//    }
--//
- //    public void setExecutorService(ExecutorService executor) {
- //        this.executor = executor;
 -//    public void setExecutorService(ExecutorService executorService) {
 -//        this.executorService = executorService;
--//    }
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
index 838f0fc,ec1ddbc..7364d98
--- 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
@@@ -124,8 -125,8 +124,7 @@@ public class LoadBalancerExtension 
          addTopologyEventListeners(topologyEventReceiver);
          // Add default topology provider event listeners
          topologyEventReceiver.addEventListeners();
- //        topologyEventReceiver.setExecutorService(executor);
 -//        topologyEventReceiver.setExecutorService(executorService);
--//        topologyEventReceiver.execute();
++
          if (log.isInfoEnabled()) {
              log.info("Topology receiver thread started");
          }
@@@ -148,10 -149,10 +147,9 @@@
          }
      }
  
 -    private void startApplicationEventReceiver(ExecutorService executorService) {
 +    private void startApplicationEventReceiver() {
          applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
- //        applicationsEventReceiver.setExecutorService(executor);
 -//        applicationsEventReceiver.setExecutorService(executorService);
--//        applicationsEventReceiver.execute();
++
          if (log.isInfoEnabled()) {
              log.info("Application event receiver thread started");
          }
@@@ -160,18 -161,18 +158,16 @@@
      /**
       * Start domain mapping event receiver thread.
       *
--     * @param executorService  executor service instance
       * @param topologyProvider topology receiver instance
       */
 -    private void startDomainMappingEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
 +    private void startDomainMappingEventReceiver(TopologyProvider topologyProvider) {
          // Enforcing the listener order in order execute extension listener later
          domainMappingEventReceiver = new LoadBalancerCommonDomainMappingEventReceiver(topologyProvider, false);
          // Add extension event listeners
          addDomainMappingsEventListeners(domainMappingEventReceiver);
          // Add default domain mapping event listeners
          domainMappingEventReceiver.addEventListeners();
- //        domainMappingEventReceiver.setExecutorService(executor);
 -//        domainMappingEventReceiver.setExecutorService(executorService);
--//        domainMappingEventReceiver.execute();
++
          if (log.isInfoEnabled()) {
              log.info("Domain mapping event receiver thread started");
          }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index 65ca89a,b235208..feedc9b
--- 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
@@@ -120,9 -120,6 +120,12 @@@ public class LoadBalancerServiceCompone
              // Configure topology filters
              TopologyFilterConfigurator.configure(configuration);
  
++<<<<<<< HEAD
 +//            int threadPoolSize = Integer.getInteger(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_SIZE_KEY,
 +//                    LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
 +
++=======
++>>>>>>> stratos-4.1.x
              TopologyProvider topologyProvider = LoadBalancerConfiguration.getInstance().getTopologyProvider();
              if (topologyProvider == null) {
                  topologyProvider = new TopologyProvider();
@@@ -161,8 -158,7 +164,12 @@@
          }
      }
  
++<<<<<<< HEAD
 +    private void startDomainMappingEventReceiver( TopologyProvider topologyProvider) {
 +
++=======
+     private void startDomainMappingEventReceiver(TopologyProvider topologyProvider) {
++>>>>>>> stratos-4.1.x
          if (domainMappingEventReceiver != null) {
              return;
          }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/messaging/receiver/StratosManagerInitializerTopicReceiver.java
index 5f7bc53,c08e8e4..bc7ae2d
--- 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
@@@ -28,12 -28,12 +28,9 @@@ import org.apache.stratos.messaging.lis
  import org.apache.stratos.messaging.listener.initializer.CompleteTenantRequestEventListener;
  import org.apache.stratos.messaging.message.receiver.initializer.InitializerEventReceiver;
  
--import java.util.concurrent.ExecutorService;
--
  public class StratosManagerInitializerTopicReceiver {
      private static final Log log = LogFactory.getLog(StratosManagerInitializerTopicReceiver.class);
      private InitializerEventReceiver initializerEventReceiver;
-     //private ExecutorService executor;
 -    //private ExecutorService executorService;
      private ApplicationSignUpHandler applicationSignUpHandler;
  
      public StratosManagerInitializerTopicReceiver() {
@@@ -42,14 -42,14 +39,6 @@@
          addEventListeners();
      }
  
--//    public void execute() {
- //        initializerEventReceiver.setExecutorService(executor);
 -//        initializerEventReceiver.setExecutorService(executorService);
--//        initializerEventReceiver.execute();
--//        if (log.isInfoEnabled()) {
--//            log.info("Stratos manager initializer topic receiver started");
--//        }
--//    }
--
      private void addEventListeners() {
          initializerEventReceiver.addEventListener(new CompleteTenantRequestEventListener() {
              @Override
@@@ -80,12 -80,12 +69,4 @@@
              }
          });
      }
--
--//    public ExecutorService getExecutorService() {
- //        return executor;
 -//        return executorService;
--//    }
--//
- //    public void setExecutorService(ExecutorService executor) {
- //        this.executor = executor;
 -//    public void setExecutorService(ExecutorService executorService) {
 -//        this.executorService = executorService;
--//    }
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/ApplicationsEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/application/signup/ApplicationSignUpEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/cluster/status/ClusterStatusEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/domain/mapping/DomainMappingEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/health/stat/HealthStatEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/instance/status/InstanceStatusEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyEventReceiver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataApplicationEventReceiver.java
index d9934db,e1bf929..eda63ea
--- 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
@@@ -21,7 -21,7 +21,6 @@@ package org.apache.stratos.metadata.ser
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  import org.apache.stratos.common.concurrent.locks.ReadWriteLock;
--import org.apache.stratos.common.threading.StratosThreadPool;
  import org.apache.stratos.messaging.domain.application.Application;
  import org.apache.stratos.messaging.domain.application.ApplicationStatus;
  import org.apache.stratos.messaging.domain.application.Applications;
@@@ -32,7 -32,7 +31,6 @@@ import org.apache.stratos.messaging.mes
  import org.apache.stratos.metadata.service.registry.MetadataApiRegistry;
  
  import java.util.Map;
--import java.util.concurrent.ExecutorService;
  
  /**
   * Application receiver class for metadata service
@@@ -40,12 -40,12 +38,9 @@@
  public class MetadataApplicationEventReceiver {
      private static final Log log = LogFactory.getLog(MetadataApplicationEventReceiver.class);
      private ApplicationsEventReceiver applicationsEventReceiver;
-     //private ExecutorService executor;
 -    //private ExecutorService executorService;
  
      public MetadataApplicationEventReceiver() {
          this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
-         //executor = StratosThreadPool.getExecutorService(Constants
 -        //executorService = StratosThreadPool.getExecutorService(Constants
--        //        .METADATA_SERVICE_THREAD_POOL_ID, 20);
          addEventListeners();
      }
  
@@@ -71,15 -71,15 +66,6 @@@
          });
      }
  
--//    public void execute() {
--//        applicationsEventReceiver.setExecutorService(getExecutorService());
--//        applicationsEventReceiver.execute();
--//
--//        if (log.isInfoEnabled()) {
--//            log.info("Metadata service application receiver started.");
--//        }
--//    }
--
      public void terminate() {
          applicationsEventReceiver.terminate();
          if (log.isInfoEnabled()) {
@@@ -87,8 -87,8 +73,4 @@@
          }
      }
  
-- //   public ExecutorService getExecutorService() {
- //        return executor;
 -//        return executorService;
--//    }
--
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.metadata.service/src/main/java/org/apache/stratos/metadata/service/MetadataTopologyEventReceiver.java
index 44a210d,f16282d..f0b96a0
--- 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
@@@ -21,7 -21,7 +21,6 @@@ package org.apache.stratos.metadata.ser
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  import org.apache.stratos.common.concurrent.locks.ReadWriteLock;
--import org.apache.stratos.common.threading.StratosThreadPool;
  import org.apache.stratos.messaging.event.Event;
  import org.apache.stratos.messaging.event.topology.ApplicationClustersCreatedEvent;
  import org.apache.stratos.messaging.event.topology.ApplicationClustersRemovedEvent;
@@@ -30,8 -30,8 +29,6 @@@ import org.apache.stratos.messaging.lis
  import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
  import org.apache.stratos.metadata.service.registry.MetadataApiRegistry;
  
--import java.util.concurrent.ExecutorService;
--
  /**
   * Topology receiver class for metadata service
   */
@@@ -42,8 -42,8 +39,6 @@@ public class MetadataTopologyEventRecei
  
      public MetadataTopologyEventReceiver() {
          this.topologyEventReceiver = TopologyEventReceiver.getInstance();
- //        //executor = StratosThreadPool.getExecutorService(Constants
 -//        //executorService = StratosThreadPool.getExecutorService(Constants
--//                .METADATA_SERVICE_THREAD_POOL_ID, 20);
          addEventListeners();
      }
  
@@@ -67,24 -67,24 +62,4 @@@
              }
          });
      }
--
--//    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;
- //    }
 -    public ExecutorService getExecutorService() {
 -        return executorService;
 -    }
  }

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockInstance.java
index 27a664e,9886335..25e953b
--- 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
@@@ -148,8 -151,8 +148,6 @@@ public class MockInstance implements Se
                  }
              }
          });
- //        topologyEventReceiver.setExecutorService(eventListenerExecutor);
 -//        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",
@@@ -180,19 -183,19 +178,6 @@@
                  }
              }
          });
--        // TODO: Fix InstanceNotifierEventReceiver to use executor service
--        // do not remove this since execute() is a blocking call
- //        eventListenerExecutor.submit(new Runnable() {
 -//        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() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
----------------------------------------------------------------------
diff --cc extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
index 7a58df9,0ea2005..a8b436d
--- 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
@@@ -22,12 -22,12 +22,8 @@@ package org.apache.stratos.aws.extensio
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  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;
 +import java.util.concurrent.ThreadPoolExecutor;
  
  /**
   * AWS extension main class.
@@@ -35,10 -35,10 +31,11 @@@
  
  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 =2;
 -	private static ExecutorService executorService;
 +	private static ThreadPoolExecutor executor;
 +//	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
 +//	public static final int THREAD_POOL_SIZE = 10;
 +
+ 
  	public static void main(String[] args) {
  
  		LoadBalancerExtension extension = null;
@@@ -55,13 -54,12 +52,12 @@@
  			// 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);
 -			extension.setExecutorService(executorService);
 -			extension.execute();
 +			AWSStatisticsReader statisticsReader = AWSExtensionContext
 +					.getInstance().isCEPStatsPublisherEnabled() ? new AWSStatisticsReader(
 +					topologyProvider) : null;
 +			extension = new LoadBalancerExtension(new AWSLoadBalancer(),
 +					statisticsReader, topologyProvider);
 +			extension.setExecutorService(executor);
- 			extension.execute();
  
  			// Add shutdown hook
  			final Thread mainThread = Thread.currentThread();

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
----------------------------------------------------------------------
diff --cc products/python-cartridge-agent/modules/integration/test-integration/src/test/java/org/apache/stratos/python/cartridge/agent/integration/tests/PythonAgentIntegrationTest.java
index 860e019,235a992..52c248d
--- 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,9 -123,15 +123,8 @@@ public abstract class PythonAgentIntegr
              startActiveMQInstance(Integer.parseInt(amqpBindPorts[i]), Integer.parseInt(mqttBindPorts[i]), true);
          }
  
 -        //ExecutorService executorService = StratosThreadPool.getExecutorService
 -        // ("TEST_THREAD_POOL");
          topologyEventReceiver = TopologyEventReceiver.getInstance();
 -//        topologyEventReceiver.setExecutorService(executorService);
 -//        topologyEventReceiver.execute();
--
          instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
 -//        instanceStatusEventReceiver.setExecutorService(executorService);
 -//        instanceStatusEventReceiver.execute();
  
          instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {
              @Override

http://git-wip-us.apache.org/repos/asf/stratos/blob/90dc0624/products/stratos/modules/integration/test-common/src/main/java/org/apache/stratos/integration/common/TopologyHandler.java
----------------------------------------------------------------------


[32/50] [abbrv] 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/6afa5f25
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6afa5f25
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6afa5f25

Branch: refs/heads/stratos-4.1.x
Commit: 6afa5f25aab3a4708b446031612db6ec074a47e9
Parents: c7dc666
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 4 05:22:40 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:36:40 2015 +0530

----------------------------------------------------------------------
 .../agent/test/JavaCartridgeAgentTest.java         |  4 ----
 .../status/InstanceStatusTopicReceiver.java        | 17 -----------------
 .../status/InstanceStatusEventReceiver.java        |  9 ---------
 3 files changed, 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6afa5f25/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 751e7c8..e6b7b98 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
@@ -123,12 +123,8 @@ public class JavaCartridgeAgentTest {
 
 //        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
         topologyEventReceiver = TopologyEventReceiver.getInstance();
-        //topologyEventReceiver.setExecutorService(executor);
-        //topologyEventReceiver.execute();
 
         instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
-//        instanceStatusEventReceiver.setExecutorService(executor);
-//        instanceStatusEventReceiver.execute();
 
         instanceStarted = false;
         instanceStatusEventReceiver.addEventListener(new InstanceStartedEventListener() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/6afa5f25/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 a3bbc2b..fc2f393 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
@@ -31,9 +31,6 @@ import org.apache.stratos.messaging.listener.instance.status.InstanceMaintenance
 import org.apache.stratos.messaging.listener.instance.status.InstanceReadyToShutdownEventListener;
 import org.apache.stratos.messaging.listener.instance.status.InstanceStartedEventListener;
 import org.apache.stratos.messaging.message.receiver.instance.status.InstanceStatusEventReceiver;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-
-import java.util.concurrent.ExecutorService;
 
 /**
  * This will handle the instance status events
@@ -42,26 +39,12 @@ public class InstanceStatusTopicReceiver {
     private static final Log log = LogFactory.getLog(InstanceStatusTopicReceiver.class);
 
     private InstanceStatusEventReceiver statusEventReceiver;
-    //private boolean terminated;
-    //private ExecutorService executorService;
 
     public InstanceStatusTopicReceiver() {
         this.statusEventReceiver = InstanceStatusEventReceiver.getInstance();
         addEventListeners();
     }
 
-//    public void execute() {
-//        statusEventReceiver.setExecutorService(executor);
-//        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() {
             @Override

http://git-wip-us.apache.org/repos/asf/stratos/blob/6afa5f25/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 4126f69..5471915 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
@@ -91,14 +91,5 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-       // terminated = true;
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }


[21/50] [abbrv] stratos git commit: initial changes for signup deletion

Posted by is...@apache.org.
initial changes for signup deletion


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

Branch: refs/heads/stratos-4.1.x
Commit: 1570afda1334bc03868753a95b94f111af1ec191
Parents: 6189945
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Nov 27 10:13:24 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../modules/artifactmgt/git/agentgithandler.py  | 19 +++++++++++++++++
 .../plugins/DefaultArtifactCheckout.py          | 22 ++++++++++++++++++++
 2 files changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/1570afda/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
index 15d3733..690285c 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
@@ -28,6 +28,7 @@ import time
 from config import Config
 from exception import GitRepositorySynchronizationException
 from git import *
+import errno
 
 from ...util.asyncscheduledtask import AbstractAsyncScheduledTask, ScheduledExecutor
 from ...util.log import LogFactory
@@ -314,12 +315,30 @@ class AgentGitHandler:
             AgentGitHandler.log.exception(
                 "Could not remove repository folder for tenant:%s  %s" % (git_repo.tenant_id, e))
 
+        # restore default artifacts
+        AgentGitHandler.restore_default_artifacts("/tmp/default_artifacts", git_repo.local_repo_path)
+
         AgentGitHandler.clear_repo(tenant_id)
         AgentGitHandler.log.info("Git repository deleted for tenant %s" % git_repo.tenant_id)
 
         return True
 
     @staticmethod
+    def restore_default_artifacts (default_artifact_backup_location, local_repo_path):
+        try:
+            if os.path.isdir(default_artifact_backup_location):
+                # first remove all the artifacts in the local_repo_path
+                if os.listdir(local_repo_path):
+                    # non-empty
+                    filelist = [f for f in os.listdir(local_repo_path)]
+                    for f in filelist:
+                        GitUtils.delete_folder_tree(local_repo_path + '/' + f)
+            AgentGitHandler.log.info('Restoring default artifacts from ' + default_artifact_backup_location + ' to ' + local_repo_path)
+            shutil.copytree(default_artifact_backup_location, local_repo_path)
+        except OSError as e:
+            AgentGitHandler.log.error('Contents of ' + default_artifact_backup_location + ' not restored. Error: %s' % e)
+
+    @staticmethod
     def execute_git_command(command, repo_path):
         """
         Executes the given command string with given environment parameters

http://git-wip-us.apache.org/repos/asf/stratos/blob/1570afda/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index 27cf99c..1dbf645 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -21,6 +21,9 @@ from modules.artifactmgt.git.agentgithandler import AgentGitHandler
 from config import Config
 import constants
 from exception import *
+import shutil
+import errno
+import os
 
 
 class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
@@ -90,6 +93,10 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                           git_repo.repo_url, git_repo.local_repo_path)
             self.log.info("Executing git clone: [tenant-id] %s [repo-url] %s, [repo path] %s",
                           git_repo.tenant_id, git_repo.repo_url, git_repo.local_repo_path)
+
+            # copy default artifacts (if any) to a /tmp/default_artifacts
+            self.backupDefaultArtifacts(git_repo.local_repo_path, "/tmp/default_artifacts")
+
             try:
                 git_repo = AgentGitHandler.clone(git_repo)
                 AgentGitHandler.add_repo(git_repo)
@@ -101,3 +108,18 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                 self.log.info("Retrying git clone operation...")
                 AgentGitHandler.retry_clone(git_repo)
                 AgentGitHandler.add_repo(git_repo)
+
+    def backupDefaultArtifacts(src, dest):
+        try:
+            if not os.path.isdir(src):
+                self.log.info ('Direcotry ' + src + ' does not exist')
+                return
+            if os.path.isdir(dest):
+                self.log.info('Directory ' + dest + ' already exists, will delete')
+                shutil.rmtree(dest)
+            self.log.info('Copying default artifacts from ' + src + ' to ' + dest)
+            shutil.copytree(src, dest)
+        except OSError as e:
+            self.log.error('Directory not copied. Error: %s' % e)
+
+


[02/50] [abbrv] stratos git commit: making TopologyEventReceiver and ApplicationSignupEventReceiver a singleton

Posted by is...@apache.org.
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/033ab1f6
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/033ab1f6
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/033ab1f6

Branch: refs/heads/stratos-4.1.x
Commit: 033ab1f6c355c1847168da54393c73e22ad5c2ac
Parents: bb22134
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 15:33:21 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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/033ab1f6/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",


[37/50] [abbrv] 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/c3cc2bb4
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c3cc2bb4
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c3cc2bb4

Branch: refs/heads/stratos-4.1.x
Commit: c3cc2bb47410655269d7af5ade68743e1cc2f9bd
Parents: ede4990
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 18 07:23:07 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:56:17 2015 +0530

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


http://git-wip-us.apache.org/repos/asf/stratos/blob/c3cc2bb4/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 1f4e5c8..b72ac84 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
@@ -233,4 +233,29 @@ public class StratosThreadPool {
                     " and removed from the cache");
         }
     }
+
+    public static void shutdown (String identifier) {
+
+        ExecutorService executorService = executorMap.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/c3cc2bb4/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 0b07940..e86a05f 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.ThreadPoolExecutor;
 public class StratosEventReceiver {
 
     protected ThreadPoolExecutor executor;
+    protected String threadPoolId;
 
     public StratosEventReceiver () {
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/c3cc2bb4/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 a68e0e5..df7a006 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
@@ -94,6 +94,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/c3cc2bb4/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 a28a98f..3fd43c1 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
@@ -116,5 +116,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/c3cc2bb4/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 ecaa758..e014a98 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
@@ -89,14 +89,11 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public boolean isSubscribed() {
         return ((eventSubscriber != null) && (eventSubscriber.isSubscribed()));
     }
 
-    public void terminate() {
-        eventSubscriber.terminate();
-        messageDelegator.terminate();
-    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/c3cc2bb4/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 844f19b..4d8bca6 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
@@ -67,6 +67,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/c3cc2bb4/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 cc94c6d..689f9ca 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
@@ -86,5 +86,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/c3cc2bb4/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 b3a29b1..0711293 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
@@ -33,7 +33,6 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     private InitializerEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
     private static volatile InitializerEventReceiver instance;
-    //private ExecutorService executor;
 
     private InitializerEventReceiver() {
         // TODO: make pool size configurable
@@ -82,5 +81,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/c3cc2bb4/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 8eb2bb0..4d02d18 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,7 +36,6 @@ 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
@@ -94,7 +93,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/c3cc2bb4/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 5471915..9e98155 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
@@ -91,5 +91,6 @@ 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/c3cc2bb4/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 1a8473e..94feef0 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
@@ -112,5 +112,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/c3cc2bb4/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 64af927..2fea887 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
@@ -95,6 +95,7 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
+        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteTopology() {


[09/50] [abbrv] stratos git commit: using a shrinking thread pool instead of a fixed one and adding a thread factory for naming threads

Posted by is...@apache.org.
using a shrinking thread pool instead of a fixed one and adding a thread factory for naming threads


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

Branch: refs/heads/stratos-4.1.x
Commit: 78ff21c7ffc91ed4cab8404e23f331fd19570963
Parents: 503a86f
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 19:46:05 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 2015 +0530

----------------------------------------------------------------------
 .../common/threading/StratosThreadFactory.java  | 37 ++++++++++++++++++++
 .../common/threading/StratosThreadPool.java     | 10 +++---
 2 files changed, 41 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/78ff21c7/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
new file mode 100644
index 0000000..df3bcae
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
@@ -0,0 +1,37 @@
+/*
+ * 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.common.threading;
+
+import java.util.concurrent.ThreadFactory;
+
+public class StratosThreadFactory implements ThreadFactory {
+
+    private String prefix;
+    private int counter;
+
+    public StratosThreadFactory(String prefix) {
+        this.prefix = prefix;
+        this.counter = 0;
+    }
+
+    public Thread newThread(Runnable r) {
+        return new Thread(r, prefix + "-" + (++counter));
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/78ff21c7/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..b4784a4 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
@@ -53,7 +50,8 @@ public class StratosThreadPool {
         if (executorService == null) {
             synchronized (executorServiceMapLock) {
                 if (executorService == null) {
-                    executorService = Executors.newFixedThreadPool(threadPoolSize);
+                    executorService = new ThreadPoolExecutor(25, threadPoolSize, 60L, TimeUnit.SECONDS,
+                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
                     executorServiceMap.put(identifier, executorService);
                     log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize));
                 }
@@ -74,7 +72,7 @@ public class StratosThreadPool {
         if (scheduledExecutorService == null) {
             synchronized (scheduledServiceMapLock) {
                 if (scheduledExecutorService == null) {
-                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize);
+                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize, new StratosThreadFactory(identifier));
                     scheduledServiceMap.put(identifier, scheduledExecutorService);
                     log.info(String.format("Thread pool created: [type] Scheduled Executor Service [id] %s [size] %d",
                             identifier, threadPoolSize));


[24/50] [abbrv] stratos git commit: adding a log for default artifact backup = false

Posted by is...@apache.org.
adding a log for default artifact backup = false


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

Branch: refs/heads/stratos-4.1.x
Commit: 0b0ad1e84d68552ad97e7041f66207bebfe9af99
Parents: aebc61a
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 9 18:17:36 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../cartridge.agent/plugins/DefaultArtifactCheckout.py             | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0b0ad1e8/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index a2cd5c6..f9883aa 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -97,6 +97,8 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
 
             if not Config.backup_initial_artifacts is None and Config.backup_initial_artifacts:
                 self.check_and_backup_initial_artifacts(git_repo.local_repo_path)
+            else:
+                self.log.info("Default artifact backup disabled")
 
             try:
                 git_repo = AgentGitHandler.clone(git_repo)


[05/50] [abbrv] 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/a13e54f7
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a13e54f7
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a13e54f7

Branch: refs/heads/stratos-4.1.x
Commit: a13e54f72bc7ec58bddc756797bd714f660cdf52
Parents: 16681fa
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:30:49 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/a13e54f7/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/a13e54f7/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/a13e54f7/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/a13e54f7/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;
+//    }
 }


[25/50] [abbrv] stratos git commit: Update the AS registry manager

Posted by is...@apache.org.
Update the AS registry manager


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

Branch: refs/heads/stratos-4.1.x
Commit: 8145a034eefdd8e733978f5f1e3f09c3b3fe84d6
Parents: 0b0ad1e
Author: gayangunarathne <ga...@wso2.com>
Authored: Sun Dec 6 10:30:37 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:20 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/autoscaler/registry/RegistryManager.java    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/8145a034/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index 925c4ff..343b76a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -85,7 +85,7 @@ public class RegistryManager {
         return instance;
     }
 
-    private Object retrieve(String resourcePath) {
+    private synchronized Object retrieve(String resourcePath) {
         try {
             Resource resource = registryService.get(resourcePath);
             return resource.getContent();
@@ -99,7 +99,7 @@ public class RegistryManager {
         }
     }
 
-    private void delete(String resourcePath) {
+    private synchronized void delete(String resourcePath) {
         try {
             registryService.beginTransaction();
             registryService.delete(resourcePath);
@@ -138,7 +138,7 @@ public class RegistryManager {
      * @param dataObj      object to be persisted.
      * @param resourcePath resource path to be persisted.
      */
-    private void persist(Object dataObj, String resourcePath) throws AutoScalerException {
+    private synchronized void persist(Object dataObj, String resourcePath) throws AutoScalerException {
 
         try {
             registryService.beginTransaction();


[48/50] [abbrv] stratos git commit: using a AtomicInteger in StratosThreadFactory to count threads

Posted by is...@apache.org.
using a AtomicInteger in StratosThreadFactory to count threads


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

Branch: refs/heads/stratos-4.1.x
Commit: 4ef0b6eada68c4c42d7fe90ebb45bbc29b9e5631
Parents: 8088240
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Jan 5 16:25:47 2016 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Jan 5 16:25:47 2016 +0530

----------------------------------------------------------------------
 .../apache/stratos/common/threading/StratosThreadFactory.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4ef0b6ea/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
index 98ddd37..476d20c 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
@@ -20,17 +20,18 @@
 package org.apache.stratos.common.threading;
 
 import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class StratosThreadFactory implements ThreadFactory {
     private String prefix;
-    private int counter;
+    private final AtomicInteger threadNumber;
 
     public StratosThreadFactory(String prefix) {
         this.prefix = prefix;
-        this.counter = 0;
+        this.threadNumber = new AtomicInteger(1);
     }
 
     public Thread newThread(Runnable r) {
-        return new Thread(r, prefix + "-" + (++counter));
+        return new Thread(r, prefix + "-" + threadNumber.getAndIncrement());
     }
 }


[08/50] [abbrv] 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/16681fa9
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/16681fa9
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/16681fa9

Branch: refs/heads/stratos-4.1.x
Commit: 16681fa9d393448b9214ffafa42b9a21bf38a5e2
Parents: 5d29c8f
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:22:37 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/16681fa9/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/16681fa9/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/16681fa9/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/16681fa9/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 {


[30/50] [abbrv] stratos git commit: Preparing for the next release

Posted by is...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/modules/integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/pom.xml b/products/stratos/modules/integration/pom.xml
index 1f4feca..ffea627 100755
--- a/products/stratos/modules/integration/pom.xml
+++ b/products/stratos/modules/integration/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/modules/integration/test-common/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-common/pom.xml b/products/stratos/modules/integration/test-common/pom.xml
index 4da23fa..69147f2 100755
--- a/products/stratos/modules/integration/test-common/pom.xml
+++ b/products/stratos/modules/integration/test-common/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-integration</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.integration.common</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/modules/integration/test-integration/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/test-integration/pom.xml b/products/stratos/modules/integration/test-integration/pom.xml
index 642b333..7db64b5 100755
--- a/products/stratos/modules/integration/test-integration/pom.xml
+++ b/products/stratos/modules/integration/test-integration/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-integration</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-test-integration</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/modules/p2-profile-gen/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/modules/p2-profile-gen/pom.xml b/products/stratos/modules/p2-profile-gen/pom.xml
index 657f686..4400e4f 100644
--- a/products/stratos/modules/p2-profile-gen/pom.xml
+++ b/products/stratos/modules/p2-profile-gen/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/products/stratos/pom.xml
----------------------------------------------------------------------
diff --git a/products/stratos/pom.xml b/products/stratos/pom.xml
index 69874e0..0600637 100755
--- a/products/stratos/pom.xml
+++ b/products/stratos/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-products-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml b/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
index 0374959..e431bb7 100644
--- a/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
+++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-service-stubs-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.autoscaler.service.stub</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
index fb182e6..af059c6 100644
--- a/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
+++ b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-service-stubs-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.cloud.controller.service.stub</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/service-stubs/org.apache.stratos.manager.service.stub/pom.xml
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.manager.service.stub/pom.xml b/service-stubs/org.apache.stratos.manager.service.stub/pom.xml
index 7d99cc3..0c156ce 100644
--- a/service-stubs/org.apache.stratos.manager.service.stub/pom.xml
+++ b/service-stubs/org.apache.stratos.manager.service.stub/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-service-stubs-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.stratos.manager.service.stub</artifactId>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d9d7c36b/service-stubs/pom.xml
----------------------------------------------------------------------
diff --git a/service-stubs/pom.xml b/service-stubs/pom.xml
index d8dc84c..3b00db9 100644
--- a/service-stubs/pom.xml
+++ b/service-stubs/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.stratos</groupId>
         <artifactId>stratos-parent</artifactId>
-        <version>4.1.5-SNAPSHOT</version>
+        <version>4.1.6-SNAPSHOT</version>
     </parent>
 
     <artifactId>stratos-service-stubs-parent</artifactId>


[23/50] [abbrv] stratos git commit: configuration for enabling initial artifact backup

Posted by is...@apache.org.
configuration for enabling initial artifact backup


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

Branch: refs/heads/stratos-4.1.x
Commit: aebc61a3a768bad6c92decde583ffbf86627bb52
Parents: e8040ac
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 9 18:11:13 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../src/main/python/cartridge.agent/cartridge.agent/agent.conf    | 1 +
 .../src/main/python/cartridge.agent/cartridge.agent/config.py     | 3 +++
 .../src/main/python/cartridge.agent/cartridge.agent/constants.py  | 1 +
 .../cartridge.agent/plugins/DefaultArtifactCheckout.py            | 3 ++-
 4 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/aebc61a3/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
index a8c8a19..6875d25 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
@@ -45,3 +45,4 @@ APPLICATION_PATH                      =APPLICATION-PATH
 metadata.service.url                  =METADATA-SERVICE-URL
 super.tenant.repository.path          =/repository/deployment/server/
 tenant.repository.path                =/repository/tenants/
+enable.initial.artifact.backup        =ENABLE_INITIAL_ARTIFACT_UPDATE

http://git-wip-us.apache.org/repos/asf/stratos/blob/aebc61a3/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
index 72fc5e2..40cf26d 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/config.py
@@ -112,6 +112,8 @@ class Config:
     """ :type : str  """
     super_tenant_repository_path = None
     """ :type : str  """
+    backup_initial_artifacts = False
+    """ :type : bool  """
     deployment = None
     """ :type : str  """
     manager_service_name = None
@@ -358,6 +360,7 @@ class Config:
             Config.lb_public_ip = Config.read_property(constants.LB_PUBLIC_IP, False)
             Config.tenant_repository_path = Config.read_property(constants.TENANT_REPO_PATH, False)
             Config.super_tenant_repository_path = Config.read_property(constants.SUPER_TENANT_REPO_PATH, False)
+            Config.backup_initial_artifacts = Config.read_property(constants.ENABLE_INITIAL_ARTIFACT_BACKUP, False)
 
             Config.is_primary = Config.read_property(constants.CLUSTERING_PRIMARY_KEY, False)
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/aebc61a3/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
index 4672579..93879d1 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
@@ -77,6 +77,7 @@ SUPERTENANT_TEMP_PATH = "/tmp/-1234/"
 
 SUPER_TENANT_REPO_PATH = "super.tenant.repository.path"
 TENANT_REPO_PATH = "tenant.repository.path"
+ENABLE_INITIAL_ARTIFACT_BACKUP = "enable.initial.artifact.backup"
 
 # topic names to subscribe
 INSTANCE_NOTIFIER_TOPIC = "instance/#"

http://git-wip-us.apache.org/repos/asf/stratos/blob/aebc61a3/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index 1b7baa0..a2cd5c6 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -95,7 +95,8 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
             self.log.info("Executing git clone: [tenant-id] %s [repo-url] %s, [repo path] %s",
                           git_repo.tenant_id, git_repo.repo_url, git_repo.local_repo_path)
 
-            self.check_and_backup_initial_artifacts(git_repo.local_repo_path)
+            if not Config.backup_initial_artifacts is None and Config.backup_initial_artifacts:
+                self.check_and_backup_initial_artifacts(git_repo.local_repo_path)
 
             try:
                 git_repo = AgentGitHandler.clone(git_repo)


[12/50] [abbrv] stratos git commit: making InstanceStatusEventReceiver and InstanceNotifierEventReceiver singletons and fixing the references

Posted by is...@apache.org.
making InstanceStatusEventReceiver and InstanceNotifierEventReceiver singletons and fixing the references


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

Branch: refs/heads/stratos-4.1.x
Commit: e539832edfd188c4be9fc1061672068f139d22e8
Parents: d4d2762
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 4 05:22:40 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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     |   2 -
 .../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, 206 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e539832e/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/e539832e/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/e539832e/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/e539832e/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/e539832e/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/e539832e/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 efa567e..279167e 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
@@ -50,8 +50,6 @@ public class StratosThreadPool {
         if (executorService == null) {
             synchronized (executorServiceMapLock) {
                 if (executorService == null) {
-//                    executorService = new ThreadPoolExecutor(25, threadPoolSize, 60L, TimeUnit.SECONDS,
-//                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
                     executorService = Executors.newFixedThreadPool(threadPoolSize, new StratosThreadFactory(identifier));
                     executorServiceMap.put(identifier, executorService);
                     log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize));

http://git-wip-us.apache.org/repos/asf/stratos/blob/e539832e/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/e539832e/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/e539832e/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/e539832e/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/e539832e/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/e539832e/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 bf99eb7..4c8f19b 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/e539832e/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();
     }
 


[15/50] [abbrv] stratos git commit: changing fixed thread pool to dynamic

Posted by is...@apache.org.
changing fixed thread pool to dynamic


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

Branch: refs/heads/stratos-4.1.x
Commit: cef4fe1b79b8bc9af36c05ad90137fbbe8995c3f
Parents: d1fb292
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 4 15:59:28 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:49:55 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerHealthStatEventReceiver.java      | 18 ++++----
 .../AutoscalerInitializerTopicReceiver.java     | 18 ++++----
 .../AutoscalerTopologyEventReceiver.java        | 12 ++---
 .../internal/AutoscalerServiceComponent.java    | 23 +++++-----
 .../monitor/cluster/ClusterMonitor.java         | 12 ++---
 .../monitor/component/ApplicationMonitor.java   | 12 ++---
 .../monitor/component/GroupMonitor.java         | 18 ++++----
 .../component/ParentComponentMonitor.java       |  9 ++--
 .../publisher/DASScalingDecisionPublisher.java  | 10 ++---
 .../stratos/autoscaler/util/AutoscalerUtil.java |  3 +-
 .../autoscaler/util/ServiceReferenceHolder.java | 11 ++---
 .../agent/test/JavaCartridgeAgentTest.java      |  6 +--
 .../context/CloudControllerContext.java         | 11 ++---
 .../CloudControllerServiceComponent.java        | 22 +++++-----
 .../application/ApplicationEventReceiver.java   |  8 ++--
 .../status/ClusterStatusTopicReceiver.java      | 12 ++---
 .../initializer/InitializerTopicReceiver.java   | 12 ++---
 .../status/InstanceStatusTopicReceiver.java     | 20 ++++-----
 .../impl/CloudControllerServiceImpl.java        | 13 +++---
 .../DASMemberInformationPublisher.java          | 11 ++---
 .../publisher/DASMemberStatusPublisher.java     | 11 ++---
 .../common/threading/StratosThreadFactory.java  |  4 +-
 .../common/threading/StratosThreadPool.java     | 26 ++++++-----
 .../extension/api/LoadBalancerExtension.java    | 24 +++++-----
 .../internal/LoadBalancerServiceComponent.java  | 46 ++++++++++----------
 .../LoadBalancerStatisticsExecutor.java         | 12 ++---
 .../StratosManagerServiceComponent.java         | 38 ++++++++++------
 .../StratosManagerInitializerTopicReceiver.java | 10 ++---
 .../message/receiver/StratosEventReceiver.java  |  4 +-
 .../application/ApplicationsEventReceiver.java  | 16 +++----
 .../signup/ApplicationSignUpEventReceiver.java  | 16 +++----
 .../status/ClusterStatusEventReceiver.java      | 14 +++---
 .../mapping/DomainMappingEventReceiver.java     | 15 +++----
 .../health/stat/HealthStatEventReceiver.java    | 14 +++---
 .../initializer/InitializerEventReceiver.java   | 16 +++----
 .../notifier/InstanceNotifierEventReceiver.java |  6 +--
 .../status/InstanceStatusEventReceiver.java     | 12 ++---
 .../receiver/tenant/TenantEventReceiver.java    | 14 +++---
 .../topology/TopologyEventReceiver.java         | 16 +++----
 .../MetadataApplicationEventReceiver.java       |  6 +--
 .../service/MetadataTopologyEventReceiver.java  | 10 ++---
 .../mock/iaas/services/impl/MockInstance.java   | 13 +++---
 .../org/apache/stratos/aws/extension/Main.java  | 10 ++---
 .../apache/stratos/haproxy/extension/Main.java  |  8 ++--
 .../org/apache/stratos/lvs/extension/Main.java  |  8 ++--
 .../apache/stratos/nginx/extension/Main.java    |  8 ++--
 .../tests/PythonAgentIntegrationTest.java       |  3 +-
 .../integration/common/TopologyHandler.java     | 19 ++++----
 48 files changed, 335 insertions(+), 325 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..42d7771 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
@@ -42,7 +42,7 @@ public class AutoscalerHealthStatEventReceiver {
     private boolean terminated = false;
 
     private HealthStatEventReceiver healthStatEventReceiver;
-    private ExecutorService executorService;
+   // private ExecutorService executorService;
 
     public AutoscalerHealthStatEventReceiver() {
         this.healthStatEventReceiver = HealthStatEventReceiver.getInstance();
@@ -50,7 +50,7 @@ public class AutoscalerHealthStatEventReceiver {
     }
 
 //    public void execute() {
-//        healthStatEventReceiver.setExecutorService(executorService);
+//        healthStatEventReceiver.setExecutor(executor);
 //        healthStatEventReceiver.execute();
 //
 //        if (log.isInfoEnabled()) {
@@ -480,11 +480,11 @@ public class AutoscalerHealthStatEventReceiver {
         this.terminated = true;
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutor() {
+//        return executorService;
+//    }
+//
+//    public void setExecutor(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..e1dbd7f 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,7 +31,7 @@ import java.util.concurrent.ExecutorService;
 public class AutoscalerInitializerTopicReceiver {
     private static final Log log = LogFactory.getLog(AutoscalerInitializerTopicReceiver.class);
     private InitializerEventReceiver initializerEventReceiver;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
 
     public AutoscalerInitializerTopicReceiver() {
         this.initializerEventReceiver = InitializerEventReceiver.getInstance();
@@ -39,7 +39,7 @@ public class AutoscalerInitializerTopicReceiver {
     }
 
 //    public void execute() {
-//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.setExecutor(executor);
 //        initializerEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Cloud controller initializer topic receiver started");
@@ -62,11 +62,11 @@ public class AutoscalerInitializerTopicReceiver {
         });
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
-
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-    }
+//    public ExecutorService getExecutor() {
+//        return executorService;
+//    }
+//
+//    public void setExecutor(ExecutorService executorService) {
+//        this.executorService = executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..b0af42a 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
@@ -57,7 +57,7 @@ public class AutoscalerTopologyEventReceiver {
     private TopologyEventReceiver topologyEventReceiver;
     private boolean terminated;
     private boolean topologyInitialized;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
 
     public AutoscalerTopologyEventReceiver() {
         this.topologyEventReceiver = TopologyEventReceiver.getInstance();
@@ -66,7 +66,7 @@ public class AutoscalerTopologyEventReceiver {
 
 //    public void execute() {
 //        //FIXME this activated before autoscaler deployer activated.
-//       // topologyEventReceiver.setExecutorService(getExecutorService());
+//       // topologyEventReceiver.setExecutor(getExecutor());
 //        //topologyEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Autoscaler topology receiver thread started");
@@ -515,11 +515,11 @@ public class AutoscalerTopologyEventReceiver {
 //        terminated = true;
 //    }
 //
-//    public ExecutorService getExecutorService() {
-//        return executorService;
+//    public ExecutorService getExecutor() {
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutor(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..8219f71 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
@@ -59,6 +59,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -85,7 +86,7 @@ public class AutoscalerServiceComponent {
     private AutoscalerTopologyEventReceiver asTopologyReceiver;
     private AutoscalerHealthStatEventReceiver autoscalerHealthStatEventReceiver;
     private AutoscalerInitializerTopicReceiver autoscalerInitializerTopicReceiver;
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
     private ScheduledExecutorService scheduler;
 
     protected void activate(ComponentContext componentContext) throws Exception {
@@ -96,8 +97,8 @@ public class AutoscalerServiceComponent {
             XMLConfiguration conf = ConfUtil.getInstance(AutoscalerConstants.COMPONENTS_CONFIG).getConfiguration();
             int threadPoolSize = conf
                     .getInt(AutoscalerConstants.THREAD_POOL_SIZE_KEY, AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE);
-            executorService = StratosThreadPool
-                    .getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID, threadPoolSize);
+            executor = StratosThreadPool.getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID, ((int) Math
+                    .ceil(threadPoolSize / 3)), threadPoolSize);
 
             int schedulerThreadPoolSize = conf.getInt(AutoscalerConstants.SCHEDULER_THREAD_POOL_SIZE_KEY,
                     AutoscalerConstants.AUTOSCALER_SCHEDULER_THREAD_POOL_SIZE);
@@ -114,7 +115,7 @@ public class AutoscalerServiceComponent {
                         componentStartUpSynchronizer
                                 .waitForComponentActivation(Component.Autoscaler, Component.CloudController);
 
-                        ServiceReferenceHolder.getInstance().setExecutorService(executorService);
+                        ServiceReferenceHolder.getInstance().setExecutor(executor);
                         CartridgeConfigFileReader.readProperties();
                         if (AutoscalerContext.getInstance().isClustered()) {
                             Thread coordinatorElectorThread = new Thread() {
@@ -136,7 +137,7 @@ public class AutoscalerServiceComponent {
                                 }
                             };
                             coordinatorElectorThread.setName("Autoscaler coordinator elector thread");
-                            executorService.submit(coordinatorElectorThread);
+                            executor.submit(coordinatorElectorThread);
                         } else {
                             executeCoordinatorTasks();
                         }
@@ -173,7 +174,7 @@ public class AutoscalerServiceComponent {
 
         // Start topology receiver
         asTopologyReceiver = new AutoscalerTopologyEventReceiver();
-//        asTopologyReceiver.setExecutorService(executorService);
+//        asTopologyReceiver.setExecutor(executor);
         //asTopologyReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug("Topology receiver executor service started");
@@ -181,7 +182,7 @@ public class AutoscalerServiceComponent {
 
         // Start health stat receiver
         autoscalerHealthStatEventReceiver = new AutoscalerHealthStatEventReceiver();
-//        autoscalerHealthStatEventReceiver.setExecutorService(executorService);
+//        autoscalerHealthStatEventReceiver.setExecutor(executor);
 //        autoscalerHealthStatEventReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug("Health statistics receiver thread started");
@@ -189,7 +190,7 @@ public class AutoscalerServiceComponent {
 
         // Start initializer receiver
         autoscalerInitializerTopicReceiver = new AutoscalerInitializerTopicReceiver();
-//        autoscalerInitializerTopicReceiver.setExecutorService(executorService);
+//        autoscalerInitializerTopicReceiver.setExecutor(executor);
 //        autoscalerInitializerTopicReceiver.execute();
 //        if (log.isDebugEnabled()) {
 //            log.debug("Initializer receiver thread started");
@@ -275,9 +276,9 @@ public class AutoscalerServiceComponent {
     }
 
     private void shutdownExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
+        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+        if (executor != null) {
+            shutdownExecutorService(executor);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 5976279..32bf037 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -87,7 +87,7 @@ public class ClusterMonitor extends Monitor {
 
     private static final Log log = LogFactory.getLog(ClusterMonitor.class);
     private final ScheduledExecutorService scheduler;
-    private final ExecutorService executorService;
+    private final ThreadPoolExecutor executor;
     protected boolean hasFaultyMember = false;
     protected ClusterContext clusterContext;
     protected String serviceType;
@@ -109,8 +109,8 @@ public class ClusterMonitor extends Monitor {
 
         scheduler = StratosThreadPool.getScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID, 50);
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
-        executorService = StratosThreadPool.getExecutorService(
-                AutoscalerConstants.MONITOR_THREAD_POOL_ID, threadPoolSize);
+        executor = StratosThreadPool.getExecutorService(
+                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
         this.clusterId = cluster.getClusterId();
         readConfigurations();
         this.groupScalingEnabledSubtree = groupScalingEnabledSubtree;
@@ -407,7 +407,7 @@ public class ClusterMonitor extends Monitor {
 
                             }
                         };
-                        executorService.execute(monitoringRunnable);
+                        executor.execute(monitoringRunnable);
                     }
 
                     if (instance.getStatus() == ClusterStatus.Terminating) {
@@ -453,7 +453,7 @@ public class ClusterMonitor extends Monitor {
                                 }
                             }
                         };
-                        executorService.execute(monitoringRunnable);
+                        executor.execute(monitoringRunnable);
                     }
                 }
             }
@@ -523,7 +523,7 @@ public class ClusterMonitor extends Monitor {
             }
 
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
 
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
index e15b795..c94ef7e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java
@@ -55,7 +55,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * ApplicationMonitor is to control the child monitors
@@ -64,7 +64,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
 
     private static final Log log = LogFactory.getLog(ApplicationMonitor.class);
 
-    private final ExecutorService executorService;
+    private final ThreadPoolExecutor executor;
 
     //Flag to set whether application is terminating
     private boolean isTerminating;
@@ -79,8 +79,8 @@ public class ApplicationMonitor extends ParentComponentMonitor {
         super(application);
 
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
-        this.executorService = StratosThreadPool.getExecutorService(
-                AutoscalerConstants.MONITOR_THREAD_POOL_ID, threadPoolSize);
+        this.executor = StratosThreadPool.getExecutorService(AutoscalerConstants.MONITOR_THREAD_POOL_ID,
+                ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
 
         //setting the appId for the application
         this.appId = application.getUniqueIdentifier();
@@ -164,7 +164,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
                 }
             }
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
     }
 
     private void handleScalingMaxOut(ParentInstanceContext instanceContext,
@@ -476,7 +476,7 @@ public class ApplicationMonitor extends ParentComponentMonitor {
                 }
             }
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
 
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 341f264..d5cfc3f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -56,7 +56,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * This is GroupMonitor to monitor the group which consists of
@@ -66,7 +66,7 @@ public class GroupMonitor extends ParentComponentMonitor {
 
     private static final Log log = LogFactory.getLog(GroupMonitor.class);
 
-    private final ExecutorService executorService;
+    private final ThreadPoolExecutor executor;
     //has scaling dependents
     protected boolean hasScalingDependents;
     //Indicates whether groupScaling enabled or not
@@ -85,8 +85,8 @@ public class GroupMonitor extends ParentComponentMonitor {
         super(group);
 
         int threadPoolSize = Integer.getInteger(AutoscalerConstants.MONITOR_THREAD_POOL_SIZE, 100);
-        this.executorService = StratosThreadPool.getExecutorService(
-                AutoscalerConstants.MONITOR_THREAD_POOL_ID, threadPoolSize);
+        this.executor = StratosThreadPool.getExecutorService(
+                AutoscalerConstants.MONITOR_THREAD_POOL_ID, ((int)Math.ceil(threadPoolSize/3)),threadPoolSize);
 
         this.groupScalingEnabled = group.isGroupScalingEnabled();
         this.appId = appId;
@@ -225,7 +225,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                 }
             }
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
     }
 
     /**
@@ -336,7 +336,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                                     appId);
                         }
                     };
-                    executorService.execute(sendScaleMaxOut);
+                    executor.execute(sendScaleMaxOut);
                 }
             } else {
                 if (log.isDebugEnabled()) {
@@ -356,7 +356,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                             appId);
                 }
             };
-            executorService.execute(sendScaleMaxOut);
+            executor.execute(sendScaleMaxOut);
         }
     }
 
@@ -488,7 +488,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                 }
             }
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
 
     }
 
@@ -594,7 +594,7 @@ public class GroupMonitor extends ParentComponentMonitor {
                 }
             }
         };
-        executorService.execute(monitoringRunnable);
+        executor.execute(monitoringRunnable);
 
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index f05827a..1366a3f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -87,7 +87,7 @@ public abstract class ParentComponentMonitor extends Monitor {
     // future to cancel it when destroying monitors
     private ScheduledFuture<?> schedulerFuture;
     //Executor service to maintain the thread pool
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     public ParentComponentMonitor(ParentComponent component) throws DependencyBuilderException {
         aliasToActiveChildMonitorsMap = new ConcurrentHashMap<String, Monitor>();
@@ -109,8 +109,9 @@ public abstract class ParentComponentMonitor extends Monitor {
         }
 
         // Create the executor service with identifier and thread pool size
-        executorService = StratosThreadPool.getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID,
-                AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE);
+        executor = StratosThreadPool.getExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID,
+                ((int)Math.ceil(AutoscalerConstants.AUTOSCALER_THREAD_POOL_SIZE/3)),AutoscalerConstants
+                        .AUTOSCALER_THREAD_POOL_SIZE);
         networkPartitionContextsMap = new ConcurrentHashMap<String, NetworkPartitionContext>();
     }
 
@@ -864,7 +865,7 @@ public abstract class ParentComponentMonitor extends Monitor {
                                              ApplicationChildContext context, List<String> parentInstanceIds) {
         if (!this.aliasToActiveChildMonitorsMap.containsKey(context.getId())) {
             pendingChildMonitorsList.add(context.getId());
-            executorService.submit(new MonitorAdder(parent, context, this.appId, parentInstanceIds));
+            executor.submit(new MonitorAdder(parent, context, this.appId, parentInstanceIds));
 
             String monitorTypeStr = AutoscalerUtil.findMonitorType(context).toString().toLowerCase();
             log.info(String.format("Monitor scheduled: [type] %s [component] %s ",

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
index 52857d4..ad0e77b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/statistics/publisher/DASScalingDecisionPublisher.java
@@ -29,7 +29,7 @@ import org.wso2.carbon.databridge.commons.StreamDefinition;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * MemberInfoPublisher to publish member information/metadata to DAS.
@@ -42,12 +42,12 @@ public class DASScalingDecisionPublisher extends ScalingDecisionPublisher {
     private static final String VERSION = "1.0.0";
     private static final String DAS_THRIFT_CLIENT_NAME = "das";
     private static final int STATS_PUBLISHER_THREAD_POOL_SIZE = 10;
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     public DASScalingDecisionPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
-        executorService = StratosThreadPool.getExecutorService(AutoscalerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                STATS_PUBLISHER_THREAD_POOL_SIZE);
+        executor = StratosThreadPool.getExecutorService(AutoscalerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
+                ((int)Math.ceil(STATS_PUBLISHER_THREAD_POOL_SIZE/3)), STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 
     public static DASScalingDecisionPublisher getInstance() {
@@ -168,7 +168,7 @@ public class DASScalingDecisionPublisher extends ScalingDecisionPublisher {
             }
 
         };
-        executorService.execute(publisher);
+        executor.execute(publisher);
     }
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index a639673..b6ce0ed 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -51,7 +51,6 @@ import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.autoscaler.registry.RegistryManager;
-import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;
 import org.apache.stratos.common.client.CloudControllerServiceClient;
@@ -843,7 +842,7 @@ public class AutoscalerUtil {
         AutoscalerContext autoscalerContext = AutoscalerContext.getInstance();
         if (autoscalerContext.getAppMonitor(applicationId) == null) {
             autoscalerContext.addApplicationPendingMonitor(applicationId);
-            ServiceReferenceHolder.getInstance().getExecutorService().submit(new ApplicationMonitorAdder(applicationId));
+            ServiceReferenceHolder.getInstance().getExecutor().submit(new ApplicationMonitorAdder(applicationId));
 
             log.info(String.format("Monitor scheduled: [application] %s ", applicationId));
         } else {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
index 4cc175c..7e10a3c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/ServiceReferenceHolder.java
@@ -32,6 +32,7 @@ import org.wso2.carbon.registry.core.Registry;
 import org.wso2.carbon.registry.core.session.UserRegistry;
 
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 public class ServiceReferenceHolder {
 
@@ -43,7 +44,7 @@ public class ServiceReferenceHolder {
     private AxisConfiguration axisConfiguration;
     private DistributedObjectProvider distributedObjectProvider;
     private HazelcastInstance hazelcastInstance;
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
     private ComponentStartUpSynchronizer componentStartUpSynchronizer;
 
     private ServiceReferenceHolder() {
@@ -116,12 +117,12 @@ public class ServiceReferenceHolder {
         this.groupStatusProcessorChain = groupStatusProcessorChain;
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
+    public ThreadPoolExecutor getExecutor() {
+        return executor;
     }
 
-    public void setExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
+    public void setExecutor(ThreadPoolExecutor executor) {
+        this.executor = executor;
     }
 
     public ComponentStartUpSynchronizer getComponentStartUpSynchronizer() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 903fa58..751e7c8 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
@@ -121,13 +121,13 @@ public class JavaCartridgeAgentTest {
 
         String agentHome = setupJavaAgent();
 
-        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
+//        ExecutorService executorService = StratosThreadPool.getExecutorService("TEST_THREAD_POOL", 5);
         topologyEventReceiver = TopologyEventReceiver.getInstance();
-        //topologyEventReceiver.setExecutorService(executorService);
+        //topologyEventReceiver.setExecutorService(executor);
         //topologyEventReceiver.execute();
 
         instanceStatusEventReceiver = InstanceStatusEventReceiver.getInstance();
-//        instanceStatusEventReceiver.setExecutorService(executorService);
+//        instanceStatusEventReceiver.setExecutorService(executor);
 //        instanceStatusEventReceiver.execute();
 
         instanceStarted = false;

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
index 4d28dd5..0771d5a 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
@@ -44,6 +44,7 @@ import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.locks.Lock;
 
 /**
@@ -135,8 +136,8 @@ public class CloudControllerContext implements Serializable {
     /**
      * Thread pool used in this task to execute parallel tasks.
      */
-    private transient ExecutorService executorService = StratosThreadPool
-            .getExecutorService("cloud.controller.context.thread.pool", 10);
+    private transient ThreadPoolExecutor executor = StratosThreadPool
+            .getExecutorService("cloud.controller.context.thread.pool", 5, 10);
 
     /**
      * Map of registered {@link org.apache.stratos.cloud.controller.domain.Cartridge}s
@@ -495,9 +496,9 @@ public class CloudControllerContext implements Serializable {
         return removed;
     }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
+//    public ExecutorService getExecutor() {
+//        return executor;
+//    }
 
     public List<String> getPartitionIds(String cartridgeType) {
         return cartridgeTypeToPartitionIdsMap.get(cartridgeType);

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..710e400 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
@@ -49,6 +49,7 @@ import org.wso2.carbon.utils.ConfigurationContextService;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -82,7 +83,7 @@ public class CloudControllerServiceComponent {
     private InstanceStatusTopicReceiver instanceStatusTopicReceiver;
     private ApplicationEventReceiver applicationEventReceiver;
     private InitializerTopicReceiver initializerTopicReceiver;
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
     private ScheduledExecutorService scheduler;
 
     protected void activate(final ComponentContext context) {
@@ -90,7 +91,8 @@ public class CloudControllerServiceComponent {
             log.debug("Activating CloudControllerServiceComponent...");
         }
         try {
-            executorService = StratosThreadPool.getExecutorService(THREAD_POOL_ID, THREAD_POOL_SIZE);
+            executor = StratosThreadPool.getExecutorService(THREAD_POOL_ID, ((int)Math.ceil
+                    (THREAD_POOL_SIZE/3)),THREAD_POOL_SIZE);
             scheduler = StratosThreadPool
                     .getScheduledExecutorService(SCHEDULER_THREAD_POOL_ID, SCHEDULER_THREAD_POOL_SIZE);
 
@@ -123,7 +125,7 @@ public class CloudControllerServiceComponent {
                                 }
                             };
                             coordinatorElectorThread.setName("Cloud controller coordinator elector thread");
-                            executorService.submit(coordinatorElectorThread);
+                            executor.submit(coordinatorElectorThread);
                         } else {
                             executeCoordinatorTasks();
                         }
@@ -146,7 +148,7 @@ public class CloudControllerServiceComponent {
 
     private void executeCoordinatorTasks() {
         applicationEventReceiver = new ApplicationEventReceiver();
-//        applicationEventReceiver.setExecutorService(executorService);
+//        applicationEventReceiver.setExecutorService(executor);
 //        applicationEventReceiver.execute();
 
         if (log.isInfoEnabled()) {
@@ -154,7 +156,7 @@ public class CloudControllerServiceComponent {
         }
 
         clusterStatusTopicReceiver = new ClusterStatusTopicReceiver();
-//        clusterStatusTopicReceiver.setExecutorService(executorService);
+//        clusterStatusTopicReceiver.setExecutorService(executor);
 //        clusterStatusTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
@@ -162,7 +164,7 @@ public class CloudControllerServiceComponent {
         }
 
         instanceStatusTopicReceiver = new InstanceStatusTopicReceiver();
-//        instanceStatusTopicReceiver.setExecutorService(executorService);
+//        instanceStatusTopicReceiver.setExecutorService(executor);
 //        instanceStatusTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
@@ -170,7 +172,7 @@ public class CloudControllerServiceComponent {
         }
 
         initializerTopicReceiver = new InitializerTopicReceiver();
-//        initializerTopicReceiver.setExecutorService(executorService);
+//        initializerTopicReceiver.setExecutorService(executor);
 //        initializerTopicReceiver.execute();
 
         if (log.isInfoEnabled()) {
@@ -269,9 +271,9 @@ public class CloudControllerServiceComponent {
     }
 
     private void shutdownExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutorService(executorService);
+        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+        if (executor != null) {
+            shutdownExecutorService(executor);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..26290b7 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,7 +37,7 @@ 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 executor;
 
     public ApplicationEventReceiver() {
         this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
@@ -48,7 +48,7 @@ public class ApplicationEventReceiver {
 //        if (log.isInfoEnabled()) {
 //            log.info("Cloud controller application event receiver thread started");
 //        }
-//        applicationsEventReceiver.setExecutorService(executorService);
+//        applicationsEventReceiver.setExecutorService(executor);
 //        applicationsEventReceiver.execute();
 //    }
 
@@ -76,7 +76,7 @@ public class ApplicationEventReceiver {
         });
     }
 
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 e0b9f62..a7c0947 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
@@ -34,7 +34,7 @@ public class ClusterStatusTopicReceiver {
 
     private ClusterStatusEventReceiver clusterStatusEventReceiver;
     //private boolean terminated;
-    //private ExecutorService executorService;
+    //private ExecutorService executor;
 
     public ClusterStatusTopicReceiver() {
         this.clusterStatusEventReceiver = ClusterStatusEventReceiver.getInstance();
@@ -42,7 +42,7 @@ public class ClusterStatusTopicReceiver {
     }
 
 //    public void execute() {
-//        clusterStatusEventReceiver.setExecutorService(executorService);
+//        clusterStatusEventReceiver.setExecutorService(executor);
 //        clusterStatusEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Cloud controller Cluster status thread started");
@@ -119,11 +119,11 @@ public class ClusterStatusTopicReceiver {
 //        this.terminated = terminated;
 //    }
 //
-//    public ExecutorService getExecutorService() {
-//        return executorService;
+//    public ExecutorService getExecutor() {
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 9a2c502..4d31058 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
@@ -31,7 +31,7 @@ import java.util.concurrent.ExecutorService;
 public class InitializerTopicReceiver {
     private static final Log log = LogFactory.getLog(InitializerTopicReceiver.class);
     private InitializerEventReceiver initializerEventReceiver;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
 
     public InitializerTopicReceiver() {
         this.initializerEventReceiver = InitializerEventReceiver.getInstance();
@@ -39,7 +39,7 @@ public class InitializerTopicReceiver {
     }
 
 //    public void execute() {
-//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.setExecutorService(executor);
 //        initializerEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Autoscaler initializer topic receiver started");
@@ -62,11 +62,11 @@ public class InitializerTopicReceiver {
         });
     }
 
-//    public ExecutorService getExecutorService() {
-//        return executorService;
+//    public ExecutorService getExecutor() {
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 bfa205b..a3bbc2b 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
@@ -42,8 +42,8 @@ public class InstanceStatusTopicReceiver {
     private static final Log log = LogFactory.getLog(InstanceStatusTopicReceiver.class);
 
     private InstanceStatusEventReceiver statusEventReceiver;
-    private boolean terminated;
-    private ExecutorService executorService;
+    //private boolean terminated;
+    //private ExecutorService executorService;
 
     public InstanceStatusTopicReceiver() {
         this.statusEventReceiver = InstanceStatusEventReceiver.getInstance();
@@ -51,7 +51,7 @@ public class InstanceStatusTopicReceiver {
     }
 
 //    public void execute() {
-//        statusEventReceiver.setExecutorService(executorService);
+//        statusEventReceiver.setExecutorService(executor);
 //        statusEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Cloud controller application status thread started");
@@ -132,11 +132,11 @@ public class InstanceStatusTopicReceiver {
 
     }
 
-    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/cef4fe1b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index d25ab52..8bd9ec2 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -43,7 +43,7 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException;
 import java.util.*;
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.locks.Lock;
 
 /**
@@ -60,10 +60,11 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     public static final String KUBERNETES_CLUSTER = "cluster";
 
     private CloudControllerContext cloudControllerContext = CloudControllerContext.getInstance();
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     public CloudControllerServiceImpl() {
-        executorService = StratosThreadPool.getExecutorService("cloud.controller.instance.manager.thread.pool", 50);
+        executor = StratosThreadPool.getExecutorService("cloud.controller.instance.manager.thread" +
+                ".pool", 20, 50);
 
     }
 
@@ -496,7 +497,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                                 + "[member] %s [application-id] %s", instanceContext.getClusterId(),
                         instanceContext.getClusterInstanceId(), memberId, applicationId));
             }
-            executorService.execute(new InstanceCreator(memberContext, iaasProvider, payload.toString().getBytes()));
+            executor.execute(new InstanceCreator(memberContext, iaasProvider, payload.toString().getBytes()));
 
             return memberContext;
         } catch (Exception e) {
@@ -675,7 +676,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                         }
                     }
                 }
-                executorService.execute(new InstanceTerminator(memberContext));
+                executor.execute(new InstanceTerminator(memberContext));
             } finally {
                 TopologyHolder.releaseWriteLock();
             }
@@ -726,7 +727,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         }
 
         for (MemberContext memberContext : memberContexts) {
-            executorService.execute(new InstanceTerminator(memberContext));
+            executor.execute(new InstanceTerminator(memberContext));
         }
         return true;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
index 8107e1b..0d38967 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberInformationPublisher.java
@@ -35,7 +35,7 @@ import org.wso2.carbon.databridge.commons.StreamDefinition;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * MemberInfoPublisher to publish member information/metadata to DAS.
@@ -48,12 +48,13 @@ public class DASMemberInformationPublisher extends MemberInformationPublisher {
     private static final String VERSION = "1.0.0";
     private static final String DAS_THRIFT_CLIENT_NAME = "das";
     private static final String VALUE_NOT_FOUND = "Value Not Found";
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     private DASMemberInformationPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
-        executorService = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE);
+        executor = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
+                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/3)), CloudControllerConstants
+                        .STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 
     public static DASMemberInformationPublisher getInstance() {
@@ -161,7 +162,7 @@ public class DASMemberInformationPublisher extends MemberInformationPublisher {
                 }
             }
         };
-        executorService.execute(publisher);
+        executor.execute(publisher);
     }
 
     public static String handleNull(String param) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
index 6bb6251..f28d2c8 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/DASMemberStatusPublisher.java
@@ -29,7 +29,7 @@ import org.wso2.carbon.databridge.commons.StreamDefinition;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * Publishing member status to DAS.
@@ -41,12 +41,13 @@ public class DASMemberStatusPublisher extends MemberStatusPublisher {
     private static final String DATA_STREAM_NAME = "member_lifecycle";
     private static final String VERSION = "1.0.0";
     private static final String DAS_THRIFT_CLIENT_NAME = "das";
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     private DASMemberStatusPublisher() {
         super(createStreamDefinition(), DAS_THRIFT_CLIENT_NAME);
-        executorService = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
-                CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE);
+        executor = StratosThreadPool.getExecutorService(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_ID,
+                ((int)Math.ceil(CloudControllerConstants.STATS_PUBLISHER_THREAD_POOL_SIZE/3)), CloudControllerConstants
+                        .STATS_PUBLISHER_THREAD_POOL_SIZE);
     }
 
     public static DASMemberStatusPublisher getInstance() {
@@ -133,7 +134,7 @@ public class DASMemberStatusPublisher extends MemberStatusPublisher {
                 publish(payload.toArray());
             }
         };
-        executorService.execute(publisher);
+        executor.execute(publisher);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
index b6abbf3..98ddd37 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
@@ -19,7 +19,9 @@
 
 package org.apache.stratos.common.threading;
 
-public class StratosThreadFactory {
+import java.util.concurrent.ThreadFactory;
+
+public class StratosThreadFactory implements ThreadFactory {
     private String prefix;
     private int counter;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 d4531e2..459cd1d 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
@@ -33,7 +33,7 @@ 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, ThreadPoolExecutor> executorMap = new ConcurrentHashMap<>();
     private static Map<String, ScheduledExecutorService> scheduledServiceMap = new ConcurrentHashMap<String, ScheduledExecutorService>();
     private static Object executorServiceMapLock = new Object();
     private static Object scheduledServiceMapLock = new Object();
@@ -42,21 +42,24 @@ public class StratosThreadPool {
      * Return the executor service based on the identifier and thread pool size
      *
      * @param identifier     Thread pool identifier name
-     * @param threadPoolSize Thread pool size
+     * @param maxSize Thread pool size
      * @return ExecutorService
      */
-    public static ExecutorService getExecutorService(String identifier, int threadPoolSize) {
-        ExecutorService executorService = executorServiceMap.get(identifier);
-        if (executorService == null) {
+    public static ThreadPoolExecutor getExecutorService(String identifier, int initialSize, int
+            maxSize) {
+        ThreadPoolExecutor executor = executorMap.get(identifier);
+        if (executor == null) {
             synchronized (executorServiceMapLock) {
-                if (executorService == null) {
-                    executorService = Executors.newFixedThreadPool(threadPoolSize);
-                    executorServiceMap.put(identifier, executorService);
-                    log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize));
+                if (executor == null) {
+                    executor = new ThreadPoolExecutor(initialSize, maxSize, 60L, TimeUnit.SECONDS,
+                            new LinkedBlockingQueue<Runnable>(), new StratosThreadFactory(identifier));
+                    executorMap.put(identifier, executor);
+                    log.info(String.format("Thread pool created: [type] Executor [id] %s " +
+                            "[initial size] %d [max size] %d", identifier, initialSize, maxSize));
                 }
             }
         }
-        return executorService;
+        return executor;
     }
 
     /**
@@ -71,7 +74,8 @@ public class StratosThreadPool {
         if (scheduledExecutorService == null) {
             synchronized (scheduledServiceMapLock) {
                 if (scheduledExecutorService == null) {
-                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize);
+                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize,
+                            new StratosThreadFactory(identifier));
                     scheduledServiceMap.put(identifier, scheduledExecutorService);
                     log.info(String.format("Thread pool created: [type] Scheduled Executor Service [id] %s [size] %d",
                             identifier, threadPoolSize));

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 ec1ddbc..838f0fc 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
@@ -89,10 +89,10 @@ public class LoadBalancerExtension {
             }
 
             // Start topology receiver thread
-            startTopologyEventReceiver(executorService, topologyProvider);
-            startApplicationEventReceiver(executorService);
-            startApplicationSignUpEventReceiver(executorService, topologyProvider);
-            startDomainMappingEventReceiver(executorService, topologyProvider);
+            startTopologyEventReceiver(topologyProvider);
+            startApplicationEventReceiver();
+            startApplicationSignUpEventReceiver(topologyProvider);
+            startDomainMappingEventReceiver(topologyProvider);
 
             if (statsReader != null) {
                 // Start stats notifier thread
@@ -115,17 +115,16 @@ public class LoadBalancerExtension {
     /**
      * Start topology event receiver thread.
      *
-     * @param executorService  executor service instance
      * @param topologyProvider topology provider instance
      */
-    private void startTopologyEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startTopologyEventReceiver(TopologyProvider topologyProvider) {
         // Enforcing the listener order in order execute extension listener later
         topologyEventReceiver = new LoadBalancerCommonTopologyEventReceiver(topologyProvider, false);
         // Add load-balancer extension event listener
         addTopologyEventListeners(topologyEventReceiver);
         // Add default topology provider event listeners
         topologyEventReceiver.addEventListeners();
-//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.setExecutorService(executor);
 //        topologyEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Topology receiver thread started");
@@ -149,9 +148,9 @@ public class LoadBalancerExtension {
         }
     }
 
-    private void startApplicationEventReceiver(ExecutorService executorService) {
+    private void startApplicationEventReceiver() {
         applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
-//        applicationsEventReceiver.setExecutorService(executorService);
+//        applicationsEventReceiver.setExecutorService(executor);
 //        applicationsEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Application event receiver thread started");
@@ -164,14 +163,14 @@ public class LoadBalancerExtension {
      * @param executorService  executor service instance
      * @param topologyProvider topology receiver instance
      */
-    private void startDomainMappingEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startDomainMappingEventReceiver(TopologyProvider topologyProvider) {
         // Enforcing the listener order in order execute extension listener later
         domainMappingEventReceiver = new LoadBalancerCommonDomainMappingEventReceiver(topologyProvider, false);
         // Add extension event listeners
         addDomainMappingsEventListeners(domainMappingEventReceiver);
         // Add default domain mapping event listeners
         domainMappingEventReceiver.addEventListeners();
-//        domainMappingEventReceiver.setExecutorService(executorService);
+//        domainMappingEventReceiver.setExecutorService(executor);
 //        domainMappingEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Domain mapping event receiver thread started");
@@ -198,10 +197,9 @@ public class LoadBalancerExtension {
     /**
      * Start application signup event receiver thread.
      *
-     * @param executorService  executor service instance
      * @param topologyProvider topology provider instance
      */
-    private void startApplicationSignUpEventReceiver(ExecutorService executorService, TopologyProvider topologyProvider) {
+    private void startApplicationSignUpEventReceiver(TopologyProvider topologyProvider) {
         applicationSignUpEventReceiver = new LoadBalancerCommonApplicationSignUpEventReceiver(topologyProvider);
         if (log.isInfoEnabled()) {
             log.info("Application signup event receiver thread started");

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..cb2297a 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
@@ -64,6 +64,7 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
 import java.io.File;
 import java.util.Collection;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * @scr.component name="org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent" immediate="true"
@@ -90,7 +91,7 @@ public class LoadBalancerServiceComponent {
     private static final Log log = LogFactory.getLog(LoadBalancerServiceComponent.class);
 
     private boolean activated = false;
-    private ExecutorService executorService;
+    //private ThreadPoolExecutor executor;
     private LoadBalancerTopologyEventReceiver topologyEventReceiver;
     private TenantEventReceiver tenantEventReceiver;
     private LoadBalancerDomainMappingEventReceiver domainMappingEventReceiver;
@@ -126,8 +127,9 @@ public class LoadBalancerServiceComponent {
 
             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);
+           // executor = StratosThreadPool.getExecutorService(LoadBalancerConstants
+            //                .LOAD_BALANCER_THREAD_POOL_ID,
+            //        ((int)Math.ceil(threadPoolSize/3)), threadPoolSize);
 
             TopologyProvider topologyProvider = LoadBalancerConfiguration.getInstance().getTopologyProvider();
             if (topologyProvider == null) {
@@ -137,18 +139,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,39 +169,39 @@ 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.setExecutorService(executor);
 //        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.setExecutorService(executor);
 //        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.setExecutorService(executor);
 //        topologyEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Topology receiver thread started");
@@ -223,10 +225,10 @@ public class LoadBalancerServiceComponent {
         }
     }
 
-    private void startTenantEventReceiver(ExecutorService executorService) {
+    private void startTenantEventReceiver() {
 
         tenantEventReceiver = TenantEventReceiver.getInstance();
-//        tenantEventReceiver.setExecutorService(executorService);
+//        tenantEventReceiver.setExecutorService(executor);
 //        tenantEventReceiver.execute();
         if (log.isInfoEnabled()) {
             log.info("Tenant event receiver thread started");
@@ -293,13 +295,13 @@ public class LoadBalancerServiceComponent {
         }
 
         // 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);
-            }
-        }
+//        if (executor != null) {
+//            try {
+//                executor.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/cef4fe1b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
index 04a0756..e625ec7 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
@@ -24,6 +24,7 @@ import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.load.balancer.util.LoadBalancerConstants;
 
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * An executor service to asynchronously execute statistics update calls without blocking the
@@ -35,11 +36,12 @@ public class LoadBalancerStatisticsExecutor {
 
     private static volatile LoadBalancerStatisticsExecutor instance;
 
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
 
     private LoadBalancerStatisticsExecutor() {
-        executorService = StratosThreadPool.getExecutorService(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_ID,
-                LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
+        executor = StratosThreadPool.getExecutorService(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_ID,
+                ((int)Math.ceil(LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE/3)), LoadBalancerConstants
+                        .LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
     }
 
     public static LoadBalancerStatisticsExecutor getInstance() {
@@ -53,7 +55,7 @@ public class LoadBalancerStatisticsExecutor {
         return instance;
     }
 
-    public ExecutorService getService() {
-        return executorService;
+    public ThreadPoolExecutor getService() {
+        return executor;
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..0486d84 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
@@ -50,6 +50,7 @@ import org.wso2.carbon.utils.ConfigurationContextService;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -92,7 +93,7 @@ public class StratosManagerServiceComponent {
     private StratosManagerInstanceStatusEventReceiver instanceStatusEventReceiver;
     private StratosManagerApplicationEventReceiver applicationEventReceiver;
     private StratosManagerInitializerTopicReceiver initializerTopicReceiver;
-    private ExecutorService executorService;
+    private ThreadPoolExecutor executor;
     private ScheduledExecutorService scheduler;
 
     protected void activate(final ComponentContext componentContext) throws Exception {
@@ -100,7 +101,8 @@ public class StratosManagerServiceComponent {
             log.debug("Activating StratosManagerServiceComponent...");
         }
         try {
-            executorService = StratosThreadPool.getExecutorService(THREAD_POOL_ID, THREAD_POOL_SIZE);
+            executor = StratosThreadPool.getExecutorService(THREAD_POOL_ID, ((int)Math.ceil(THREAD_POOL_SIZE/3))
+                    , THREAD_POOL_SIZE);
             scheduler = StratosThreadPool
                     .getScheduledExecutorService(SCHEDULER_THREAD_POOL_ID, SCHEDULER_THREAD_POOL_SIZE);
 
@@ -141,7 +143,7 @@ public class StratosManagerServiceComponent {
                                 }
                             };
                             coordinatorElectorThread.setName("Stratos manager coordinator elector thread");
-                            executorService.submit(coordinatorElectorThread);
+                            executor.submit(coordinatorElectorThread);
                         } else {
                             executeCoordinatorTasks(componentContext);
                         }
@@ -193,7 +195,7 @@ public class StratosManagerServiceComponent {
 
     private void initializeInitializerEventReceiver() {
         initializerTopicReceiver = new StratosManagerInitializerTopicReceiver();
-//        initializerTopicReceiver.setExecutorService(executorService);
+//        initializerTopicReceiver.setExecutorService(executor);
 //        initializerTopicReceiver.execute();
     }
 
@@ -202,7 +204,7 @@ public class StratosManagerServiceComponent {
      */
     private void initializeInstanceStatusEventReceiver() {
         instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
-//        instanceStatusEventReceiver.setExecutorService(executorService);
+//        instanceStatusEventReceiver.setExecutorService(executor);
 //        instanceStatusEventReceiver.execute();
     }
 
@@ -211,7 +213,7 @@ public class StratosManagerServiceComponent {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = new StratosManagerTopologyEventReceiver();
-//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.setExecutorService(executor);
 //        topologyEventReceiver.execute();
     }
 
@@ -220,7 +222,7 @@ public class StratosManagerServiceComponent {
      */
     private void initializeApplicationEventReceiver() {
         applicationEventReceiver = new StratosManagerApplicationEventReceiver();
-//        applicationEventReceiver.setExecutorService(executorService);
+//        applicationEventReceiver.setExecutorService(executor);
 //        applicationEventReceiver.execute();
     }
 
@@ -337,25 +339,33 @@ public class StratosManagerServiceComponent {
         EventPublisherPool.close(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName());
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
 
-        shutdownExecutorService(THREAD_POOL_ID);
+        shutdownExecutor(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 shutdownExecutor(String executorServiceId) {
+        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+        if (executor != null) {
+            shutdownExecutor(executor);
         }
     }
 
     private void shutdownScheduledExecutorService(String executorServiceId) {
         ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
         if (executorService != null) {
-            shutdownExecutorService(executorService);
+            shutdownExecutor(executorService);
+        }
+    }
+
+    private void shutdownExecutor(ThreadPoolExecutor executor) {
+        try {
+            executor.shutdownNow();
+        } catch (Exception e) {
+            log.warn("An error occurred while shutting down executor service", e);
         }
     }
 
-    private void shutdownExecutorService(ExecutorService executorService) {
+    private void shutdownExecutor(ExecutorService executorService) {
         try {
             executorService.shutdownNow();
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 c08e8e4..5f7bc53 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,7 +33,7 @@ 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 executor;
     private ApplicationSignUpHandler applicationSignUpHandler;
 
     public StratosManagerInitializerTopicReceiver() {
@@ -43,7 +43,7 @@ public class StratosManagerInitializerTopicReceiver {
     }
 
 //    public void execute() {
-//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.setExecutorService(executor);
 //        initializerEventReceiver.execute();
 //        if (log.isInfoEnabled()) {
 //            log.info("Stratos manager initializer topic receiver started");
@@ -82,10 +82,10 @@ public class StratosManagerInitializerTopicReceiver {
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..0b07940 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,11 +19,11 @@
 
 package org.apache.stratos.messaging.message.receiver;
 
-import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 public class StratosEventReceiver {
 
-    protected ExecutorService executorService;
+    protected ThreadPoolExecutor executor;
 
     public StratosEventReceiver () {
     }


[38/50] [abbrv] 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/68530649
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/68530649
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/68530649

Branch: refs/heads/stratos-4.1.x
Commit: 68530649ce721c78b9d967a05927ddb9dbf2a326
Parents: c3cc2bb
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 10:41:57 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:58:18 2015 +0530

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


http://git-wip-us.apache.org/repos/asf/stratos/blob/68530649/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/68530649/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/68530649/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 75bdde9..11fa481 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.ThreadPoolExecutor;
 
@@ -41,8 +42,7 @@ 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");
@@ -59,6 +59,7 @@ public class Main {
 			extension = new LoadBalancerExtension(new AWSLoadBalancer(),
 					statisticsReader, topologyProvider);
 			extension.setExecutorService(executor);
+
 			extension.execute();
 
 			// Add shutdown hook
@@ -68,7 +69,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 +78,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...");


[22/50] [abbrv] stratos git commit: fixing http://stackoverflow.com/questions/9160227/dir-util-copy-tree-fails-after-shutil-rmtree, improving ScheduledExecutor and using str(tenant_id) in getting cached git repo objects

Posted by is...@apache.org.
fixing http://stackoverflow.com/questions/9160227/dir-util-copy-tree-fails-after-shutil-rmtree, improving ScheduledExecutor and using str(tenant_id) in getting cached git repo objects


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

Branch: refs/heads/stratos-4.1.x
Commit: 9dfe53fe6df6bc11b7cf12afb6d609257618ba74
Parents: 12a1660
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 1 16:26:41 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../modules/artifactmgt/git/agentgithandler.py    | 12 ++++++++++++
 .../modules/util/asyncscheduledtask.py            |  5 +++--
 .../modules/util/cartridgeagentutils.py           |  9 ++++++++-
 .../plugins/DefaultArtifactCheckout.py            | 18 +++++++++++-------
 4 files changed, 34 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9dfe53fe/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
index dfa8089..39543b9 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
@@ -21,6 +21,7 @@ import tempfile
 import urllib
 import os
 from distutils.dir_util import copy_tree
+import distutils.dir_util
 from threading import current_thread
 
 import constants
@@ -155,6 +156,9 @@ class AgentGitHandler:
                 "Cloning artifacts from URL: %s to temp location: %s" % (git_repo.repo_url, temp_repo_path))
             Repo.clone_from(git_repo.auth_url, temp_repo_path)
 
+            # clear the paths to get rid of the following bug in distutils:
+            # http://stackoverflow.com/questions/9160227/dir-util-copy-tree-fails-after-shutil-rmtree
+            distutils.dir_util._path_created = {}
             # move the cloned dir to application path
             copy_tree(temp_repo_path, git_repo.local_repo_path)
             AgentGitHandler.log.info("Git clone operation for tenant %s successful" % git_repo.tenant_id)
@@ -209,8 +213,16 @@ class AgentGitHandler:
 
     @staticmethod
     def clear_repo(tenant_id):
+        tenant_id = str(tenant_id)
+        AgentGitHandler.log.info ('########################## in clear_repo method...' + tenant_id)
         if tenant_id in AgentGitHandler.__git_repositories:
             del AgentGitHandler.__git_repositories[tenant_id]
+            AgentGitHandler.log.info('########################## cached repo object deleted for tenant ' +
+                  tenant_id)
+        if tenant_id in AgentGitHandler.__git_repositories:
+            AgentGitHandler.log.info('########################## cached repo object still exists for tenant ' + tenant_id)
+        else:
+            AgentGitHandler.log.info('########################## no cached obj found for ' + tenant_id)
 
     @staticmethod
     def create_git_repo(repo_info):

http://git-wip-us.apache.org/repos/asf/stratos/blob/9dfe53fe/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/asyncscheduledtask.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/asyncscheduledtask.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/asyncscheduledtask.py
index f727414..5b54598 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/asyncscheduledtask.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/asyncscheduledtask.py
@@ -61,8 +61,9 @@ class ScheduledExecutor(Thread):
         """
         while not self.terminated:
             time.sleep(self.delay)
-            task_thread = Thread(target=self.task.execute_task)
-            task_thread.start()
+            if not self.terminated:
+                task_thread = Thread(target=self.task.execute_task)
+                task_thread.start()
 
     def terminate(self):
         """

http://git-wip-us.apache.org/repos/asf/stratos/blob/9dfe53fe/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
index 532dc5f..7b2d0ed 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
@@ -143,8 +143,8 @@ def check_port_active(ip_address, port):
         log.debug("Port %s is not active" % port)
         return False
 
-class Utils (object):
 
+class Utils(object):
     @staticmethod
     def directory_exists(dir):
         """
@@ -197,6 +197,13 @@ class Utils (object):
         except OSError as e:
             log.error('Directory not moved. Error: %s' % e)
 
+    @staticmethod
+    def print_dictionary(dic):
+        for x in dic:
+            print (x)
+            for y in dic[x]:
+                print (y, ':', dic[x][y])
+
 class IncrementalCeilingListIterator(object):
     """
     Iterates through a given list and returns elements. At the end of the list if terminate_at_end is set to false,

http://git-wip-us.apache.org/repos/asf/stratos/blob/9dfe53fe/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index 0a45d91..413090e 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -83,6 +83,7 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                 git_repo.cloned = False
                 self.log.debug("Executing git clone: [tenant-id] %s [repo-url] %s",
                                git_repo.tenant_id, git_repo.repo_url)
+
                 git_repo = AgentGitHandler.clone(git_repo)
                 AgentGitHandler.add_repo(git_repo)
                 self.log.debug("Git clone executed: [tenant-id] %s [repo-url] %s",
@@ -94,13 +95,7 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
             self.log.info("Executing git clone: [tenant-id] %s [repo-url] %s, [repo path] %s",
                           git_repo.tenant_id, git_repo.repo_url, git_repo.local_repo_path)
 
-            # copy default artifacts (if any) to a a temp location
-            # if directory name is dir, the backup directory name would be dir_backup
-            if self.initial_artifacts_exists(git_repo.local_repo_path):
-                self.log.info("Default artifacts exist at " + git_repo.local_repo_path)
-                self.backup_initial_artifacts(git_repo.local_repo_path)
-            else:
-                self.log.info("No default artifacts exist at " + git_repo.local_repo_path)
+            self.check_and_backup_initial_artifacts(git_repo.local_repo_path)
 
             try:
                 git_repo = AgentGitHandler.clone(git_repo)
@@ -114,6 +109,15 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                 AgentGitHandler.retry_clone(git_repo)
                 AgentGitHandler.add_repo(git_repo)
 
+    def check_and_backup_initial_artifacts(self, initial_artifact_dir):
+        # copy default artifacts (if any) to a a temp location
+        # if directory name is dir, the backup directory name would be dir_backup
+        if self.initial_artifacts_exists(initial_artifact_dir):
+            self.log.info("Default artifacts exist at " + initial_artifact_dir)
+            self.backup_initial_artifacts(initial_artifact_dir)
+        else:
+            self.log.info("No default artifacts exist at " + initial_artifact_dir)
+
     def initial_artifacts_exists(self, dir):
         try:
             return os.path.exists(dir) and os.listdir(dir)


[29/50] [abbrv] stratos git commit: changing logic of enabling initial artifact update

Posted by is...@apache.org.
changing logic of enabling initial artifact update


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

Branch: refs/heads/stratos-4.1.x
Commit: 17b46f7ff74db7e2f466ed7585fb17ad1e062edb
Parents: 25abaff
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 9 22:35:53 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:01:14 2015 +0530

----------------------------------------------------------------------
 .../src/main/python/cartridge.agent/cartridge.agent/agent.conf     | 2 +-
 .../cartridge.agent/plugins/DefaultArtifactCheckout.py             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/17b46f7f/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
index 6875d25..06e3a40 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/agent.conf
@@ -45,4 +45,4 @@ APPLICATION_PATH                      =APPLICATION-PATH
 metadata.service.url                  =METADATA-SERVICE-URL
 super.tenant.repository.path          =/repository/deployment/server/
 tenant.repository.path                =/repository/tenants/
-enable.initial.artifact.backup        =ENABLE_INITIAL_ARTIFACT_UPDATE
+enable.initial.artifact.backup        =ENABLE_INITIAL_ARTIFACT_BACKUP

http://git-wip-us.apache.org/repos/asf/stratos/blob/17b46f7f/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index f9883aa..1645030 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -95,7 +95,7 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
             self.log.info("Executing git clone: [tenant-id] %s [repo-url] %s, [repo path] %s",
                           git_repo.tenant_id, git_repo.repo_url, git_repo.local_repo_path)
 
-            if not Config.backup_initial_artifacts is None and Config.backup_initial_artifacts:
+            if Config.backup_initial_artifacts:
                 self.check_and_backup_initial_artifacts(git_repo.local_repo_path)
             else:
                 self.log.info("Default artifact backup disabled")


[17/50] [abbrv] stratos git commit: removing unused methods

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


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

Branch: refs/heads/stratos-4.1.x
Commit: d4b35c0f0b1c0441a325781742f038009946e1db
Parents: 4b15a1b
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 8 07:32:06 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Dec 8 07:32:06 2015 +0530

----------------------------------------------------------------------
 .../AutoscalerHealthStatEventReceiver.java      | 23 -------
 .../AutoscalerInitializerTopicReceiver.java     | 17 -----
 .../AutoscalerTopologyEventReceiver.java        | 17 -----
 .../internal/AutoscalerServiceComponent.java    | 67 +-------------------
 .../CloudControllerServiceComponent.java        | 59 -----------------
 .../application/ApplicationEventReceiver.java   | 13 ----
 .../StratosManagerServiceComponent.java         | 41 ------------
 .../application/ApplicationsEventReceiver.java  |  2 +-
 .../signup/ApplicationSignUpEventReceiver.java  |  2 +-
 .../status/ClusterStatusEventReceiver.java      |  2 +-
 .../mapping/DomainMappingEventReceiver.java     |  3 +-
 .../health/stat/HealthStatEventReceiver.java    |  2 +-
 .../initializer/InitializerEventReceiver.java   |  2 +-
 .../notifier/InstanceNotifierEventReceiver.java |  2 +-
 .../status/InstanceStatusEventReceiver.java     |  2 +-
 .../receiver/tenant/TenantEventReceiver.java    |  2 +-
 .../topology/TopologyEventReceiver.java         |  2 +-
 17 files changed, 12 insertions(+), 246 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 42d7771..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
@@ -39,25 +39,14 @@ import java.util.concurrent.ExecutorService;
 public class AutoscalerHealthStatEventReceiver {
 
     private static final Log log = LogFactory.getLog(AutoscalerHealthStatEventReceiver.class);
-    private boolean terminated = false;
 
     private HealthStatEventReceiver healthStatEventReceiver;
-   // private ExecutorService executorService;
 
     public AutoscalerHealthStatEventReceiver() {
         this.healthStatEventReceiver = HealthStatEventReceiver.getInstance();
         addEventListeners();
     }
 
-//    public void execute() {
-//        healthStatEventReceiver.setExecutor(executor);
-//        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
         healthStatEventReceiver.addEventListener(new AverageLoadAverageEventListener() {
@@ -475,16 +464,4 @@ public class AutoscalerHealthStatEventReceiver {
             TopologyManager.releaseReadLock();
         }
     }
-
-    public void terminate() {
-        this.terminated = true;
-    }
-
-//    public ExecutorService getExecutor() {
-//        return executorService;
-//    }
-//
-//    public void setExecutor(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 e1dbd7f..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.setExecutor(executor);
-//        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 getExecutor() {
-//        return executorService;
-//    }
-//
-//    public void setExecutor(ExecutorService executorService) {
-//        this.executorService = executorService;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 b0af42a..c150a1f 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 getExecutor() {
-//        return executor;
-//    }
-//
-//    public void setExecutor(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 9b1a290..bcd4fc1 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
@@ -171,27 +171,10 @@ public class AutoscalerServiceComponent {
 
         // Start topology receiver
         asTopologyReceiver = new AutoscalerTopologyEventReceiver();
-//        asTopologyReceiver.setExecutor(executor);
-        //asTopologyReceiver.execute();
-        if (log.isDebugEnabled()) {
-            log.debug("Topology receiver executor service started");
-        }
-
         // Start health stat receiver
         autoscalerHealthStatEventReceiver = new AutoscalerHealthStatEventReceiver();
-//        autoscalerHealthStatEventReceiver.setExecutor(executor);
-//        autoscalerHealthStatEventReceiver.execute();
-        if (log.isDebugEnabled()) {
-            log.debug("Health statistics receiver thread started");
-        }
-
         // Start initializer receiver
         autoscalerInitializerTopicReceiver = new AutoscalerInitializerTopicReceiver();
-//        autoscalerInitializerTopicReceiver.setExecutor(executor);
-//        autoscalerInitializerTopicReceiver.execute();
-//        if (log.isDebugEnabled()) {
-//            log.debug("Initializer receiver thread started");
-//        }
 
         if (log.isInfoEnabled()) {
             log.info("Scheduling tasks to publish applications");
@@ -243,57 +226,11 @@ 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);
-            }
+        if (log.isDebugEnabled()) {
+            log.debug("Autoscaler Component de-activated");
         }
-
-        // 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) {
-//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-//        if (executor != null) {
-//            shutdownExecutorService(executor);
-//        }
-//    }
-//
-//    private void shutdownScheduledExecutorService(String executorServiceId) {
-//        ScheduledThreadPoolExecutor scheduledExecutor = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-//        if (scheduledExecutor != null) {
-//            shutdownExecutorService(scheduledExecutor);
-//        }
-//    }
-//
-//    private void shutdownExecutorService(ExecutorService executorService) {
-//        try {
-//            executorService.shutdownNow();
-//        } catch (Exception e) {
-//            log.warn("An error occurred while shutting down executor service", e);
-//        }
-//    }
-
     protected void setRegistryService(RegistryService registryService) {
         if (log.isDebugEnabled()) {
             log.debug("Setting the Registry Service");

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 0d02d46..62f3f29 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
@@ -145,40 +145,9 @@ public class CloudControllerServiceComponent {
 
     private void executeCoordinatorTasks() {
         applicationEventReceiver = new ApplicationEventReceiver();
-//        applicationEventReceiver.setExecutorService(executor);
-//        applicationEventReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Application event receiver thread started");
-        }
-
         clusterStatusTopicReceiver = new ClusterStatusTopicReceiver();
-//        clusterStatusTopicReceiver.setExecutorService(executor);
-//        clusterStatusTopicReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Cluster status event receiver thread started");
-        }
-
         instanceStatusTopicReceiver = new InstanceStatusTopicReceiver();
-//        instanceStatusTopicReceiver.setExecutorService(executor);
-//        instanceStatusTopicReceiver.execute();
-
-        if (log.isInfoEnabled()) {
-            log.info("Instance status event receiver thread started");
-        }
-
         initializerTopicReceiver = new InitializerTopicReceiver();
-//        initializerTopicReceiver.setExecutorService(executor);
-//        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);
     }
@@ -259,33 +228,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) {
-//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-//        if (executor != null) {
-//            shutdownExecutorService(executor);
-//        }
-//    }
-
-    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/d4b35c0f/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 26290b7..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 executor;
 
     public ApplicationEventReceiver() {
         this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
         addEventListeners();
     }
 
-//    public void execute() {
-//        if (log.isInfoEnabled()) {
-//            log.info("Cloud controller application event receiver thread started");
-//        }
-//        applicationsEventReceiver.setExecutorService(executor);
-//        applicationsEventReceiver.execute();
-//    }
-
     private void addEventListeners() {
         applicationsEventReceiver.addEventListener(new ApplicationInstanceTerminatedEventListener() {
             @Override
@@ -75,8 +66,4 @@ public class ApplicationEventReceiver {
             }
         });
     }
-
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 7de06ae..0dbc417 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
@@ -192,8 +192,6 @@ public class StratosManagerServiceComponent {
 
     private void initializeInitializerEventReceiver() {
         initializerTopicReceiver = new StratosManagerInitializerTopicReceiver();
-//        initializerTopicReceiver.setExecutorService(executor);
-//        initializerTopicReceiver.execute();
     }
 
     /**
@@ -201,8 +199,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeInstanceStatusEventReceiver() {
         instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
-//        instanceStatusEventReceiver.setExecutorService(executor);
-//        instanceStatusEventReceiver.execute();
     }
 
     /**
@@ -210,8 +206,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = new StratosManagerTopologyEventReceiver();
-//        topologyEventReceiver.setExecutorService(executor);
-//        topologyEventReceiver.execute();
     }
 
     /**
@@ -219,8 +213,6 @@ public class StratosManagerServiceComponent {
      */
     private void initializeApplicationEventReceiver() {
         applicationEventReceiver = new StratosManagerApplicationEventReceiver();
-//        applicationEventReceiver.setExecutorService(executor);
-//        applicationEventReceiver.execute();
     }
 
     /**
@@ -335,38 +327,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());
-
-        //shutdownExecutor(THREAD_POOL_ID);
-        //shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
     }
-
-//    private void shutdownExecutor(String executorServiceId) {
-//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-//        if (executor != null) {
-//            shutdownExecutor(executor);
-//        }
-//    }
-
-//    private void shutdownScheduledExecutorService(String executorServiceId) {
-//        ScheduledThreadPoolExecutor scheduledExecutor = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-//        if (scheduledExecutor != null) {
-//            shutdownExecutor(scheduledExecutor);
-//        }
-//    }
-
-//    private void shutdownExecutor(ThreadPoolExecutor executor) {
-//        try {
-//            executor.shutdownNow();
-//        } catch (Exception e) {
-//            log.warn("An error occurred while shutting down executor service", e);
-//        }
-//    }
-
-//    private void shutdownExecutor(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/d4b35c0f/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 78998c7..f9a14ae 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,7 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
 
     private ApplicationsEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("application-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 65ca857..49964f9 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,7 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
 
     private ApplicationSignUpEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("application-signup-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 fbfbc4b..aae1cef 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,7 +39,7 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
 
     private ClusterStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("clusterstatus-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 5d80d32..1348db0 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,8 +41,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
 
     private DomainMappingEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 35,
-                100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 e7dfb46..4be2fea 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,7 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
 
     private HealthStatEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("healthstat-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 15e1b64..f2e2131 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
@@ -37,7 +37,7 @@ public class InitializerEventReceiver extends StratosEventReceiver {
 
     private InitializerEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("initializer-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 e06a2e6..2d8ed62 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
@@ -40,7 +40,7 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
 
     private InstanceNotifierEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
         messageListener = new InstanceNotifierEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 867f461..4126f69 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,7 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
 
     private InstanceStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 39ef2fb..1d55ce4 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,7 @@ public class TenantEventReceiver extends StratosEventReceiver {
 
     private TenantEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("tenant-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d4b35c0f/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 ea1571e..648a8fb 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,7 @@ public class TopologyEventReceiver extends StratosEventReceiver {
 
     private TopologyEventReceiver() {
         // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
+        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);


[03/50] [abbrv] stratos git commit: removing StratosThreadFactory

Posted by is...@apache.org.
removing StratosThreadFactory


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

Branch: refs/heads/stratos-4.1.x
Commit: 864b4d91580903e49f60a5bc1e5e8b2bfb4ca4b4
Parents: e539832
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 4 05:40:09 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 2015 +0530

----------------------------------------------------------------------
 .../common/threading/StratosThreadFactory.java  | 37 --------------------
 .../common/threading/StratosThreadPool.java     |  4 +--
 2 files changed, 2 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/864b4d91/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
deleted file mode 100644
index df3bcae..0000000
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/StratosThreadFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.common.threading;
-
-import java.util.concurrent.ThreadFactory;
-
-public class StratosThreadFactory implements ThreadFactory {
-
-    private String prefix;
-    private int counter;
-
-    public StratosThreadFactory(String prefix) {
-        this.prefix = prefix;
-        this.counter = 0;
-    }
-
-    public Thread newThread(Runnable r) {
-        return new Thread(r, prefix + "-" + (++counter));
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/864b4d91/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 279167e..d4531e2 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
@@ -50,7 +50,7 @@ public class StratosThreadPool {
         if (executorService == null) {
             synchronized (executorServiceMapLock) {
                 if (executorService == null) {
-                    executorService = Executors.newFixedThreadPool(threadPoolSize, new StratosThreadFactory(identifier));
+                    executorService = Executors.newFixedThreadPool(threadPoolSize);
                     executorServiceMap.put(identifier, executorService);
                     log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize));
                 }
@@ -71,7 +71,7 @@ public class StratosThreadPool {
         if (scheduledExecutorService == null) {
             synchronized (scheduledServiceMapLock) {
                 if (scheduledExecutorService == null) {
-                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize, new StratosThreadFactory(identifier));
+                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize);
                     scheduledServiceMap.put(identifier, scheduledExecutorService);
                     log.info(String.format("Thread pool created: [type] Scheduled Executor Service [id] %s [size] %d",
                             identifier, threadPoolSize));


[10/50] [abbrv] stratos git commit: fixing references for event listener singletons

Posted by is...@apache.org.
fixing references for event listener singletons


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

Branch: refs/heads/stratos-4.1.x
Commit: 503a86ffc7bedfe5736c0387d0c477d56a816ec5
Parents: c103ad0
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 19:20:49 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 2015 +0530

----------------------------------------------------------------------
 .../application/ApplicationsEventReceiver.java    |  2 +-
 .../tests/PythonAgentIntegrationTest.java         |  6 +++---
 .../integration/common/TopologyHandler.java       | 18 +++++++++---------
 3 files changed, 13 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/503a86ff/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..4b86529 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
@@ -68,7 +68,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(),

http://git-wip-us.apache.org/repos/asf/stratos/blob/503a86ff/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..bf99eb7 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
@@ -148,9 +148,9 @@ public abstract class PythonAgentIntegrationTest {
             }
         });
 
-        initializerEventReceiver = new InitializerEventReceiver();
-        initializerEventReceiver.setExecutorService(executorService);
-        initializerEventReceiver.execute();
+        initializerEventReceiver = InitializerEventReceiver.getInstance();
+//        initializerEventReceiver.setExecutorService(executorService);
+//        initializerEventReceiver.execute();
 
         this.eventReceiverInitialized = true;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/503a86ff/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..bdd087b 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,17 @@ public class TopologyHandler {
     }
 
     private void initializeTenantEventReceiver() {
-        tenantEventReceiver = new TenantEventReceiver();
-        tenantEventReceiver.setExecutorService(executorService);
-        tenantEventReceiver.execute();
+        tenantEventReceiver = TenantEventReceiver.getInstance();
+//        tenantEventReceiver.setExecutorService(executorService);
+//        tenantEventReceiver.execute();
     }
 
     /**
      * Initialize application event receiver
      */
     private void initializeHealthStatsEventReceiver() {
-        healthStatEventReceiver = new HealthStatEventReceiver();
-        healthStatEventReceiver.setExecutorService(executorService);
+        healthStatEventReceiver = HealthStatEventReceiver.getInstance();
+//        healthStatEventReceiver.setExecutorService(executorService);
         healthStatEventReceiver.addEventListener(new MemberFaultEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -133,15 +133,15 @@ public class TopologyHandler {
                         memberFaultEvent.getMemberId()));
             }
         });
-        healthStatEventReceiver.execute();
+//        healthStatEventReceiver.execute();
     }
 
     /**
      * Initialize application event receiver
      */
     private void initializeApplicationEventReceiver() {
-        applicationsEventReceiver = new ApplicationsEventReceiver();
-        applicationsEventReceiver.setExecutorService(executorService);
+        applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
+//        applicationsEventReceiver.setExecutorService(executorService);
         applicationsEventReceiver.addEventListener(new ApplicationInstanceActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -164,7 +164,7 @@ public class TopologyHandler {
                         appInstanceInactivatedEvent.getInstanceId()));
             }
         });
-        applicationsEventReceiver.execute();
+        //applicationsEventReceiver.execute();
     }
 
     /**


[16/50] [abbrv] stratos git commit: using ScheduledThreadPoolExecutor in StratosThreadPool

Posted by is...@apache.org.
using ScheduledThreadPoolExecutor in StratosThreadPool


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

Branch: refs/heads/stratos-4.1.x
Commit: 4b15a1b8fbab3df07d9a4c542ab5286add84380c
Parents: 90008dd
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Mon Dec 7 10:45:30 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:49:56 2015 +0530

----------------------------------------------------------------------
 .../internal/AutoscalerServiceComponent.java    | 57 ++++++------
 .../monitor/cluster/ClusterMonitor.java         |  2 +-
 .../component/ParentComponentMonitor.java       |  2 +-
 .../context/CloudControllerContext.java         |  6 +-
 .../CloudControllerServiceComponent.java        | 21 ++---
 .../common/concurrent/locks/ReadWriteLock.java  |  5 +-
 .../threading/GracefulThreadPoolTerminator.java | 58 ++++++++++++
 .../common/threading/StratosThreadPool.java     | 96 +++++---------------
 .../internal/LoadBalancerServiceComponent.java  |  2 -
 .../LoadBalancerStatisticsExecutor.java         |  1 -
 .../StratosManagerServiceComponent.java         | 69 +++++++-------
 .../mock/iaas/services/impl/MockInstance.java   |  8 +-
 .../MockHealthStatisticsGenerator.java          |  9 +-
 13 files changed, 165 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/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 8219f71..9b1a290 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
@@ -57,10 +57,7 @@ import org.wso2.carbon.utils.ConfigurationContextService;
 
 import java.util.Iterator;
 import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 
 /**
  * @scr.component name=org.apache.stratos.autoscaler.internal.AutoscalerServiceComponent" immediate="true"
@@ -87,7 +84,7 @@ public class AutoscalerServiceComponent {
     private AutoscalerHealthStatEventReceiver autoscalerHealthStatEventReceiver;
     private AutoscalerInitializerTopicReceiver autoscalerInitializerTopicReceiver;
     private ThreadPoolExecutor executor;
-    private ScheduledExecutorService scheduler;
+    private ScheduledThreadPoolExecutor scheduler;
 
     protected void activate(ComponentContext componentContext) throws Exception {
         if (log.isDebugEnabled()) {
@@ -263,39 +260,39 @@ public class AutoscalerServiceComponent {
         }
 
         // Shutdown executor service
-        shutdownExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID);
+        //shutdownExecutorService(AutoscalerConstants.AUTOSCALER_THREAD_POOL_ID);
 
         // Shutdown scheduler
-        shutdownScheduledExecutorService(AutoscalerConstants.AUTOSCALER_SCHEDULER_ID);
+        //shutdownScheduledExecutorService(AutoscalerConstants.AUTOSCALER_SCHEDULER_ID);
 
         // Shutdown application monitor executor service
-        shutdownExecutorService(AutoscalerConstants.MONITOR_THREAD_POOL_ID);
+        //shutdownExecutorService(AutoscalerConstants.MONITOR_THREAD_POOL_ID);
 
         // Shutdown cluster monitor scheduler executor service
-        shutdownScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID);
+        //shutdownScheduledExecutorService(AutoscalerConstants.CLUSTER_MONITOR_SCHEDULER_ID);
     }
 
-    private void shutdownExecutorService(String executorServiceId) {
-        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-        if (executor != null) {
-            shutdownExecutorService(executor);
-        }
-    }
-
-    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);
-        }
-    }
+//    private void shutdownExecutorService(String executorServiceId) {
+//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+//        if (executor != null) {
+//            shutdownExecutorService(executor);
+//        }
+//    }
+//
+//    private void shutdownScheduledExecutorService(String executorServiceId) {
+//        ScheduledThreadPoolExecutor scheduledExecutor = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
+//        if (scheduledExecutor != null) {
+//            shutdownExecutorService(scheduledExecutor);
+//        }
+//    }
+//
+//    private void shutdownExecutorService(ExecutorService executorService) {
+//        try {
+//            executorService.shutdownNow();
+//        } catch (Exception e) {
+//            log.warn("An error occurred while shutting down executor service", e);
+//        }
+//    }
 
     protected void setRegistryService(RegistryService registryService) {
         if (log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
index 32bf037..ead9130 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java
@@ -86,7 +86,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 public class ClusterMonitor extends Monitor {
 
     private static final Log log = LogFactory.getLog(ClusterMonitor.class);
-    private final ScheduledExecutorService scheduler;
+    private final ScheduledThreadPoolExecutor scheduler;
     private final ThreadPoolExecutor executor;
     protected boolean hasFaultyMember = false;
     protected ClusterContext clusterContext;

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
index 1366a3f..9efdf7c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java
@@ -68,7 +68,7 @@ public abstract class ParentComponentMonitor extends Monitor {
     private static final Log log = LogFactory.getLog(ParentComponentMonitor.class);
 
     //Scheduler executor service to execute this monitor in a thread
-    private final ScheduledExecutorService scheduler = StratosThreadPool.getScheduledExecutorService(
+    private final ScheduledThreadPoolExecutor scheduler = StratosThreadPool.getScheduledExecutorService(
             "autoscaler.monitor.scheduler.thread.pool", 100);
     //The monitors dependency tree with all the start-able/kill-able dependencies
     protected DependencyTree startupDependencyTree;

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
index 0771d5a..9858410 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
@@ -42,9 +42,7 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException;
 import java.io.Serializable;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.locks.Lock;
 
 /**
@@ -136,8 +134,8 @@ public class CloudControllerContext implements Serializable {
     /**
      * Thread pool used in this task to execute parallel tasks.
      */
-    private transient ThreadPoolExecutor executor = StratosThreadPool
-            .getExecutorService("cloud.controller.context.thread.pool", 5, 10);
+//    private transient ThreadPoolExecutor executor = StratosThreadPool
+//            .getExecutorService("cloud.controller.context.thread.pool", 5, 10);
 
     /**
      * Map of registered {@link org.apache.stratos.cloud.controller.domain.Cartridge}s

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/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 710e400..0d02d46 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
@@ -47,10 +47,7 @@ import org.wso2.carbon.registry.core.service.RegistryService;
 import org.wso2.carbon.registry.core.session.UserRegistry;
 import org.wso2.carbon.utils.ConfigurationContextService;
 
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 
 /**
  * Registering Cloud Controller Service.
@@ -84,7 +81,7 @@ public class CloudControllerServiceComponent {
     private ApplicationEventReceiver applicationEventReceiver;
     private InitializerTopicReceiver initializerTopicReceiver;
     private ThreadPoolExecutor executor;
-    private ScheduledExecutorService scheduler;
+    private ScheduledThreadPoolExecutor scheduler;
 
     protected void activate(final ComponentContext context) {
         if (log.isDebugEnabled()) {
@@ -264,18 +261,18 @@ public class CloudControllerServiceComponent {
         }
 
         // Shutdown executor service
-        shutdownExecutorService(THREAD_POOL_ID);
+        //shutdownExecutorService(THREAD_POOL_ID);
 
         // Shutdown scheduler
         shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
     }
 
-    private void shutdownExecutorService(String executorServiceId) {
-        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-        if (executor != null) {
-            shutdownExecutorService(executor);
-        }
-    }
+//    private void shutdownExecutorService(String executorServiceId) {
+//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+//        if (executor != null) {
+//            shutdownExecutorService(executor);
+//        }
+//    }
 
     private void shutdownScheduledExecutorService(String executorServiceId) {
         ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/concurrent/locks/ReadWriteLock.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/concurrent/locks/ReadWriteLock.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/concurrent/locks/ReadWriteLock.java
index 6d91330..90c2f22 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/concurrent/locks/ReadWriteLock.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/concurrent/locks/ReadWriteLock.java
@@ -28,6 +28,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
@@ -62,9 +63,9 @@ public class ReadWriteLock {
             readWriteLockMonitorInterval = Integer.getInteger("read.write.lock.monitor.interval", 30000);
             threadPoolSize = Integer.getInteger(READ_WRITE_LOCK_MONITOR_THREAD_POOL_SIZE_KEY, 10);
 
-            ScheduledExecutorService scheduledExecutorService = StratosThreadPool.getScheduledExecutorService(
+            ScheduledThreadPoolExecutor scheduledExecutor = StratosThreadPool.getScheduledExecutorService(
                     READ_WRITE_LOCK_MONITOR_THREAD_POOL, threadPoolSize);
-            scheduledExecutorService.scheduleAtFixedRate(new ReadWriteLockMonitor(this),
+            scheduledExecutor.scheduleAtFixedRate(new ReadWriteLockMonitor(this),
                     readWriteLockMonitorInterval, readWriteLockMonitorInterval, TimeUnit.MILLISECONDS);
             if (log.isDebugEnabled()) {
                 log.debug(String.format("Lock monitor scheduled: [lock-name] %s [interval] %d seconds",

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
new file mode 100644
index 0000000..70cda66
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/threading/GracefulThreadPoolTerminator.java
@@ -0,0 +1,58 @@
+/*
+ * 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.common.threading;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+public class GracefulThreadPoolTerminator implements Callable<String> {
+
+    private static final Log log = LogFactory.getLog(GracefulThreadPoolTerminator.class);
+
+    private String threadPoolId;
+    private ThreadPoolExecutor executor;
+
+    public GracefulThreadPoolTerminator (String threadPoolId, ThreadPoolExecutor executor) {
+        this.threadPoolId = threadPoolId;
+        this.executor = executor;
+    }
+
+    @Override
+    public String call() {
+        // try to shut down gracefully
+        executor.shutdown();
+        // wait 10 secs till terminated
+        try {
+            if (!executor.awaitTermination(10, TimeUnit.SECONDS)) {
+                log.info("Thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
+                        "timeout, forcefully shutting down");
+                executor.shutdownNow();
+            }
+        } catch (InterruptedException e) {
+            // interrupted, shutdown now
+            executor.shutdownNow();
+        }
+        return threadPoolId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/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 50b53bb..4eb8304 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,16 +36,16 @@ public class StratosThreadPool {
     private static final Log log = LogFactory.getLog(StratosThreadPool.class);
 
     private static Map<String, ThreadPoolExecutor> executorMap = new ConcurrentHashMap<>();
-    private static Map<String, ScheduledExecutorService> scheduledServiceMap = new ConcurrentHashMap<String, ScheduledExecutorService>();
-    private static Object executorServiceMapLock = new Object();
-    private static Object scheduledServiceMapLock = new Object();
+    private static Map<String, ScheduledThreadPoolExecutor> scheduledExecutorMap = new ConcurrentHashMap<>();
+    private static final Object executorServiceMapLock = new Object();
+    private static final Object scheduledServiceMapLock = new Object();
 
     /**
-     * Return the executor service based on the identifier and thread pool size
+     * Return the executor based on the identifier and thread pool size
      *
      * @param identifier     Thread pool identifier name
      * @param maxSize Thread pool size
-     * @return ExecutorService
+     * @return ThreadPoolExecutor
      */
     public static ThreadPoolExecutor getExecutorService(String identifier, int initialSize, int
             maxSize) {
@@ -69,23 +69,23 @@ public class StratosThreadPool {
      *
      * @param identifier     Thread pool identifier name
      * @param threadPoolSize Thread pool size
-     * @return
+     * @return ScheduledThreadPoolExecutor
      */
-    public static ScheduledExecutorService getScheduledExecutorService(String identifier, int threadPoolSize) {
-        ScheduledExecutorService scheduledExecutorService = scheduledServiceMap.get(identifier);
-        if (scheduledExecutorService == null) {
+    public static ScheduledThreadPoolExecutor getScheduledExecutorService(String identifier, int threadPoolSize) {
+        ScheduledThreadPoolExecutor scheduledExecutor = scheduledExecutorMap.get(identifier);
+        if (scheduledExecutor == null) {
             synchronized (scheduledServiceMapLock) {
-                if (scheduledExecutorService == null) {
-                    scheduledExecutorService = Executors.newScheduledThreadPool(threadPoolSize,
+                if (scheduledExecutor == null) {
+                    scheduledExecutor = new ScheduledThreadPoolExecutor(threadPoolSize,
                             new StratosThreadFactory(identifier));
-                    scheduledServiceMap.put(identifier, scheduledExecutorService);
-                    log.info(String.format("Thread pool created: [type] Scheduled Executor Service [id] %s [size] %d",
+                    scheduledExecutorMap.put(identifier, scheduledExecutor);
+                    log.info(String.format("Thread pool created: [type] Scheduled Executor [id] %s [size] %d",
                             identifier, threadPoolSize));
                 }
             }
 
         }
-        return scheduledExecutorService;
+        return scheduledExecutor;
     }
 
     public static void shutDownAllThreadPoolsGracefully () {
@@ -102,7 +102,8 @@ public class StratosThreadPool {
         try {
             threadPoolTerminator = Executors.newFixedThreadPool(threadPoolCount);
             for (Map.Entry<String, ThreadPoolExecutor> entry : executorMap.entrySet()) {
-                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new GracefulThreadPoolTerminator(entry.getKey(),
+                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new
+                        GracefulThreadPoolTerminator(entry.getKey(),
                         entry.getValue())));
             }
             // use the Future to block until shutting down is done
@@ -130,7 +131,7 @@ public class StratosThreadPool {
 
     public static void shutDownAllScheduledExecutorsGracefully () {
 
-        int threadPoolCount = scheduledServiceMap.size();
+        int threadPoolCount = scheduledExecutorMap.size();
         if (threadPoolCount == 0) {
             log.info("No thread pools found to shut down");
             return;
@@ -141,10 +142,9 @@ public class StratosThreadPool {
 
         try {
             threadPoolTerminator = Executors.newFixedThreadPool(threadPoolCount);
-            for (Map.Entry<String, ScheduledExecutorService> entry : scheduledServiceMap.entrySet()) {
-                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new GracefulScheduledThreadPoolTerminator(entry.getKey(),
+            for (Map.Entry<String, ScheduledThreadPoolExecutor> entry : scheduledExecutorMap.entrySet())
+                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new GracefulThreadPoolTerminator(entry.getKey(),
                         entry.getValue())));
-            }
             // use the Future to block until shutting down is done
             for (Future<String> threadPoolTerminatorFuture : threadPoolTerminatorFutures) {
                 removeScheduledThreadPoolFromCache(threadPoolTerminatorFuture.get());
@@ -154,10 +154,12 @@ public class StratosThreadPool {
             log.error("Error in shutting down thread pools", e);
         } catch (ExecutionException e) {
             log.error("Error in shutting down thread pools", e);
+        } catch (Exception e) {
+            log.error("Error in shutting down thread pools", e);
         } finally {
             // if there are any remaining thread pools, shut down immediately
-            if (!scheduledServiceMap.isEmpty()) {
-                for (Map.Entry<String, ScheduledExecutorService> entry : scheduledServiceMap.entrySet()) {
+            if (!scheduledExecutorMap.isEmpty()) {
+                for (Map.Entry<String, ScheduledThreadPoolExecutor> entry : scheduledExecutorMap.entrySet()) {
                     entry.getValue().shutdownNow();
                     removeScheduledThreadPoolFromCache(entry.getKey());
                 }
@@ -176,59 +178,9 @@ public class StratosThreadPool {
     }
 
     private static void removeScheduledThreadPoolFromCache(String terminatedPoolId) {
-        if (scheduledServiceMap.remove(terminatedPoolId) != null) {
+        if (scheduledExecutorMap.remove(terminatedPoolId) != null) {
             log.info("Scheduled Thread pool [id] " + terminatedPoolId + " is successfully shut down" +
                     " and removed from the cache");
         }
     }
-
-    private static class GracefulThreadPoolTerminator implements Callable {
-
-        private String threadPoolId;
-        private ThreadPoolExecutor executor;
-
-        public GracefulThreadPoolTerminator (String threadPoolId, ThreadPoolExecutor executor) {
-            this.threadPoolId = threadPoolId;
-            this.executor = executor;
-        }
-
-        @Override
-        public String call() throws Exception {
-            log.info("Shutting down thread pool " + threadPoolId);
-            // try to shut down gracefully
-            executor.shutdown();
-            // wait 10 secs till terminated
-            if (!executor.awaitTermination(10, TimeUnit.SECONDS)) {
-                log.info("Thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
-                        "timeout, forcefully shutting down");
-                executor.shutdownNow();
-            }
-            return threadPoolId;
-        }
-    }
-
-    private static class GracefulScheduledThreadPoolTerminator implements Callable {
-
-        private String threadPoolId;
-        private ScheduledExecutorService scheduledExecutor;
-
-        public GracefulScheduledThreadPoolTerminator (String threadPoolId, ScheduledExecutorService scheduledExecutor) {
-            this.threadPoolId = threadPoolId;
-            this.scheduledExecutor = scheduledExecutor;
-        }
-
-        @Override
-        public String call() throws Exception {
-            log.info("Shutting down scheduled thread pool " + threadPoolId);
-            // try to shut down gracefully
-            scheduledExecutor.shutdown();
-            // wait 10 secs till terminated
-            if (!scheduledExecutor.awaitTermination(10, TimeUnit.SECONDS)) {
-                log.info("Scheduled thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
-                        "timeout, forcefully shutting down");
-                scheduledExecutor.shutdownNow();
-            }
-            return threadPoolId;
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/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 cb2297a..e7b45f8 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
@@ -63,8 +63,6 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
 
 import java.io.File;
 import java.util.Collection;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * @scr.component name="org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent" immediate="true"

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
index e625ec7..486b98b 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/statistics/LoadBalancerStatisticsExecutor.java
@@ -23,7 +23,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.load.balancer.util.LoadBalancerConstants;
 
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ThreadPoolExecutor;
 
 /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/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 0486d84..7de06ae 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
@@ -48,10 +48,7 @@ import org.wso2.carbon.user.core.UserStoreException;
 import org.wso2.carbon.user.core.service.RealmService;
 import org.wso2.carbon.utils.ConfigurationContextService;
 
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 
 /**
  * @scr.component name="org.wso2.carbon.hosting.mgt.internal.StratosManagerServiceComponent"
@@ -94,7 +91,7 @@ public class StratosManagerServiceComponent {
     private StratosManagerApplicationEventReceiver applicationEventReceiver;
     private StratosManagerInitializerTopicReceiver initializerTopicReceiver;
     private ThreadPoolExecutor executor;
-    private ScheduledExecutorService scheduler;
+    private ScheduledThreadPoolExecutor scheduler;
 
     protected void activate(final ComponentContext componentContext) throws Exception {
         if (log.isDebugEnabled()) {
@@ -339,37 +336,37 @@ public class StratosManagerServiceComponent {
         EventPublisherPool.close(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName());
         EventPublisherPool.close(MessagingUtil.Topics.TENANT_TOPIC.getTopicName());
 
-        shutdownExecutor(THREAD_POOL_ID);
-        shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
+        //shutdownExecutor(THREAD_POOL_ID);
+        //shutdownScheduledExecutorService(SCHEDULER_THREAD_POOL_ID);
     }
 
-    private void shutdownExecutor(String executorServiceId) {
-        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
-        if (executor != null) {
-            shutdownExecutor(executor);
-        }
-    }
-
-    private void shutdownScheduledExecutorService(String executorServiceId) {
-        ExecutorService executorService = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
-        if (executorService != null) {
-            shutdownExecutor(executorService);
-        }
-    }
-
-    private void shutdownExecutor(ThreadPoolExecutor executor) {
-        try {
-            executor.shutdownNow();
-        } catch (Exception e) {
-            log.warn("An error occurred while shutting down executor service", e);
-        }
-    }
-
-    private void shutdownExecutor(ExecutorService executorService) {
-        try {
-            executorService.shutdownNow();
-        } catch (Exception e) {
-            log.warn("An error occurred while shutting down executor service", e);
-        }
-    }
+//    private void shutdownExecutor(String executorServiceId) {
+//        ThreadPoolExecutor executor = StratosThreadPool.getExecutorService(executorServiceId, 1, 1);
+//        if (executor != null) {
+//            shutdownExecutor(executor);
+//        }
+//    }
+
+//    private void shutdownScheduledExecutorService(String executorServiceId) {
+//        ScheduledThreadPoolExecutor scheduledExecutor = StratosThreadPool.getScheduledExecutorService(executorServiceId, 1);
+//        if (scheduledExecutor != null) {
+//            shutdownExecutor(scheduledExecutor);
+//        }
+//    }
+
+//    private void shutdownExecutor(ThreadPoolExecutor executor) {
+//        try {
+//            executor.shutdownNow();
+//        } catch (Exception e) {
+//            log.warn("An error occurred while shutting down executor service", e);
+//        }
+//    }
+
+//    private void shutdownExecutor(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/4b15a1b8/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 df7145e..27a664e 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
@@ -62,9 +62,9 @@ public class MockInstance implements Serializable {
     private final MockInstanceContext mockInstanceContext;
     private final AtomicBoolean hasGracefullyShutdown = new AtomicBoolean(false);
 
-    private static final ThreadPoolExecutor eventListenerExecutor = StratosThreadPool
-            .getExecutorService("mock.iaas.event.listener.thread.pool", 35, 100);
-    private static final ScheduledExecutorService healthStatNotifierExecutorService = StratosThreadPool
+//    private static final ThreadPoolExecutor eventListenerExecutor = StratosThreadPool
+//            .getExecutorService("mock.iaas.event.listener.thread.pool", 35, 100);
+    private static final ScheduledThreadPoolExecutor healthStatNotifierExecutor = StratosThreadPool
             .getScheduledExecutorService("mock.iaas.health.statistics.notifier.thread.pool", 100);
 
     public MockInstance(MockInstanceContext mockInstanceContext) {
@@ -95,7 +95,7 @@ public class MockInstance implements Serializable {
             log.debug(String.format("Starting health statistics notifier: [member-id] %s",
                     mockInstanceContext.getMemberId()));
         }
-        healthStatNotifierScheduledFuture = healthStatNotifierExecutorService
+        healthStatNotifierScheduledFuture = healthStatNotifierExecutor
                 .scheduleAtFixedRate(mockHealthStatisticsNotifier, 0, HEALTH_STAT_INTERVAL, TimeUnit.SECONDS);
 
         if (log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/4b15a1b8/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java
index 1c3da6e..367b4b3 100644
--- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java
+++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java
@@ -26,10 +26,7 @@ import org.apache.stratos.mock.iaas.config.MockIaasConfig;
 
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 
 /**
  * Mock health statistics generator.
@@ -39,7 +36,7 @@ public class MockHealthStatisticsGenerator {
     private static final Log log = LogFactory.getLog(MockHealthStatisticsGenerator.class);
 
     private static volatile MockHealthStatisticsGenerator instance;
-    private static final ScheduledExecutorService scheduledExecutorService =
+    private static final ScheduledThreadPoolExecutor scheduledExecutor =
             StratosThreadPool.getScheduledExecutorService("mock.iaas.health.statistics.generator.thread.pool", 10);
 
     // Map<ServiceName, Map<ScalingFactor, ScheduledFuture>>
@@ -84,7 +81,7 @@ public class MockHealthStatisticsGenerator {
                     if (statisticsPattern.getCartridgeType().equals(serviceName) &&
                             (statisticsPattern.getSampleDuration() > 0)) {
                         MockHealthStatisticsUpdater runnable = new MockHealthStatisticsUpdater(statisticsPattern);
-                        ScheduledFuture<?> task = scheduledExecutorService.scheduleAtFixedRate(runnable, 0,
+                        ScheduledFuture<?> task = scheduledExecutor.scheduleAtFixedRate(runnable, 0,
                                 statisticsPattern.getSampleDuration(), TimeUnit.SECONDS);
                         taskList.put(statisticsPattern.getFactor().toString(), task);
                     }


[14/50] [abbrv] stratos git commit: changing fixed thread pool to dynamic

Posted by is...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 4b86529..78998c7 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);
 
@@ -41,7 +39,7 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
 
     private ApplicationsEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("application-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("application-event-receiver", 35, 100);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);
@@ -73,14 +71,14 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.APPLICATION_TOPIC.getTopicName(),
                     messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Application status event message receiver thread started");
             }
 
             // Start Application status event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
 
             if (log.isDebugEnabled()) {
                 log.debug("Application status event message delegator thread started");
@@ -99,7 +97,7 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     }
 
     public void initializeCompleteApplicationsModel() {
-        executorService.execute(new Runnable() {
+        executor.execute(new Runnable() {
             @Override
             public void run() {
                 while (!eventSubscriber.isSubscribed()) {
@@ -119,10 +117,10 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..65ca857 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.
  */
@@ -46,7 +44,7 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
 
     private ApplicationSignUpEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("application-signup-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("application-signup-event-receiver", 35, 100);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);
@@ -75,14 +73,14 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.APPLICATION_SIGNUP_TOPIC.getTopicName(),
                     messageListener);
             // subscriber.setMessageListener(messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Application signup event message receiver thread started");
             }
 
             // Start topology event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("Application signup event message delegator thread started");
             }
@@ -96,7 +94,7 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     }
 
     public void initializeCompleteApplicationSignUps() {
-        executorService.execute(new Runnable() {
+        executor.execute(new Runnable() {
             @Override
             public void run() {
                 while (!eventSubscriber.isSubscribed()) {
@@ -121,10 +119,10 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..fbfbc4b 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,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 instance notifier information from message broker.
  */
@@ -41,7 +39,7 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
 
     private ClusterStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("clusterstatus-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("clusterstatus-event-receiver", 35, 100);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);
@@ -68,14 +66,14 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.CLUSTER_STATUS_TOPIC.getTopicName(), messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("InstanceNotifier event message receiver thread started");
             }
 
             // Start instance notifier event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("InstanceNotifier event message delegator thread started");
             }
@@ -99,10 +97,10 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
 //    }
 //
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..5d80d32 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.
  */
@@ -43,7 +41,8 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
 
     private DomainMappingEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("domainmapping-event-receiver", 35,
+                100);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -71,7 +70,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.DOMAIN_MAPPING_TOPIC.getTopicName(), messageListener);
             // subscriber.setMessageListener(messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
 
             if (log.isDebugEnabled()) {
@@ -79,7 +78,7 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
             }
 
             // Start topology event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("Domain mapping event message delegator thread started");
             }
@@ -98,10 +97,10 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
 //    }
 //
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..e7dfb46 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
  */
@@ -42,7 +40,7 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
 
     private HealthStatEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("healthstat-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("healthstat-event-receiver", 35, 100);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);
@@ -71,13 +69,13 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.HEALTH_STAT_TOPIC.getTopicName(), messageListener);
 
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Health stats event message delegator thread started");
             }
             // Start health stat event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
         } catch (Exception e) {
             if (log.isErrorEnabled()) {
                 log.error("Health stats receiver failed", e);
@@ -92,10 +90,10 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
 //    }
 //
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..15e1b64 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,8 +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);
 
@@ -35,11 +33,11 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     private InitializerEventMessageListener messageListener;
     private EventSubscriber eventSubscriber;
     private static volatile InitializerEventReceiver instance;
-    //private ExecutorService executorService;
+    //private ExecutorService executor;
 
     private InitializerEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("initializer-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("initializer-event-receiver", 35, 100);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);
@@ -67,13 +65,13 @@ public class InitializerEventReceiver extends StratosEventReceiver {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INITIALIZER_TOPIC.getTopicName(),
                     messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Initializer event message delegator thread started");
             }
             // Start initializer event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
         } catch (Exception e) {
             if (log.isErrorEnabled()) {
                 log.error("Initializer receiver failed", e);
@@ -87,10 +85,10 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..e06a2e6 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
@@ -40,7 +40,7 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
 
     private InstanceNotifierEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
         messageListener = new InstanceNotifierEventMessageListener(messageQueue);
@@ -107,14 +107,14 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_NOTIFIER_TOPIC.getTopicName(),
                     messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Instance Notifier event message receiver thread started");
             }
 
             // Start topology event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("Instance Notifier  event message delegator thread started");
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..867f461 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,7 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
 
     private InstanceStatusEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);
@@ -67,13 +67,13 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.INSTANCE_STATUS_TOPIC.getTopicName(), messageListener);
-            executorService.submit(eventSubscriber);
+            executor.submit(eventSubscriber);
             if (log.isDebugEnabled()) {
                 log.debug("InstanceNotifier event message receiver thread started");
             }
 
             // Start instance notifier event message delegate thread
-            executorService.submit(messageDelegator);
+            executor.submit(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("InstanceNotifier event message delegator thread started");
             }
@@ -95,10 +95,10 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..39ef2fb 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.
@@ -45,7 +43,7 @@ public class TenantEventReceiver extends StratosEventReceiver {
 
     private TenantEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("tenant-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("tenant-event-receiver", 35, 100);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);
@@ -68,22 +66,22 @@ public class TenantEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 
     private void execute() {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.TENANT_TOPIC.getTopicName(), messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Tenant event message receiver thread started");
             }
 
             // Start tenant event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("Tenant event message delegator thread started");
             }
@@ -97,7 +95,7 @@ public class TenantEventReceiver extends StratosEventReceiver {
     }
 
     public void initializeCompleteTenant() {
-        executorService.execute(new Runnable() {
+        executor.execute(new Runnable() {
             @Override
             public void run() {
                 while (!eventSubscriber.isSubscribed()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..ea1571e 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.
@@ -47,7 +45,7 @@ public class TopologyEventReceiver extends StratosEventReceiver {
 
     private TopologyEventReceiver() {
         // TODO: make pool size configurable
-        this.executorService = StratosThreadPool.getExecutorService("topology-event-receiver", 100);
+        this.executor = StratosThreadPool.getExecutorService("topology-event-receiver", 35, 100);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);
@@ -74,14 +72,14 @@ public class TopologyEventReceiver extends StratosEventReceiver {
         try {
             // Start topic subscriber thread
             eventSubscriber = new EventSubscriber(MessagingUtil.Topics.TOPOLOGY_TOPIC.getTopicName(), messageListener);
-            executorService.execute(eventSubscriber);
+            executor.execute(eventSubscriber);
 
             if (log.isDebugEnabled()) {
                 log.debug("Topology event message receiver thread started");
             }
 
             // Start topology event message delegator thread
-            executorService.execute(messageDelegator);
+            executor.execute(messageDelegator);
             if (log.isDebugEnabled()) {
                 log.debug("Topology event message delegator thread started");
             }
@@ -100,7 +98,7 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     }
 
     public void initializeCompleteTopology() {
-        executorService.execute(new Runnable() {
+        executor.execute(new Runnable() {
             @Override
             public void run() {
                 while (!eventSubscriber.isSubscribed()) {
@@ -119,10 +117,10 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     }
 
 //    public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 //
-//    public void setExecutorService(ExecutorService executorService) {
-//        this.executorService = executorService;
+//    public void setExecutorService(ExecutorService executor) {
+//        this.executor = executor;
 //    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 e1bf929..d9934db 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,11 @@ 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 executor;
 
     public MetadataApplicationEventReceiver() {
         this.applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
-        //executorService = StratosThreadPool.getExecutorService(Constants
+        //executor = StratosThreadPool.getExecutorService(Constants
         //        .METADATA_SERVICE_THREAD_POOL_ID, 20);
         addEventListeners();
     }
@@ -88,7 +88,7 @@ public class MetadataApplicationEventReceiver {
     }
 
  //   public ExecutorService getExecutorService() {
-//        return executorService;
+//        return executor;
 //    }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 f16282d..44a210d 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
@@ -38,11 +38,11 @@ import java.util.concurrent.ExecutorService;
 public class MetadataTopologyEventReceiver {
     private static final Log log = LogFactory.getLog(MetadataTopologyEventReceiver.class);
     private TopologyEventReceiver topologyEventReceiver;
-    private ExecutorService executorService;
+    //private ExecutorService executorService;
 
     public MetadataTopologyEventReceiver() {
         this.topologyEventReceiver = TopologyEventReceiver.getInstance();
-//        //executorService = StratosThreadPool.getExecutorService(Constants
+//        //executor = StratosThreadPool.getExecutorService(Constants
 //                .METADATA_SERVICE_THREAD_POOL_ID, 20);
         addEventListeners();
     }
@@ -84,7 +84,7 @@ public class MetadataTopologyEventReceiver {
 //        }
 //    }
 
-    public ExecutorService getExecutorService() {
-        return executorService;
-    }
+//    public ExecutorService getExecutorService() {
+//        return executorService;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 9886335..df7145e 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
@@ -41,10 +41,7 @@ import org.apache.stratos.mock.iaas.event.publisher.MockMemberEventPublisher;
 import org.apache.stratos.mock.iaas.statistics.publisher.MockHealthStatisticsNotifier;
 
 import java.io.Serializable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -65,8 +62,8 @@ public class MockInstance implements Serializable {
     private final MockInstanceContext mockInstanceContext;
     private final AtomicBoolean hasGracefullyShutdown = new AtomicBoolean(false);
 
-    private static final ExecutorService eventListenerExecutorService = StratosThreadPool
-            .getExecutorService("mock.iaas.event.listener.thread.pool", 100);
+    private static final ThreadPoolExecutor eventListenerExecutor = StratosThreadPool
+            .getExecutorService("mock.iaas.event.listener.thread.pool", 35, 100);
     private static final ScheduledExecutorService healthStatNotifierExecutorService = StratosThreadPool
             .getScheduledExecutorService("mock.iaas.health.statistics.notifier.thread.pool", 100);
 
@@ -151,7 +148,7 @@ public class MockInstance implements Serializable {
                 }
             }
         });
-//        topologyEventReceiver.setExecutorService(eventListenerExecutorService);
+//        topologyEventReceiver.setExecutorService(eventListenerExecutor);
 //        topologyEventReceiver.execute();
         if (log.isDebugEnabled()) {
             log.debug(String.format(
@@ -185,7 +182,7 @@ 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() {
+//        eventListenerExecutor.submit(new Runnable() {
 //            @Override
 //            public void run() {
 //                instanceNotifierEventReceiver.execute();

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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..75bdde9 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
@@ -26,7 +26,7 @@ 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 java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * AWS extension main class.
@@ -34,7 +34,7 @@ import java.util.concurrent.ExecutorService;
 
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
-	private static ExecutorService executorService;
+	private static ThreadPoolExecutor executor;
 
 	public static void main(String[] args) {
 
@@ -48,8 +48,8 @@ public class Main {
 				log.info("AWS extension started");
 			}
 
-			executorService = StratosThreadPool.getExecutorService(
-					"aws.extension.thread.pool", 10);
+			executor = StratosThreadPool.getExecutorService(
+					"aws.extension.thread.pool", 5, 10);
 			// Validate runtime parameters
 			AWSExtensionContext.getInstance().validate();
 			TopologyProvider topologyProvider = new TopologyProvider();
@@ -58,7 +58,7 @@ public class Main {
 					topologyProvider) : null;
 			extension = new LoadBalancerExtension(new AWSLoadBalancer(),
 					statisticsReader, topologyProvider);
-			extension.setExecutorService(executorService);
+			extension.setExecutorService(executor);
 			extension.execute();
 
 			// Add shutdown hook

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/extensions/load-balancer/modules/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Main.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Main.java b/extensions/load-balancer/modules/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Main.java
index f56541d..03156fd 100644
--- a/extensions/load-balancer/modules/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Main.java
+++ b/extensions/load-balancer/modules/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/Main.java
@@ -26,14 +26,14 @@ 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 java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * HAProxy extension main class.
  */
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
-	private static ExecutorService executorService;
+	private static ThreadPoolExecutor executor;
 
 	public static void main(String[] args) {
 
@@ -63,14 +63,14 @@ public class Main {
                 }
             });
 
-			executorService = StratosThreadPool.getExecutorService("haproxy.extension.thread.pool", 10);
+			executor = StratosThreadPool.getExecutorService("haproxy.extension.thread.pool", 5, 10);
 			// Validate runtime parameters
 			HAProxyContext.getInstance().validate();
             TopologyProvider topologyProvider = new TopologyProvider();
             HAProxyStatisticsReader statisticsReader = HAProxyContext.getInstance().isCEPStatsPublisherEnabled() ?
                     new HAProxyStatisticsReader(topologyProvider) : null;
             extension = new LoadBalancerExtension(new HAProxy(), statisticsReader, topologyProvider);
-			extension.setExecutorService(executorService);
+			extension.setExecutorService(executor);
 			extension.execute();
 		} catch (Exception e) {
 			if (log.isErrorEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/extensions/load-balancer/modules/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/Main.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/Main.java b/extensions/load-balancer/modules/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/Main.java
index 52463e0..c5491ae 100644
--- a/extensions/load-balancer/modules/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/Main.java
+++ b/extensions/load-balancer/modules/lvs-extension/src/main/java/org/apache/stratos/lvs/extension/Main.java
@@ -26,14 +26,14 @@ 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 java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * LVS extension main class.
  */
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
-	private static ExecutorService executorService;
+	private static ThreadPoolExecutor executor;
 
 	public static void main(String[] args) {
 
@@ -63,14 +63,14 @@ public class Main {
                 }
             });
 
-			executorService = StratosThreadPool.getExecutorService("lvs.extension.thread.pool", 10);
+			executor = StratosThreadPool.getExecutorService("lvs.extension.thread.pool", 5, 10);
 			// Validate runtime parameters
 			LVSContext.getInstance().validate();
             TopologyProvider topologyProvider = new TopologyProvider();
             LVSStatisticsReader statisticsReader = LVSContext.getInstance().isCEPStatsPublisherEnabled() ?
                     new LVSStatisticsReader(topologyProvider) : null;
             extension = new LoadBalancerExtension(new LVS(), statisticsReader, topologyProvider);
-			extension.setExecutorService(executorService);
+			extension.setExecutorService(executor);
 			extension.execute();
 		} catch (Exception e) {
 			if (log.isErrorEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/Main.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/Main.java b/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/Main.java
index ab0eb7a..b10e360 100644
--- a/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/Main.java
+++ b/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/Main.java
@@ -26,14 +26,14 @@ 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 java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * Nginx extension main class.
  */
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
-	private static ExecutorService executorService;
+	private static ThreadPoolExecutor executor;
 
 	public static void main(String[] args) {
 
@@ -63,14 +63,14 @@ public class Main {
                 }
             });
 
-			executorService = StratosThreadPool.getExecutorService("nginx.extension.thread.pool", 10);
+			executor = StratosThreadPool.getExecutorService("nginx.extension.thread.pool", 5, 10);
 			// Validate runtime parameters
 			NginxContext.getInstance().validate();
             TopologyProvider topologyProvider = new TopologyProvider();
             NginxStatisticsReader statisticsReader = NginxContext.getInstance().isCEPStatsPublisherEnabled() ?
                     new NginxStatisticsReader(topologyProvider) : null;
             extension = new LoadBalancerExtension(new Nginx(), statisticsReader, topologyProvider);
-			extension.setExecutorService(executorService);
+			extension.setExecutorService(executor);
 			extension.execute();
 		} catch (Exception e) {
 			if (log.isErrorEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 4c8f19b..5b951dd 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", testThreadPoolSize);
         topologyEventReceiver = TopologyEventReceiver.getInstance();
 //        topologyEventReceiver.setExecutorService(executorService);
 //        topologyEventReceiver.execute();

http://git-wip-us.apache.org/repos/asf/stratos/blob/cef4fe1b/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 bdd087b..a91c034 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
@@ -49,8 +49,8 @@ import org.apache.stratos.mock.iaas.client.MockIaasApiClient;
 import java.rmi.RemoteException;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
+import java.util.concurrent.ThreadPoolExecutor;
 
 import static org.testng.AssertJUnit.*;
 
@@ -75,7 +75,8 @@ public class TopologyHandler {
     private TopologyEventReceiver topologyEventReceiver;
     private TenantEventReceiver tenantEventReceiver;
     private ApplicationSignUpEventReceiver applicationSignUpEventReceiver;
-    private ExecutorService executorService = StratosThreadPool.getExecutorService("stratos.integration.test.pool", 30);
+    private ThreadPoolExecutor executor = StratosThreadPool.getExecutorService("stratos.integration" +
+            ".test.pool", 20, 30);
     private Map<String, Long> terminatedMembers = new ConcurrentHashMap<>();
     private Map<String, Long> terminatingMembers = new ConcurrentHashMap<>();
     private Map<String, Long> createdMembers = new ConcurrentHashMap<String, Long>();
@@ -109,13 +110,13 @@ public class TopologyHandler {
 
     private void initializeApplicationSignUpEventReceiver() {
         applicationSignUpEventReceiver = ApplicationSignUpEventReceiver.getInstance();
-//        applicationSignUpEventReceiver.setExecutorService(executorService);
+//        applicationSignUpEventReceiver.setExecutorService(executor);
 //        applicationSignUpEventReceiver.execute();
     }
 
     private void initializeTenantEventReceiver() {
         tenantEventReceiver = TenantEventReceiver.getInstance();
-//        tenantEventReceiver.setExecutorService(executorService);
+//        tenantEventReceiver.setExecutorService(executor);
 //        tenantEventReceiver.execute();
     }
 
@@ -124,7 +125,7 @@ public class TopologyHandler {
      */
     private void initializeHealthStatsEventReceiver() {
         healthStatEventReceiver = HealthStatEventReceiver.getInstance();
-//        healthStatEventReceiver.setExecutorService(executorService);
+//        healthStatEventReceiver.setExecutorService(executor);
         healthStatEventReceiver.addEventListener(new MemberFaultEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -141,7 +142,7 @@ public class TopologyHandler {
      */
     private void initializeApplicationEventReceiver() {
         applicationsEventReceiver = ApplicationsEventReceiver.getInstance();
-//        applicationsEventReceiver.setExecutorService(executorService);
+//        applicationsEventReceiver.setExecutorService(executor);
         applicationsEventReceiver.addEventListener(new ApplicationInstanceActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -172,7 +173,7 @@ public class TopologyHandler {
      */
     private void initializeTopologyEventReceiver() {
         topologyEventReceiver = TopologyEventReceiver.getInstance();
-//        topologyEventReceiver.setExecutorService(executorService);
+//        topologyEventReceiver.setExecutorService(executor);
         topologyEventReceiver.addEventListener(new MemberActivatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -315,7 +316,7 @@ public class TopologyHandler {
         };
         applicationsEventReceiver.addEventListener(activatedEventListener);
 
-        Future future = executorService.submit(new Runnable() {
+        Future future = executor.submit(new Runnable() {
             @Override
             public void run() {
                 Application application = ApplicationManager.getApplications().getApplication(applicationId);
@@ -391,7 +392,7 @@ public class TopologyHandler {
         };
         applicationsEventReceiver.addEventListener(inactivatedEventListener);
 
-        Future future = executorService.submit(new Runnable() {
+        Future future = executor.submit(new Runnable() {
             @Override
             public void run() {
                 Application application = ApplicationManager.getApplications().getApplication(applicationId);


[20/50] [abbrv] stratos git commit: initial changes for restoring initial artifacts after signup removal

Posted by is...@apache.org.
initial changes for restoring initial artifacts after signup removal


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

Branch: refs/heads/stratos-4.1.x
Commit: 12a1660832f37fdf0f0d823b7100ff364d3a3ded
Parents: 1570afd
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 1 11:07:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../cartridge.agent/constants.py                |  2 +
 .../modules/artifactmgt/git/agentgithandler.py  | 22 ++++----
 .../modules/util/cartridgeagentutils.py         | 55 ++++++++++++++++++++
 .../plugins/DefaultArtifactCheckout.py          | 34 +++++++-----
 4 files changed, 86 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/12a16608/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
index cd2ce36..4672579 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/constants.py
@@ -140,3 +140,5 @@ MONITORING_RECEIVER_PORT = "monitoring.server.port"
 MONITORING_RECEIVER_SECURE_PORT = "monitoring.server.secure.port"
 MONITORING_SERVER_ADMIN_USERNAME = "monitoring.server.admin.username"
 MONITORING_SERVER_ADMIN_PASSWORD = "monitoring.server.admin.password"
+
+BACKUP_DIR_SUFFIX = "_backup"

http://git-wip-us.apache.org/repos/asf/stratos/blob/12a16608/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
index 690285c..dfa8089 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
@@ -28,10 +28,10 @@ import time
 from config import Config
 from exception import GitRepositorySynchronizationException
 from git import *
-import errno
 
 from ...util.asyncscheduledtask import AbstractAsyncScheduledTask, ScheduledExecutor
 from ...util.log import LogFactory
+from ...util.cartridgeagentutils import Utils
 
 
 class AgentGitHandler:
@@ -316,7 +316,9 @@ class AgentGitHandler:
                 "Could not remove repository folder for tenant:%s  %s" % (git_repo.tenant_id, e))
 
         # restore default artifacts
-        AgentGitHandler.restore_default_artifacts("/tmp/default_artifacts", git_repo.local_repo_path)
+        if Utils.directory_exists(Utils.strip_trailing_slash(git_repo.local_repo_path) +
+                                          constants.BACKUP_DIR_SUFFIX):
+            AgentGitHandler.restore_default_artifacts(git_repo.local_repo_path)
 
         AgentGitHandler.clear_repo(tenant_id)
         AgentGitHandler.log.info("Git repository deleted for tenant %s" % git_repo.tenant_id)
@@ -324,19 +326,13 @@ class AgentGitHandler:
         return True
 
     @staticmethod
-    def restore_default_artifacts (default_artifact_backup_location, local_repo_path):
+    def restore_default_artifacts(default_dir):
         try:
-            if os.path.isdir(default_artifact_backup_location):
-                # first remove all the artifacts in the local_repo_path
-                if os.listdir(local_repo_path):
-                    # non-empty
-                    filelist = [f for f in os.listdir(local_repo_path)]
-                    for f in filelist:
-                        GitUtils.delete_folder_tree(local_repo_path + '/' + f)
-            AgentGitHandler.log.info('Restoring default artifacts from ' + default_artifact_backup_location + ' to ' + local_repo_path)
-            shutil.copytree(default_artifact_backup_location, local_repo_path)
+            Utils.move_directory(Utils.strip_trailing_slash(default_dir) + constants.BACKUP_DIR_SUFFIX, default_dir)
+            AgentGitHandler.log.info('Restored contents from backup location ' +Utils.strip_trailing_slash(default_dir)
+                                     + constants.BACKUP_DIR_SUFFIX)
         except OSError as e:
-            AgentGitHandler.log.error('Contents of ' + default_artifact_backup_location + ' not restored. Error: %s' % e)
+            AgentGitHandler.log.error('Contents of ' + default_dir + ' not restored. Error: %s' % e)
 
     @staticmethod
     def execute_git_command(command, repo_path):

http://git-wip-us.apache.org/repos/asf/stratos/blob/12a16608/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
index e5ad877..532dc5f 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/util/cartridgeagentutils.py
@@ -21,6 +21,8 @@ import time
 import socket
 import string
 import hashlib
+import shutil
+import os
 
 from log import LogFactory
 
@@ -141,6 +143,59 @@ def check_port_active(ip_address, port):
         log.debug("Port %s is not active" % port)
         return False
 
+class Utils (object):
+
+    @staticmethod
+    def directory_exists(dir):
+        """
+        Checks if the given directory exists
+        :param dir: directory to check
+        :return: True if the directory dir exists, else False
+        :rtype: bool
+        """
+        try:
+            return os.path.isdir(dir)
+        except OSError as e:
+            log.error("Unable to check directory existance [%s]" % e)
+            return False
+
+    @staticmethod
+    def copy_directory(src, destination):
+        """
+        Copies if the directory 'src' to 'destination'
+        :param src: location of directory to copy
+        :param destination: new directory location
+        """
+        try:
+            shutil.copytree(src, destination)
+            log.debug("Directory [%s] copied to [%s]" % (src, destination))
+        except OSError as e:
+            log.error('Directory not copied. Error: %s' % e)
+
+    @staticmethod
+    def strip_trailing_slash(string):
+        """
+        If the string has a trailing '/', removes it
+        :param string: string to check
+        :return: string without a trailing '/'
+        :rtype: string
+        """
+        if string.endswith('/'):
+            return string[:-1]
+        return string
+
+    @staticmethod
+    def move_directory(src, destination):
+        """
+        Moves if the directory 'src' to 'destination'
+        :param src: location of directory to move
+        :param destination: new directory location
+        """
+        try:
+            shutil.move(src, destination)
+            log.debug("Directory [%s] moved to [%s]" % (src, destination))
+        except OSError as e:
+            log.error('Directory not moved. Error: %s' % e)
 
 class IncrementalCeilingListIterator(object):
     """

http://git-wip-us.apache.org/repos/asf/stratos/blob/12a16608/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index 1dbf645..0a45d91 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -17,12 +17,12 @@
 
 from plugins.contracts import IArtifactCheckoutPlugin
 from modules.util.log import LogFactory
+from modules.util.cartridgeagentutils import Utils
 from modules.artifactmgt.git.agentgithandler import AgentGitHandler
 from config import Config
 import constants
 from exception import *
 import shutil
-import errno
 import os
 
 
@@ -94,8 +94,13 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
             self.log.info("Executing git clone: [tenant-id] %s [repo-url] %s, [repo path] %s",
                           git_repo.tenant_id, git_repo.repo_url, git_repo.local_repo_path)
 
-            # copy default artifacts (if any) to a /tmp/default_artifacts
-            self.backupDefaultArtifacts(git_repo.local_repo_path, "/tmp/default_artifacts")
+            # copy default artifacts (if any) to a a temp location
+            # if directory name is dir, the backup directory name would be dir_backup
+            if self.initial_artifacts_exists(git_repo.local_repo_path):
+                self.log.info("Default artifacts exist at " + git_repo.local_repo_path)
+                self.backup_initial_artifacts(git_repo.local_repo_path)
+            else:
+                self.log.info("No default artifacts exist at " + git_repo.local_repo_path)
 
             try:
                 git_repo = AgentGitHandler.clone(git_repo)
@@ -109,17 +114,18 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                 AgentGitHandler.retry_clone(git_repo)
                 AgentGitHandler.add_repo(git_repo)
 
-    def backupDefaultArtifacts(src, dest):
+    def initial_artifacts_exists(self, dir):
         try:
-            if not os.path.isdir(src):
-                self.log.info ('Direcotry ' + src + ' does not exist')
-                return
-            if os.path.isdir(dest):
-                self.log.info('Directory ' + dest + ' already exists, will delete')
-                shutil.rmtree(dest)
-            self.log.info('Copying default artifacts from ' + src + ' to ' + dest)
-            shutil.copytree(src, dest)
+            return os.path.exists(dir) and os.listdir(dir)
         except OSError as e:
-            self.log.error('Directory not copied. Error: %s' % e)
-
+            self.log.error('Unable to check if directory exists | non-empty, error: %s' % e)
+            return False
 
+    def backup_initial_artifacts(self, src):
+        self.log.info('Initial artifacts exists, taking backup to ' + Utils.strip_trailing_slash(src)
+                      + constants.BACKUP_DIR_SUFFIX +
+                      ' directory')
+        try:
+            shutil.copytree(src, Utils.strip_trailing_slash(src) + constants.BACKUP_DIR_SUFFIX)
+        except OSError as e:
+            self.log.error('Directory not copied. Error: %s' % e)


[43/50] [abbrv] 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/2e47aa70
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2e47aa70
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2e47aa70

Branch: refs/heads/stratos-4.1.x
Commit: 2e47aa70ac77874f2ba36a06dcae5ee27267195b
Parents: d134a28
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 11:35:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 17:09:20 2015 +0530

----------------------------------------------------------------------
 .../org/apache/stratos/aws/extension/AWSLoadBalancer.java | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2e47aa70/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 1bfb10a..0274172 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
@@ -120,6 +120,8 @@ public class AWSLoadBalancer implements LoadBalancer {
                                 initialAvailabilityZones.add(region + zone);
                             }
                         }
+
+
 	                    String loadBalancerDNSName =
 			                    createAWSLoadBalancer(loadBalancerName, region, listenersForThisCluster,initialAvailabilityZones);
 
@@ -141,8 +143,6 @@ public class AWSLoadBalancer implements LoadBalancer {
 			                        cluster.getClusterId()));
                         }
 	                    clusterIdToLoadBalancerMap.put(cluster.getClusterId(), lbInfoDTO);
-                        LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region);
-                        clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo);
                     }
 
                     pause(3000);
@@ -276,10 +276,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
 


[45/50] [abbrv] stratos git commit: increasing event receiver default pool size to 25

Posted by is...@apache.org.
increasing event receiver default pool size to 25


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

Branch: refs/heads/stratos-4.1.x
Commit: 051b24c5b952872300e669a08a6db745b8b9026a
Parents: fe640c6
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Dec 25 13:48:23 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 17:10:00 2015 +0530

----------------------------------------------------------------------
 .../stratos/messaging/message/receiver/StratosEventReceiver.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/051b24c5/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 67258c3..08d75a4 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
@@ -47,7 +47,7 @@ public abstract class StratosEventReceiver {
     // executor service used
     protected ExecutorService executorService;
     // pool size
-    protected static int threadPoolSize = 15;
+    protected static int threadPoolSize = 25;
 
     static {
         // check if the thread pool size is given as a system parameter
@@ -57,7 +57,7 @@ public abstract class StratosEventReceiver {
                 threadPoolSize = Integer.parseInt(poolSize);
             } catch (NumberFormatException e) {
                 log.error("Invalid configuration found for StratosEventReceiver thread pool size", e);
-                threadPoolSize = 15;
+                threadPoolSize = 25;
             }
         }
         if (log.isDebugEnabled()) {


[50/50] [abbrv] stratos git commit: fixing some merge issues

Posted by is...@apache.org.
fixing some merge issues


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

Branch: refs/heads/stratos-4.1.x
Commit: 495ddb76e8078939e7662ffba3de459f9790c1d8
Parents: 90dc062
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Jan 5 19:37:37 2016 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Jan 5 19:37:37 2016 +0530

----------------------------------------------------------------------
 .../balancer/internal/LoadBalancerServiceComponent.java  | 11 -----------
 .../main/java/org/apache/stratos/aws/extension/Main.java |  4 ++++
 2 files changed, 4 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/495ddb76/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 feedc9b..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
@@ -120,12 +120,6 @@ public class LoadBalancerServiceComponent {
             // Configure topology filters
             TopologyFilterConfigurator.configure(configuration);
 
-<<<<<<< HEAD
-//            int threadPoolSize = Integer.getInteger(LoadBalancerConstants.LOAD_BALANCER_THREAD_POOL_SIZE_KEY,
-//                    LoadBalancerConstants.LOAD_BALANCER_DEFAULT_THREAD_POOL_SIZE);
-
-=======
->>>>>>> stratos-4.1.x
             TopologyProvider topologyProvider = LoadBalancerConfiguration.getInstance().getTopologyProvider();
             if (topologyProvider == null) {
                 topologyProvider = new TopologyProvider();
@@ -164,12 +158,7 @@ public class LoadBalancerServiceComponent {
         }
     }
 
-<<<<<<< HEAD
-    private void startDomainMappingEventReceiver( TopologyProvider topologyProvider) {
-
-=======
     private void startDomainMappingEventReceiver(TopologyProvider topologyProvider) {
->>>>>>> stratos-4.1.x
         if (domainMappingEventReceiver != null) {
             return;
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/495ddb76/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 a8b436d..cf253fa 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
@@ -22,6 +22,10 @@ package org.apache.stratos.aws.extension;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 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.ThreadPoolExecutor;
 


[11/50] [abbrv] 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/c103ad03
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c103ad03
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c103ad03

Branch: refs/heads/stratos-4.1.x
Commit: c103ad03b398776333dd0f5771bab295bd3f4941
Parents: a13e54f
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:48:14 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/c103ad03/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/c103ad03/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/c103ad03/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/c103ad03/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/c103ad03/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/c103ad03/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/c103ad03/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/c103ad03/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();
+//    }
 }


[35/50] [abbrv] 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/34462ee8
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/34462ee8
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/34462ee8

Branch: refs/heads/stratos-4.1.x
Commit: 34462ee8326fe5d76bbc3890f12f98b1efbee01c
Parents: 6b179e9
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 21:39:47 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:46:38 2015 +0530

----------------------------------------------------------------------
 .../application/ApplicationsEventReceiver.java     |  8 --------
 .../signup/ApplicationSignUpEventReceiver.java     |  8 --------
 .../cluster/status/ClusterStatusEventReceiver.java | 17 ++++-------------
 .../health/stat/HealthStatEventReceiver.java       | 17 ++++-------------
 .../initializer/InitializerEventReceiver.java      |  8 --------
 .../notifier/InstanceNotifierEventReceiver.java    |  5 +----
 .../receiver/tenant/TenantEventReceiver.java       |  4 ----
 7 files changed, 9 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 f9a14ae..a68e0e5 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
@@ -115,12 +115,4 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
             }
         });
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 49964f9..a28a98f 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
@@ -117,12 +117,4 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
         eventSubscriber.terminate();
         messageDelegator.terminate();
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 aae1cef..d797305 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
@@ -90,17 +90,8 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
         return ((eventSubscriber != null) && (eventSubscriber.isSubscribed()));
     }
 
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//        terminated = true;
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
+    public void terminate() {
+        eventSubscriber.terminate();
+        messageDelegator.terminate();
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 4be2fea..cc94c6d 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
@@ -83,17 +83,8 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
         }
     }
 
-//    public void terminate() {
-//        eventSubscriber.terminate();
-//        messageDelegator.terminate();
-//        terminated = true;
-//    }
-//
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
+    public void terminate() {
+        eventSubscriber.terminate();
+        messageDelegator.terminate();
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 f2e2131..b3a29b1 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
@@ -83,12 +83,4 @@ public class InitializerEventReceiver extends StratosEventReceiver {
         eventSubscriber.terminate();
         messageDelegator.terminate();
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34462ee8/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 0e91c29..8eb2bb0 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.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         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/34462ee8/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 1d55ce4..1a8473e 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
@@ -66,10 +66,6 @@ public class TenantEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
-
     private void execute() {
         try {
             // Start topic subscriber thread


[19/50] [abbrv] stratos git commit: adding comments

Posted by is...@apache.org.
adding comments


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

Branch: refs/heads/stratos-4.1.x
Commit: e8040ac94b06bb045efafa76148ca2e08e06c391
Parents: 9dfe53f
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Dec 1 17:07:23 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 14:58:19 2015 +0530

----------------------------------------------------------------------
 .../modules/artifactmgt/git/agentgithandler.py  | 21 ++++++++++----------
 .../plugins/DefaultArtifactCheckout.py          |  7 +++++++
 2 files changed, 17 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e8040ac9/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
index 39543b9..14b76f3 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/artifactmgt/git/agentgithandler.py
@@ -214,15 +214,9 @@ class AgentGitHandler:
     @staticmethod
     def clear_repo(tenant_id):
         tenant_id = str(tenant_id)
-        AgentGitHandler.log.info ('########################## in clear_repo method...' + tenant_id)
         if tenant_id in AgentGitHandler.__git_repositories:
             del AgentGitHandler.__git_repositories[tenant_id]
-            AgentGitHandler.log.info('########################## cached repo object deleted for tenant ' +
-                  tenant_id)
-        if tenant_id in AgentGitHandler.__git_repositories:
-            AgentGitHandler.log.info('########################## cached repo object still exists for tenant ' + tenant_id)
-        else:
-            AgentGitHandler.log.info('########################## no cached obj found for ' + tenant_id)
+            AgentGitHandler.log.debug('Cached repo object deleted for tenant ' + tenant_id)
 
     @staticmethod
     def create_git_repo(repo_info):
@@ -338,13 +332,18 @@ class AgentGitHandler:
         return True
 
     @staticmethod
-    def restore_default_artifacts(default_dir):
+    def restore_default_artifacts(initial_artifact_dir):
+        """
+        Restores the initial artifacts from the previously taken backup, if the backup exists
+
+        :param initial_artifact_dir: path to local artifact directory
+        """
         try:
-            Utils.move_directory(Utils.strip_trailing_slash(default_dir) + constants.BACKUP_DIR_SUFFIX, default_dir)
-            AgentGitHandler.log.info('Restored contents from backup location ' +Utils.strip_trailing_slash(default_dir)
+            Utils.move_directory(Utils.strip_trailing_slash(initial_artifact_dir) + constants.BACKUP_DIR_SUFFIX, initial_artifact_dir)
+            AgentGitHandler.log.info('Restored contents from backup location ' + Utils.strip_trailing_slash(initial_artifact_dir)
                                      + constants.BACKUP_DIR_SUFFIX)
         except OSError as e:
-            AgentGitHandler.log.error('Contents of ' + default_dir + ' not restored. Error: %s' % e)
+            AgentGitHandler.log.error('Contents of ' + initial_artifact_dir + ' not restored. Error: %s' % e)
 
     @staticmethod
     def execute_git_command(command, repo_path):

http://git-wip-us.apache.org/repos/asf/stratos/blob/e8040ac9/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
index 413090e..1b7baa0 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/plugins/DefaultArtifactCheckout.py
@@ -110,6 +110,13 @@ class DefaultArtifactCheckout(IArtifactCheckoutPlugin):
                 AgentGitHandler.add_repo(git_repo)
 
     def check_and_backup_initial_artifacts(self, initial_artifact_dir):
+        """
+        verifies if there are any default artifacts by checking the 'initial_artifact_dir' and
+        whether its empty, and takes a backup to a directory  initial_artifact_dir_backup in the
+        same location
+
+        :param initial_artifact_dir: path to local artifact directory
+        """
         # copy default artifacts (if any) to a a temp location
         # if directory name is dir, the backup directory name would be dir_backup
         if self.initial_artifacts_exists(initial_artifact_dir):


[41/50] [abbrv] 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/7d1e5270
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/7d1e5270
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/7d1e5270

Branch: refs/heads/stratos-4.1.x
Commit: 7d1e52709e47b69db22893856863ee9a48558417
Parents: 1ed93dd
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 24 16:55:07 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 17:03:44 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  |  4 --
 .../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   |  8 +--
 .../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(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/7d1e5270/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 62f3f29..74b9804 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
@@ -228,5 +228,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/7d1e5270/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 b72ac84..da48caf 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
@@ -256,6 +256,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/7d1e5270/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 0dbc417..04ec264 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
@@ -327,5 +327,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/7d1e5270/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/7d1e5270/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 e86a05f..67258c3 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
@@ -20,12 +20,72 @@
 package org.apache.stratos.messaging.message.receiver;
 
 import java.util.concurrent.ThreadPoolExecutor;
+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;
 
-public class StratosEventReceiver {
+import java.util.concurrent.ExecutorService;
+
+/**
+ * Abstraction for Event Receivers used in Stratos
+ */
+public abstract class StratosEventReceiver {
 
     protected ThreadPoolExecutor executor;
+    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/7d1e5270/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 df7a006..ddb8170 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,7 +20,6 @@ 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;
@@ -38,8 +37,6 @@ public class ApplicationsEventReceiver extends StratosEventReceiver{
     private static volatile ApplicationsEventReceiver instance;
 
     private ApplicationsEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ApplicationsEventMessageQueue messageQueue = new ApplicationsEventMessageQueue();
         this.messageDelegator = new ApplicationsEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationsEventMessageListener(messageQueue);
@@ -94,7 +91,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/7d1e5270/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/7d1e5270/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 3fd43c1..d784b28 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,7 +21,6 @@ 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;
@@ -43,8 +42,6 @@ public class ApplicationSignUpEventReceiver extends StratosEventReceiver {
     private static volatile ApplicationSignUpEventReceiver instance;
 
     private ApplicationSignUpEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ApplicationSignUpEventMessageQueue messageQueue = new ApplicationSignUpEventMessageQueue();
         this.messageDelegator = new ApplicationSignUpEventMessageDelegator(messageQueue);
         this.messageListener = new ApplicationSignUpEventMessageListener(messageQueue);
@@ -67,6 +64,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
@@ -116,6 +117,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/7d1e5270/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/7d1e5270/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 e014a98..3c4c14c 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,7 +21,6 @@ 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;
@@ -38,8 +37,6 @@ public class ClusterStatusEventReceiver extends StratosEventReceiver {
     private static volatile ClusterStatusEventReceiver instance;
 
     private ClusterStatusEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         ClusterStatusEventMessageQueue messageQueue = new ClusterStatusEventMessageQueue();
         this.messageDelegator = new ClusterStatusEventMessageDelegator(messageQueue);
         this.messageListener = new ClusterStatusEventMessageListener(messageQueue);
@@ -50,6 +47,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) {
@@ -89,7 +90,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/7d1e5270/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/7d1e5270/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 4d8bca6..33bec8f 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,7 +21,6 @@ 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;
@@ -40,8 +39,6 @@ public class DomainMappingEventReceiver extends StratosEventReceiver {
     private static volatile DomainMappingEventReceiver instance;
 
     private DomainMappingEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         DomainMappingEventMessageQueue messageQueue = new DomainMappingEventMessageQueue();
         this.messageDelegator = new DomainMappingEventMessageDelegator(messageQueue);
         this.messageListener = new DomainMappingEventMessageListener(messageQueue);
@@ -52,6 +49,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) {
@@ -67,7 +68,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/7d1e5270/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/7d1e5270/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 689f9ca..69a717c 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,7 +21,6 @@ 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;
@@ -39,8 +38,6 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
     private static volatile HealthStatEventReceiver instance;
 
     private HealthStatEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         HealthStatEventMessageQueue messageQueue = new HealthStatEventMessageQueue();
         this.messageDelegator = new HealthStatEventMessageDelegator(messageQueue);
         this.messageListener = new HealthStatEventMessageListener(messageQueue);
@@ -63,6 +60,9 @@ public class HealthStatEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
 
     private void execute() {
         try {
@@ -86,6 +86,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/7d1e5270/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/7d1e5270/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 0711293..a8af4b7 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,7 +20,6 @@ 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;
@@ -35,8 +34,6 @@ public class InitializerEventReceiver extends StratosEventReceiver {
     private static volatile InitializerEventReceiver instance;
 
     private InitializerEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InitializerEventMessageQueue initializerEventMessageQueue = new InitializerEventMessageQueue();
         this.messageDelegator = new InitializerEventMessageDelegator(initializerEventMessageQueue);
         this.messageListener = new InitializerEventMessageListener(initializerEventMessageQueue);
@@ -59,6 +56,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
@@ -81,6 +82,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/7d1e5270/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/7d1e5270/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 4d02d18..520f64e 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,7 +21,6 @@ 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;
@@ -38,8 +37,6 @@ public class InstanceNotifierEventReceiver extends StratosEventReceiver {
     private static volatile InstanceNotifierEventReceiver instance;
 
     private InstanceNotifierEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InstanceNotifierEventMessageQueue messageQueue = new InstanceNotifierEventMessageQueue();
         this.messageDelegator = new InstanceNotifierEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceNotifierEventMessageListener(messageQueue);
@@ -62,6 +59,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
@@ -93,6 +94,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/7d1e5270/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/7d1e5270/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 9e98155..f06f629 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,7 +21,6 @@ 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;
@@ -38,8 +37,6 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
     private static volatile InstanceStatusEventReceiver instance;
 
     private InstanceStatusEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         InstanceStatusEventMessageQueue messageQueue = new InstanceStatusEventMessageQueue();
         this.messageDelegator = new InstanceStatusEventMessageDelegator(messageQueue);
         this.messageListener = new InstanceStatusEventMessageListener(messageQueue);
@@ -62,6 +59,9 @@ public class InstanceStatusEventReceiver extends StratosEventReceiver {
         messageDelegator.addEventListener(eventListener);
     }
 
+    public void removeEventListener(EventListener eventListener) {
+        messageDelegator.removeEventListener(eventListener);
+    }
 
     private void execute() {
         try {
@@ -91,6 +91,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/7d1e5270/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/7d1e5270/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 94feef0..b03f51a 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,7 +21,6 @@ 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;
@@ -42,8 +41,6 @@ public class TenantEventReceiver extends StratosEventReceiver {
     private static volatile TenantEventReceiver instance;
 
     private TenantEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
         this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
         this.messageListener = new TenantEventMessageListener(messageQueue);
@@ -66,6 +63,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
@@ -112,6 +113,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/7d1e5270/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/7d1e5270/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 2fea887..fdd419b 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,7 +21,6 @@ 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;
@@ -44,8 +43,6 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     private static volatile TopologyEventReceiver instance;
 
     private TopologyEventReceiver() {
-        // TODO: make pool size configurable
-        this.executor = StratosThreadPool.getExecutorService("messaging-event-receiver", 35, 150);
         TopologyEventMessageQueue messageQueue = new TopologyEventMessageQueue();
         this.messageDelegator = new TopologyEventMessageDelegator(messageQueue);
         this.messageListener = new TopologyEventMessageListener(messageQueue);
@@ -68,6 +65,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
@@ -95,7 +96,6 @@ public class TopologyEventReceiver extends StratosEventReceiver {
     public void terminate() {
         eventSubscriber.terminate();
         messageDelegator.terminate();
-        StratosThreadPool.shutdown(threadPoolId);
     }
 
     public void initializeCompleteTopology() {


[34/50] [abbrv] 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/6b179e9c
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6b179e9c
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6b179e9c

Branch: refs/heads/stratos-4.1.x
Commit: 6b179e9c5494051c0901873caa9d977646fd93a1
Parents: 334bb02
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Dec 17 16:04:54 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:49:01 2015 +0530

----------------------------------------------------------------------
 .../StratosManagerServiceComponent.java         | 25 --------------------
 .../topology/TopologyEventReceiver.java         |  8 -------
 2 files changed, 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6b179e9c/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 ddd2288..0dbc417 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
@@ -327,30 +327,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());
-
-        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);
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6b179e9c/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 648a8fb..64af927 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
@@ -115,12 +115,4 @@ public class TopologyEventReceiver extends StratosEventReceiver {
             }
         });
     }
-
-//    public ExecutorService getExecutorService() {
-//        return executor;
-//    }
-//
-//    public void setExecutorService(ExecutorService executor) {
-//        this.executor = executor;
-//    }
 }


[28/50] [abbrv] stratos git commit: Move acquireWriteLock call in terminateInstance method to a separate try-finally block in-order to avoid releasing locks which are not taken

Posted by is...@apache.org.
Move acquireWriteLock call in terminateInstance method to a separate try-finally block in-order to avoid releasing locks which are not taken


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

Branch: refs/heads/stratos-4.1.x
Commit: 25abaffdf6b55fb2fb3c8c184192731e219ad09d
Parents: 1a5b99f
Author: Akila Perera <ra...@gmail.com>
Authored: Mon Dec 7 16:04:38 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 15:01:14 2015 +0530

----------------------------------------------------------------------
 .../cloud/controller/services/impl/CloudControllerServiceImpl.java  | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/25abaffd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index 8bd9ec2..f3e363f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -677,6 +677,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                     }
                 }
                 executor.execute(new InstanceTerminator(memberContext));
+
             } finally {
                 TopologyHolder.releaseWriteLock();
             }


[44/50] [abbrv] 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/fe640c60
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fe640c60
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fe640c60

Branch: refs/heads/stratos-4.1.x
Commit: fe640c60c7f82f786aab7f97a608f9afc559e047
Parents: 2e47aa7
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Dec 21 17:27:43 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 17:10:00 2015 +0530

----------------------------------------------------------------------
 .../stratos/aws/extension/AWSLoadBalancer.java  | 26 +++++++++++++++++---
 .../org/apache/stratos/aws/extension/Main.java  |  4 +--
 2 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fe640c60/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 0274172..466b70d 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());
 	                    }
 
@@ -191,7 +191,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>();
@@ -207,6 +208,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);
@@ -219,7 +236,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);
 
@@ -290,7 +308,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/fe640c60/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 3d404ac..7a58df9 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,8 +36,8 @@ import java.util.concurrent.ThreadPoolExecutor;
 public class Main {
 	private static final Log log = LogFactory.getLog(Main.class);
 	private static ThreadPoolExecutor executor;
-	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
-	public static final int THREAD_POOL_SIZE = 10;
+//	public static final String AWS_EXTENSION_THREAD_POOL = "aws.extension.thread.pool";
+//	public static final int THREAD_POOL_SIZE = 10;
 
 	public static void main(String[] args) {
 


[06/50] [abbrv] 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/5d29c8f0
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5d29c8f0
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5d29c8f0

Branch: refs/heads/stratos-4.1.x
Commit: 5d29c8f03a2f5809fd82f9bc495622b181359742
Parents: fb5576e
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:09:04 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/5d29c8f0/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/5d29c8f0/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/5d29c8f0/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;
+//    }
 }


[13/50] [abbrv] stratos git commit: handling all thread pool shutting down scenarion from stratos common component itself

Posted by is...@apache.org.
handling all thread pool shutting down scenarion from stratos common component itself


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

Branch: refs/heads/stratos-4.1.x
Commit: 90008ddc1fbfa0bc098524fc746326b15e42e4ca
Parents: cef4fe1
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Sun Dec 6 11:58:39 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:49:55 2015 +0530

----------------------------------------------------------------------
 .../common/internal/CommonServiceComponent.java |  12 +-
 .../common/threading/StratosThreadPool.java     | 146 +++++++++++++++++++
 2 files changed, 157 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/90008ddc/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/internal/CommonServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/internal/CommonServiceComponent.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/internal/CommonServiceComponent.java
index 1059988..a29092c 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/internal/CommonServiceComponent.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/internal/CommonServiceComponent.java
@@ -26,6 +26,7 @@ import org.apache.stratos.common.clustering.impl.HazelcastDistributedObjectProvi
 import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
 import org.apache.stratos.common.services.DistributedObjectProvider;
+import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.common.util.CommonUtil;
 import org.apache.stratos.common.util.StratosConfiguration;
 import org.osgi.framework.BundleContext;
@@ -135,7 +136,16 @@ public class CommonServiceComponent {
     }
 
     protected void deactivate(ComponentContext context) {
-        log.debug("Stratos common service is deactivated");
+
+        try {
+            // Shutdown all thread pools
+            StratosThreadPool.shutDownAllThreadPoolsGracefully();
+            StratosThreadPool.shutDownAllScheduledExecutorsGracefully();
+            log.debug("Stratos common service component is de-activated");
+        }
+        catch (Exception e) {
+            log.error("Could not de-activate Stratos common service component", e);
+        }
     }
 
     protected void setRegistryService(RegistryService registryService) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/90008ddc/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 459cd1d..50b53bb 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
@@ -23,7 +23,9 @@ package org.apache.stratos.common.threading;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.*;
 
 /**
@@ -85,4 +87,148 @@ public class StratosThreadPool {
         }
         return scheduledExecutorService;
     }
+
+    public static void shutDownAllThreadPoolsGracefully () {
+
+        int threadPoolCount = executorMap.size();
+        if (threadPoolCount == 0) {
+            log.info("No thread pools found to shut down");
+            return;
+        }
+
+        Set<Future<String>> threadPoolTerminatorFutures = new HashSet<>();
+        ExecutorService threadPoolTerminator = null;
+
+        try {
+            threadPoolTerminator = Executors.newFixedThreadPool(threadPoolCount);
+            for (Map.Entry<String, ThreadPoolExecutor> entry : executorMap.entrySet()) {
+                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new GracefulThreadPoolTerminator(entry.getKey(),
+                        entry.getValue())));
+            }
+            // use the Future to block until shutting down is done
+            for (Future<String> threadPoolTerminatorFuture : threadPoolTerminatorFutures) {
+                removeThreadPoolFromCache(threadPoolTerminatorFuture.get());
+            }
+
+        } catch (InterruptedException e) {
+            log.error("Error in shutting down thread pools", e);
+        } catch (ExecutionException e) {
+            log.error("Error in shutting down thread pools", e);
+        } finally {
+            // if there are any remaining thread pools, shut down immediately
+            if (!executorMap.isEmpty()) {
+                for (Map.Entry<String, ThreadPoolExecutor> entry : executorMap.entrySet()) {
+                    entry.getValue().shutdownNow();
+                    removeThreadPoolFromCache(entry.getKey());
+                }
+            }
+
+            // shut down the threadPoolTerminator threads
+            threadPoolTerminator.shutdownNow();
+        }
+    }
+
+    public static void shutDownAllScheduledExecutorsGracefully () {
+
+        int threadPoolCount = scheduledServiceMap.size();
+        if (threadPoolCount == 0) {
+            log.info("No thread pools found to shut down");
+            return;
+        }
+
+        Set<Future<String>> threadPoolTerminatorFutures = new HashSet<>();
+        ExecutorService threadPoolTerminator = null;
+
+        try {
+            threadPoolTerminator = Executors.newFixedThreadPool(threadPoolCount);
+            for (Map.Entry<String, ScheduledExecutorService> entry : scheduledServiceMap.entrySet()) {
+                threadPoolTerminatorFutures.add(threadPoolTerminator.submit(new GracefulScheduledThreadPoolTerminator(entry.getKey(),
+                        entry.getValue())));
+            }
+            // use the Future to block until shutting down is done
+            for (Future<String> threadPoolTerminatorFuture : threadPoolTerminatorFutures) {
+                removeScheduledThreadPoolFromCache(threadPoolTerminatorFuture.get());
+            }
+
+        } catch (InterruptedException e) {
+            log.error("Error in shutting down thread pools", e);
+        } catch (ExecutionException e) {
+            log.error("Error in shutting down thread pools", e);
+        } finally {
+            // if there are any remaining thread pools, shut down immediately
+            if (!scheduledServiceMap.isEmpty()) {
+                for (Map.Entry<String, ScheduledExecutorService> entry : scheduledServiceMap.entrySet()) {
+                    entry.getValue().shutdownNow();
+                    removeScheduledThreadPoolFromCache(entry.getKey());
+                }
+            }
+
+            // shut down the threadPoolTerminator threads
+            threadPoolTerminator.shutdownNow();
+        }
+    }
+
+    private static void removeThreadPoolFromCache(String terminatedPoolId) {
+        if (executorMap.remove(terminatedPoolId) != null) {
+            log.info("Thread pool [id] " + terminatedPoolId + " is successfully shut down" +
+                    " and removed from the cache");
+        }
+    }
+
+    private static void removeScheduledThreadPoolFromCache(String terminatedPoolId) {
+        if (scheduledServiceMap.remove(terminatedPoolId) != null) {
+            log.info("Scheduled Thread pool [id] " + terminatedPoolId + " is successfully shut down" +
+                    " and removed from the cache");
+        }
+    }
+
+    private static class GracefulThreadPoolTerminator implements Callable {
+
+        private String threadPoolId;
+        private ThreadPoolExecutor executor;
+
+        public GracefulThreadPoolTerminator (String threadPoolId, ThreadPoolExecutor executor) {
+            this.threadPoolId = threadPoolId;
+            this.executor = executor;
+        }
+
+        @Override
+        public String call() throws Exception {
+            log.info("Shutting down thread pool " + threadPoolId);
+            // try to shut down gracefully
+            executor.shutdown();
+            // wait 10 secs till terminated
+            if (!executor.awaitTermination(10, TimeUnit.SECONDS)) {
+                log.info("Thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
+                        "timeout, forcefully shutting down");
+                executor.shutdownNow();
+            }
+            return threadPoolId;
+        }
+    }
+
+    private static class GracefulScheduledThreadPoolTerminator implements Callable {
+
+        private String threadPoolId;
+        private ScheduledExecutorService scheduledExecutor;
+
+        public GracefulScheduledThreadPoolTerminator (String threadPoolId, ScheduledExecutorService scheduledExecutor) {
+            this.threadPoolId = threadPoolId;
+            this.scheduledExecutor = scheduledExecutor;
+        }
+
+        @Override
+        public String call() throws Exception {
+            log.info("Shutting down scheduled thread pool " + threadPoolId);
+            // try to shut down gracefully
+            scheduledExecutor.shutdown();
+            // wait 10 secs till terminated
+            if (!scheduledExecutor.awaitTermination(10, TimeUnit.SECONDS)) {
+                log.info("Scheduled thread Pool [id] " + threadPoolId + " did not finish all tasks before " +
+                        "timeout, forcefully shutting down");
+                scheduledExecutor.shutdownNow();
+            }
+            return threadPoolId;
+        }
+    }
 }


[39/50] [abbrv] 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/c8c886d3
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c8c886d3
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c8c886d3

Branch: refs/heads/stratos-4.1.x
Commit: c8c886d33eebbf81374021a6b21bc4af0d530803
Parents: 6853064
Author: gayangunarathne <ga...@wso2.com>
Authored: Tue Dec 8 11:35:56 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Dec 25 16:58:18 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/c8c886d3/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/c8c886d3/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/c8c886d3/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();


[07/50] [abbrv] 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/fb5576ed
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fb5576ed
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fb5576ed

Branch: refs/heads/stratos-4.1.x
Commit: fb5576ed2dd6e36c12422ab46bc6b174c641bd52
Parents: 4967e75
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:01:16 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Mon Dec 7 18:48:09 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/fb5576ed/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/fb5576ed/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/fb5576ed/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/fb5576ed/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/fb5576ed/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/fb5576ed/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/fb5576ed/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;
+//    }
 }