You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/08/24 20:16:49 UTC

stratos git commit: Correct event publishing order when deploying an app: fixing STRATOS-1529

Repository: stratos
Updated Branches:
  refs/heads/master cab0d80fb -> fd7d1fb6a


Correct event publishing order when deploying an app: fixing STRATOS-1529


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

Branch: refs/heads/master
Commit: fd7d1fb6ae479325d7994349c566500c7ea23d59
Parents: cab0d80
Author: Akila Perera <ra...@gmail.com>
Authored: Mon Aug 24 23:46:18 2015 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Mon Aug 24 23:46:18 2015 +0530

----------------------------------------------------------------------
 .../autoscaler/applications/ApplicationHolder.java   | 15 +++++++--------
 .../applications/topic/ApplicationBuilder.java       |  4 ++--
 .../stratos/autoscaler/util/AutoscalerUtil.java      | 10 ++++------
 .../messaging/domain/application/Applications.java   | 13 ++++++++-----
 .../stratos/messaging/domain/topology/Topology.java  |  6 ------
 5 files changed, 21 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fd7d1fb6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
index 47c3a8b..2176bbc 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
@@ -71,17 +71,16 @@ public class ApplicationHolder {
         if (applications == null) {
             synchronized (ApplicationHolder.class) {
                 if (applications == null) {
+                    // create a new Applications object for autoscaler
+                    applications = new Applications();
+
                     // retrieve from registry
                     if (log.isDebugEnabled()) {
-                        log.debug("Trying to retrieve applications from registry...");
+                        log.debug("Loading applications persisted in registry...");
                     }
-                    applications = AutoscalerUtil.getApplications();
-                    if (applications == null) {
-                        if (log.isDebugEnabled()) {
-                            log.debug("No applications found in registry");
-                        }
-                        // create a new Applications object
-                        applications = new Applications();
+                    applications = AutoscalerUtil.loadApplicationsFromRegistry(applications);
+                    if (applications.getApplications().isEmpty()) {
+                        log.info("No applications found in registry.");
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd7d1fb6/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 686e158..912a2f6 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
@@ -74,10 +74,10 @@ public class ApplicationBuilder {
             log.debug("Handling application creation event: [application-id] " +
                     application.getUniqueIdentifier());
         }
-        AutoscalerCloudControllerClient.getInstance().createApplicationClusters(application.getUniqueIdentifier(),
-                appClusterContexts);
         ApplicationHolder.persistApplication(application);
         ApplicationsEventPublisher.sendApplicationCreatedEvent(application);
+        AutoscalerCloudControllerClient.getInstance().createApplicationClusters(application.getUniqueIdentifier(),
+                appClusterContexts);
     }
 
     public static ApplicationInstance handleApplicationInstanceCreatedEvent(String appId,

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd7d1fb6/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 24a4e07..6c4dc19 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
@@ -80,19 +80,17 @@ public class AutoscalerUtil {
         return Holder.INSTANCE;
     }
 
-    public static Applications getApplications() {
-
-        Applications applications;
+    public static Applications loadApplicationsFromRegistry(Applications applications) {
+        if (applications == null){
+            throw new RuntimeException("Applications instance is null");
+        }
         String[] appResourcePaths = RegistryManager.getInstance().getApplicationResourcePaths();
         if (appResourcePaths != null) {
-            applications = new Applications();
             for (String appResourcePath : appResourcePaths) {
                 applications.addApplication(getApplicationFromPath(appResourcePath));
             }
-
             return applications;
         }
-
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd7d1fb6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Applications.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Applications.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Applications.java
index 82ef5e2..4d366f1 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Applications.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/application/Applications.java
@@ -27,6 +27,9 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
+/*
+  DO NOT make this a singleton
+ */
 public class Applications implements Serializable {
 
     private static Log log = LogFactory.getLog(Applications.class);
@@ -43,23 +46,23 @@ public class Applications implements Serializable {
         this.applicationMap.put(application.getUniqueIdentifier(), application);
     }
 
-    public Application getApplication(String appId) {
+    public synchronized Application getApplication(String appId) {
         return this.getApplications().get(appId);
     }
 
-    public boolean isInitialized() {
+    public synchronized boolean isInitialized() {
         return initialized;
     }
 
-    public void setInitialized(boolean initialized) {
+    public synchronized void setInitialized(boolean initialized) {
         this.initialized = initialized;
     }
 
-    public boolean applicationExists(String appId) {
+    public synchronized boolean applicationExists(String appId) {
         return this.getApplications().containsKey(appId);
     }
 
-    public Map<String, Application> getApplications() {
+    public synchronized Map<String, Application> getApplications() {
         return applicationMap;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/fd7d1fb6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
index 2f929bf..9f641ec 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Topology.java
@@ -53,12 +53,6 @@ public class Topology implements Serializable {
         this.serviceMap.put(service.getServiceName(), service);
     }
 
-    public synchronized void addServices(Collection<Service> services) {
-        for (Service service : services) {
-            addService(service);
-        }
-    }
-
     public void removeService(Service service) {
         this.serviceMap.remove(service.getServiceName());
         TopologyLockHierarchy.getInstance().removeTopologyLockForService(service.getServiceName());