You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2015/12/24 15:56:06 UTC
[03/14] stratos git commit: making TenantEventReceiver a singleton
and fixing the references in the components
making TenantEventReceiver a singleton and fixing the references in the components
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/170c27cc
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/170c27cc
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/170c27cc
Branch: refs/heads/master
Commit: 170c27cc61aaddcb2a28239e98ad11b438b421bb
Parents: b3dc546
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 17:49:15 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 20:04:05 2015 +0530
----------------------------------------------------------------------
.../agent/CartridgeAgentEventListeners.java | 4 +--
.../internal/LoadBalancerServiceComponent.java | 6 ++--
.../receiver/tenant/TenantEventReceiver.java | 31 +++++++++++++++-----
3 files changed, 29 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/170c27cc/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
index 1d64ff0..ffa3750 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgentEventListeners.java
@@ -79,8 +79,8 @@ public class CartridgeAgentEventListeners {
this.instanceNotifierEventReceiver = new InstanceNotifierEventReceiver();
- this.tenantEventReceiver = new TenantEventReceiver();
- this.tenantEventReceiver.setExecutorService(eventListenerExecutorService);
+ this.tenantEventReceiver = TenantEventReceiver.getInstance();
+// this.tenantEventReceiver.setExecutorService(eventListenerExecutorService);
extensionHandler = new DefaultExtensionHandler();
http://git-wip-us.apache.org/repos/asf/stratos/blob/170c27cc/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
index 442686a..e772322 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/internal/LoadBalancerServiceComponent.java
@@ -225,9 +225,9 @@ public class LoadBalancerServiceComponent {
private void startTenantEventReceiver(ExecutorService executorService) {
- tenantEventReceiver = new TenantEventReceiver();
- tenantEventReceiver.setExecutorService(executorService);
- tenantEventReceiver.execute();
+ tenantEventReceiver = TenantEventReceiver.getInstance();
+// tenantEventReceiver.setExecutorService(executorService);
+// tenantEventReceiver.execute();
if (log.isInfoEnabled()) {
log.info("Tenant event receiver thread started");
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/170c27cc/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
index 988a2ce..1c519b9 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/tenant/TenantEventReceiver.java
@@ -21,11 +21,13 @@ package org.apache.stratos.messaging.message.receiver.tenant;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.threading.StratosThreadPool;
import org.apache.stratos.messaging.broker.publish.EventPublisher;
import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
import org.apache.stratos.messaging.broker.subscribe.EventSubscriber;
import org.apache.stratos.messaging.event.initializer.CompleteTenantRequestEvent;
import org.apache.stratos.messaging.listener.EventListener;
+import org.apache.stratos.messaging.message.receiver.StratosEventReceiver;
import org.apache.stratos.messaging.util.MessagingUtil;
import java.util.concurrent.ExecutorService;
@@ -34,28 +36,43 @@ import java.util.concurrent.ExecutorService;
* A thread for receiving tenant information from message broker and
* build tenant information in tenant manager.
*/
-public class TenantEventReceiver {
+public class TenantEventReceiver extends StratosEventReceiver {
private static final Log log = LogFactory.getLog(TenantEventReceiver.class);
private TenantEventMessageDelegator messageDelegator;
private TenantEventMessageListener messageListener;
private EventSubscriber eventSubscriber;
- private ExecutorService executorService;
+ private static volatile TenantEventReceiver instance;
- public TenantEventReceiver() {
+ private TenantEventReceiver() {
+ // TODO: make pool size configurable
+ this.executorService = StratosThreadPool.getExecutorService("tenant-event-receiver", 100);
TenantEventMessageQueue messageQueue = new TenantEventMessageQueue();
this.messageDelegator = new TenantEventMessageDelegator(messageQueue);
this.messageListener = new TenantEventMessageListener(messageQueue);
+ execute();
+ }
+
+ public static TenantEventReceiver getInstance () {
+ if (instance == null) {
+ synchronized (TenantEventReceiver.class) {
+ if (instance == null) {
+ instance = new TenantEventReceiver();
+ }
+ }
+ }
+
+ return instance;
}
public void addEventListener(EventListener eventListener) {
messageDelegator.addEventListener(eventListener);
}
- public void setExecutorService(ExecutorService executorService) {
- this.executorService = executorService;
- }
+// public void setExecutorService(ExecutorService executorService) {
+// this.executorService = executorService;
+// }
- public void execute() {
+ private void execute() {
try {
// Start topic subscriber thread
eventSubscriber = new EventSubscriber(MessagingUtil.Topics.TENANT_TOPIC.getTopicName(), messageListener);