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 <[email protected]> Authored: Wed Dec 2 18:01:16 2015 +0530 Committer: Isuru Haththotuwa <[email protected]> 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; +// } }
