You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/10/09 15:57:31 UTC

[1/2] git commit: fixing hierarchical monitor issue

Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping a70bf6489 -> 0a22c7bba


fixing hierarchical monitor issue


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

Branch: refs/heads/4.0.0-grouping
Commit: 9934c2ab7a20a42cbee5226d2aec7a9a088db838
Parents: f11401a
Author: reka <rt...@gmail.com>
Authored: Thu Oct 9 19:26:45 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Oct 9 19:26:45 2014 +0530

----------------------------------------------------------------------
 .../grouping/dependency/DependencyBuilder.java  | 85 +++++++++++---------
 .../context/ApplicationContextFactory.java      |  4 +-
 .../AutoscalerTopologyEventReceiver.java        |  3 +-
 .../stratos/autoscaler/monitor/Monitor.java     | 10 ++-
 .../messaging/domain/topology/Group.java        |  2 +-
 5 files changed, 56 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9934c2ab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
index 30709e7..275b8c3 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
@@ -84,56 +84,61 @@ public class DependencyBuilder {
             //Parsing the start up order
             Set<StartupOrder> startupOrders = dependencyOrder.getStartupOrders();
             ApplicationContext foundContext;
-            if (startupOrders == null) {
+            ApplicationContext parentContext;
+            /*if (startupOrders == null) {
             	if (log.isDebugEnabled()) {
                     log.debug("startupOrders is null, returning default dependency tree (empty)");
                 }
-            	
-            	return dependencyTree;
-            }
-            for (StartupOrder startupOrder : startupOrders) {
-
-                foundContext = null;
-
-                for (String start : startupOrder.getStartList())  {
-
-                    if (start != null) {
-                        ApplicationContext applicationContext = ApplicationContextFactory.
-                                getApplicationContext(start, component, dependencyTree.isKillDependent());
-                        String id = applicationContext.getId(); //TODO change the id
-
-                        ApplicationContext existingApplicationContext =
-                                dependencyTree.findApplicationContextWithId(id);
-                        if (existingApplicationContext == null) {
-                            if (foundContext != null) {
-                                //appending the start up order to existing group/cluster
-                                foundContext.addApplicationContext(applicationContext);
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Found an existing [dependency] " + foundContext.getId() +
-                                            " and adding the [dependency] " + id + " as the child");
+                return dependencyTree;
+            }*/
+            if (startupOrders != null) {
+                for (StartupOrder startupOrder : startupOrders) {
+                    foundContext = null;
+                    parentContext = null;
+                    for (String start : startupOrder.getStartList()) {
+
+                        if (start != null) {
+                            ApplicationContext applicationContext = ApplicationContextFactory.
+                                    getApplicationContext(start, component, dependencyTree.isKillDependent());
+                            String id = applicationContext.getId();
+
+                            ApplicationContext existingApplicationContext =
+                                    dependencyTree.findApplicationContextWithId(id);
+                            if (existingApplicationContext == null) {
+                                if (parentContext != null) {
+                                    //appending the start up order to already added parent group/cluster
+                                    parentContext.addApplicationContext(applicationContext);
+                                    parentContext = applicationContext;
+                                    if (log.isDebugEnabled()) {
+                                        log.debug("Found an existing [dependency] " + parentContext.getId() +
+                                                " and adding the [dependency] " + id + " as the child");
+                                    }
+                                } else {
+                                    //adding list of startup order to the dependency tree
+                                    dependencyTree.addApplicationContext(applicationContext);
+                                    parentContext = applicationContext;
                                 }
                             } else {
-                                //adding list of startup order to the dependency tree
-                                dependencyTree.addApplicationContext(applicationContext);
-                            }
-                        } else {
-                            if (foundContext == null) {
-                                //assigning the found context to the later use.
-                                foundContext = existingApplicationContext;
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Found an existing [dependency] " + id + " and setting it " +
-                                            "for the next dependency to follow");
+                                if (foundContext == null) {
+                                    //if existing context found, add it to child of existing context and
+                                    //set the existing context as the next parent
+                                    existingApplicationContext.addApplicationContext(applicationContext);
+                                    parentContext = existingApplicationContext;
+                                    if (log.isDebugEnabled()) {
+                                        log.debug("Found an existing [dependency] " + id + " and setting it " +
+                                                "for the next dependency to follow");
+                                    }
+                                } else {
+                                    String msg = "Startup order is not consistent. It contains the group/cluster " +
+                                            "which has been used more than one in another startup order";
+                                    throw new DependencyBuilderException(msg);
                                 }
-                            } else {
-                                String msg = "Startup order is not consistent. It contains the group/cluster " +
-                                        "which has been used more than one in another startup order";
-                                throw new DependencyBuilderException(msg);
-                            }
 
+                            }
                         }
                     }
-                }
 
+                }
             }
             //TODO need to parser the scalable dependencies
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/9934c2ab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java
index 6e10633..685f131 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/context/ApplicationContextFactory.java
@@ -42,12 +42,12 @@ public class ApplicationContextFactory {
                                                            boolean isKillDependent) {
         String id;
         ApplicationContext applicationContext = null;
-        if (startOrder.contains(Constants.GROUP)) {
+        if (startOrder.startsWith(Constants.GROUP + ".")) {
             //getting the group alias
             id = getGroupFromStartupOrder(startOrder);
             applicationContext = new GroupContext(id,
                     isKillDependent);
-        } else if (startOrder.contains(Constants.CARTRIDGE)) {
+        } else if (startOrder.startsWith(Constants.CARTRIDGE + ".")) {
             //getting the cluster alias
             id = getClusterFromStartupOrder(startOrder);
             //getting the cluster-id from cluster alias

http://git-wip-us.apache.org/repos/asf/stratos/blob/9934c2ab/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
index df9a3c3..91189fb 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/topology/AutoscalerTopologyEventReceiver.java
@@ -624,9 +624,8 @@ public class AutoscalerTopologyEventReceiver implements Runnable {
                     applicationMonitor = AutoscalerUtil.getApplicationMonitor(application);
 
                     long end = System.currentTimeMillis();
-                    log.info("Time taken to start Napp monitor: " + (end - start) / 1000);
+                    log.info("Time taken to start app monitor: " + (end - start) / 1000);
                     success = true;
-                    //TODO exception handling
                 } catch (DependencyBuilderException e) {
                     String msg = "Application monitor creation failed for Application: ";
                     log.warn(msg, e);

http://git-wip-us.apache.org/repos/asf/stratos/blob/9934c2ab/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 65ab790..800ed64 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
@@ -122,9 +122,13 @@ public abstract class Monitor implements EventHandler {
             if (context instanceof GroupContext) {
                 startGroupMonitor(this, context.getId(), component);
             } else if (context instanceof ClusterContext) {
-                ClusterDataHolder clusterDataHolder = component.getClusterData(context.getId());
-                String clusterId = clusterDataHolder.getClusterId();
-                String serviceName = clusterDataHolder.getServiceType();
+                String clusterId = context.getId();
+                String serviceName = null;
+                for(ClusterDataHolder dataHolder : component.getClusterDataMap().values()) {
+                    if(dataHolder.getClusterId().equals(clusterId)) {
+                        serviceName = dataHolder.getServiceType();
+                    }
+                }
                 Cluster cluster;
                 //acquire read lock for the service and cluster
                 TopologyManager.acquireReadLockForCluster(clusterId, serviceName);

http://git-wip-us.apache.org/repos/asf/stratos/blob/9934c2ab/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
index 17e1a90..9b5a29e 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
@@ -42,7 +42,7 @@ public class Group extends ParentComponent {
     }
 
     public String getUniqueIdentifier() {
-        return name;
+        return alias;
     }
 
     public String getAlias() {


[2/2] git commit: Merge branch '4.0.0-grouping' of https://git-wip-us.apache.org/repos/asf/stratos into 4.0.0-grouping

Posted by re...@apache.org.
Merge branch '4.0.0-grouping' of https://git-wip-us.apache.org/repos/asf/stratos into 4.0.0-grouping


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

Branch: refs/heads/4.0.0-grouping
Commit: 0a22c7bba152c8814f7d6b5590fa7cda4a879a66
Parents: 9934c2a a70bf64
Author: reka <rt...@gmail.com>
Authored: Thu Oct 9 19:27:22 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Oct 9 19:27:22 2014 +0530

----------------------------------------------------------------------
 .../conf/LoadBalancerConfiguration.java         |   7 +-
 .../StratosManagerTopologyEventReceiver.java    |  67 +++--
 components/org.apache.stratos.messaging/pom.xml |   7 +-
 .../domain/topology/locking/TopologyLock.java   |  20 +-
 .../topology/locking/TopologyLockHierarchy.java |  18 +-
 .../ApplicationActivatedMessageProcessor.java   |   6 +-
 .../ApplicationCreatedMessageProcessor.java     |  10 +-
 .../ApplicationRemovedMessageProcessor.java     |  10 +-
 .../topology/ClusterActivatedProcessor.java     |   6 +-
 .../ClusterCreatedMessageProcessor.java         |   6 +-
 .../ClusterMaintenanceModeMessageProcessor.java |   6 +-
 .../ClusterRemovedMessageProcessor.java         |   6 +-
 .../CompleteTopologyMessageProcessor.java       |  12 +-
 .../topology/GroupActivatedProcessor.java       |   6 +-
 .../InstanceSpawnedMessageProcessor.java        |   6 +-
 .../MemberActivatedMessageProcessor.java        |   6 +-
 .../MemberMaintenanceModeProcessor.java         |   6 +-
 .../MemberReadyToShutdownMessageProcessor.java  |   6 +-
 .../topology/MemberStartedMessageProcessor.java |   6 +-
 .../MemberSuspendedMessageProcessor.java        |   6 +-
 .../MemberTerminatedMessageProcessor.java       |   6 +-
 .../ServiceCreatedMessageProcessor.java         |   6 +-
 .../ServiceRemovedMessageProcessor.java         |   6 +-
 .../topology/updater/TopologyUpdater.java       | 272 +++++++++++++++++++
 .../receiver/topology/TopologyManager.java      | 245 +----------------
 .../topology/locking/TopologyLockingTest.java   |  41 +--
 26 files changed, 433 insertions(+), 366 deletions(-)
----------------------------------------------------------------------