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:11 UTC

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

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

Branch: refs/heads/master
Commit: f302906abd4218673dbe648fc8254fcdf9c2ae3b
Parents: 27ae4ba
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Wed Dec 2 18:48:14 2015 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Dec 24 20:05:04 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/f302906a/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/f302906a/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/f302906a/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/f302906a/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/f302906a/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/f302906a/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/f302906a/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/f302906a/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();
+//    }
 }