You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/05/10 10:42:36 UTC

stratos git commit: Fixing comma separated dependency JSON definitions and updating samples

Repository: stratos
Updated Branches:
  refs/heads/master ff31e107c -> 112680a12


Fixing comma separated dependency JSON definitions and updating samples


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

Branch: refs/heads/master
Commit: 112680a12ec5dc0a53d8253eb7818bf0e76adf07
Parents: ff31e10
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sun May 10 14:12:10 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sun May 10 14:12:30 2015 +0530

----------------------------------------------------------------------
 .../ApplicationNetworkPartitionIdListBean.java  |   2 +
 .../beans/application/DependencyBean.java       |  15 +-
 .../common/beans/application/GroupBean.java     |   2 +
 .../application/ScalingDependentsBean.java      |  43 ++++
 .../beans/application/StartupOrderBean.java     |  43 ++++
 .../util/converter/ObjectConverter.java         | 148 ++++++++----
 .../artifacts/application.json                  | 228 ++++++++++---------
 .../artifacts/application.json                  |   9 +-
 .../artifacts/application.json                  |   7 +-
 .../artifacts/application.json                  |   8 +-
 .../artifacts/application.json                  |   7 +-
 .../sample-groups/artifacts/application.json    |   7 +-
 .../artifacts/application.json                  |   7 +-
 .../single-group-app/artifacts/application.json |  39 ++--
 samples/cartridges-groups/app-group.json        |  27 ++-
 samples/cartridges-groups/esb-php-group.json    |   7 +-
 samples/cartridges-groups/group1.json           |  14 +-
 samples/cartridges-groups/group1b.json          |   7 +-
 samples/cartridges-groups/group6c6.json         |   7 +-
 samples/cartridges-groups/mysql-php-group.json  |  16 +-
 20 files changed, 439 insertions(+), 204 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationNetworkPartitionIdListBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationNetworkPartitionIdListBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationNetworkPartitionIdListBean.java
index 021d2dd..2a783ba 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationNetworkPartitionIdListBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationNetworkPartitionIdListBean.java
@@ -26,6 +26,8 @@ import java.util.List;
 @XmlRootElement(name = "applicationNetworkPartitions")
 public class ApplicationNetworkPartitionIdListBean implements Serializable {
 
+    private static final long serialVersionUID = -808839208993265896L;
+
     private List<String> networkPartitionIds;
 
     public List<String> getNetworkPartitionIds() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/DependencyBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/DependencyBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/DependencyBean.java
index b92b68f..3d3f039 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/DependencyBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/DependencyBean.java
@@ -26,10 +26,10 @@ import java.util.List;
 @XmlRootElement(name = "dependencies")
 public class DependencyBean implements Serializable {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = -2175965139379577971L;
 
-    private List<String> startupOrders;
-    private List<String> scalingDependents;
+    private List<StartupOrderBean> startupOrders;
+    private List<ScalingDependentsBean> scalingDependents;
     private String terminationBehaviour;
 
     public String getTerminationBehaviour() {
@@ -40,20 +40,19 @@ public class DependencyBean implements Serializable {
         this.terminationBehaviour = terminationBehaviour;
     }
 
-    public List<String> getStartupOrders() {
+    public List<StartupOrderBean> getStartupOrders() {
         return startupOrders;
     }
 
-    public void setStartupOrders(List<String> startupOrders) {
+    public void setStartupOrders(List<StartupOrderBean> startupOrders) {
         this.startupOrders = startupOrders;
     }
 
-    public List<String> getScalingDependents() {
+    public List<ScalingDependentsBean> getScalingDependents() {
         return scalingDependents;
     }
 
-    public void setScalingDependents(List<String> scalingDependants) {
+    public void setScalingDependents(List<ScalingDependentsBean> scalingDependants) {
         this.scalingDependents = scalingDependants;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/GroupBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/GroupBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/GroupBean.java
index 0067883..f4fccbe 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/GroupBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/GroupBean.java
@@ -26,6 +26,8 @@ import java.util.List;
 @XmlRootElement(name = "groups")
 public class GroupBean implements Serializable {
 
+    private static final long serialVersionUID = 4696832597498594267L;
+
     private String name;
     private List<GroupBean> groups;
     private List<String> cartridges;

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ScalingDependentsBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ScalingDependentsBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ScalingDependentsBean.java
new file mode 100644
index 0000000..06c490e
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ScalingDependentsBean.java
@@ -0,0 +1,43 @@
+package org.apache.stratos.common.beans.application;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Scaling dependents bean.
+ */
+@XmlRootElement(name="scalingDependents")
+public class ScalingDependentsBean implements Serializable {
+
+    private static final long serialVersionUID = -3495705783732405914L;
+
+    private List<String> aliases;
+
+    public ScalingDependentsBean() {
+        aliases = new ArrayList<String>();
+    }
+
+    public List<String> getAliases() {
+        return aliases;
+    }
+
+    public void setAliases(List<String> aliases) {
+        this.aliases = aliases;
+    }
+
+    public void addAlias(String alias) {
+        aliases.add(alias);
+    }
+
+    public void removeAlias(String alias) {
+        if(aliases.contains(alias)) {
+            aliases.remove(alias);
+        }
+    }
+
+    public boolean containsAlias(String alias) {
+        return aliases.contains(alias);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/StartupOrderBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/StartupOrderBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/StartupOrderBean.java
new file mode 100644
index 0000000..8c2362a
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/StartupOrderBean.java
@@ -0,0 +1,43 @@
+package org.apache.stratos.common.beans.application;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Startup dependency order bean.
+ */
+@XmlRootElement(name = "startupOrders")
+public class StartupOrderBean implements Serializable {
+
+    private static final long serialVersionUID = 735897654230989762L;
+
+    private List<String> aliases;
+
+    public StartupOrderBean() {
+        aliases = new ArrayList<String>();
+    }
+
+    public List<String> getAliases() {
+        return aliases;
+    }
+
+    public void setAliases(List<String> aliases) {
+        this.aliases = aliases;
+    }
+
+    public void addAlias(String alias) {
+        aliases.add(alias);
+    }
+
+    public void removeAlias(String alias) {
+        if(aliases.contains(alias)) {
+            aliases.remove(alias);
+        }
+    }
+
+    public boolean containsAlias(String alias) {
+        return aliases.contains(alias);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 4950e43..48f48ec 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -1092,20 +1092,58 @@ public class ObjectConverter {
     }
 
     private static DependencyBean convertStubDependencyContextsToDependencyDefinitions(DependencyContext dependencyContext) {
-        DependencyBean dependencyDefinitions = new DependencyBean();
-        dependencyDefinitions.setTerminationBehaviour(dependencyContext.getTerminationBehaviour());
+        DependencyBean dependencyBean = new DependencyBean();
+        dependencyBean.setTerminationBehaviour(dependencyContext.getTerminationBehaviour());
 
         if (dependencyContext.getStartupOrdersContexts() != null) {
-            List<String> startupOrders = new ArrayList<String>();
-            startupOrders.addAll(Arrays.asList(dependencyContext.getStartupOrdersContexts()));
-            dependencyDefinitions.setStartupOrders(startupOrders);
+            List<StartupOrderBean> startupOrderBeans = convertStringArrayToStartupOrderBeans(
+                    dependencyContext.getStartupOrdersContexts());
+            dependencyBean.setStartupOrders(startupOrderBeans);
         }
         if (dependencyContext.getScalingDependents() != null) {
-            List<String> scalingDependents = new ArrayList<String>();
-            scalingDependents.addAll(Arrays.asList(dependencyContext.getScalingDependents()));
-            dependencyDefinitions.setScalingDependents(scalingDependents);
+            List<ScalingDependentsBean> scalingDependentBeans = convertStringArrayToDependentScalingBeans(
+                    dependencyContext.getScalingDependents());
+            dependencyBean.setScalingDependents(scalingDependentBeans);
+        }
+        return dependencyBean;
+    }
+
+    private static List<StartupOrderBean> convertStringArrayToStartupOrderBeans(String[] startupOrders) {
+        List<StartupOrderBean> startupOrderBeans = new ArrayList<StartupOrderBean>();
+        if(startupOrders != null) {
+            for (String aliasArrayList : startupOrders) {
+                if (StringUtils.isNotBlank(aliasArrayList)) {
+                    String[] aliasArray = aliasArrayList.split(",");
+                    StartupOrderBean startupOrderBean = new StartupOrderBean();
+                    for (String alias : aliasArray) {
+                        if (StringUtils.isNotBlank(alias)) {
+                            startupOrderBean.addAlias(alias);
+                        }
+                    }
+                    startupOrderBeans.add(startupOrderBean);
+                }
+            }
+        }
+        return startupOrderBeans;
+    }
+
+    private static List<ScalingDependentsBean> convertStringArrayToDependentScalingBeans(String[] scalingDependents) {
+        List<ScalingDependentsBean> scalingDependentBeans = new ArrayList<ScalingDependentsBean>();
+        if(scalingDependents != null) {
+            for (String aliasArrayList : scalingDependents) {
+                if (StringUtils.isNotBlank(aliasArrayList)) {
+                    String[] aliasArray = aliasArrayList.split(",");
+                    ScalingDependentsBean scalingDependentsBean = new ScalingDependentsBean();
+                    for (String alias : aliasArray) {
+                        if (StringUtils.isNotBlank(alias)) {
+                            scalingDependentsBean.addAlias(alias);
+                        }
+                    }
+                    scalingDependentBeans.add(scalingDependentsBean);
+                }
+            }
         }
-        return dependencyDefinitions;
+        return scalingDependentBeans;
     }
 
     private static List<CartridgeReferenceBean> convertStubCartridgeContextsToCartridgeReferenceBeans(
@@ -1305,29 +1343,42 @@ public class ObjectConverter {
     }
 
 
-    private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyBean dependencyDefinitions) {
-
-        if (dependencyDefinitions == null) {
+    private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyBean dependencyBean) {
+        if (dependencyBean == null) {
             return null;
         }
 
         DependencyContext dependencyContext = new DependencyContext();
-        dependencyContext.setTerminationBehaviour(dependencyDefinitions.getTerminationBehaviour());
+        dependencyContext.setTerminationBehaviour(dependencyBean.getTerminationBehaviour());
 
-        if (dependencyDefinitions.getStartupOrders() != null) {
-            String[] startupOrders = new String[dependencyDefinitions.getStartupOrders().size()];
-            startupOrders = dependencyDefinitions.getStartupOrders().toArray(startupOrders);
-            dependencyContext.setStartupOrdersContexts(startupOrders);
+        if (dependencyBean.getStartupOrders() != null) {
+            List<String> startupOrders = convertStartupOrdersBeansToStringList(dependencyBean.getStartupOrders());
+            dependencyContext.setStartupOrdersContexts(startupOrders.toArray(new String[startupOrders.size()]));
         }
-        if (dependencyDefinitions.getScalingDependents() != null) {
-            String[] scalingDependents = new String[dependencyDefinitions.getScalingDependents().size()];
-            scalingDependents = dependencyDefinitions.getScalingDependents().toArray(scalingDependents);
-            dependencyContext.setScalingDependents(scalingDependents);
+        if (dependencyBean.getScalingDependents() != null) {
+            List<String> scalingDependents = convertScalingDependentsBeansToStringList(dependencyBean.getScalingDependents());
+            dependencyContext.setScalingDependents(scalingDependents.toArray(new String[scalingDependents.size()]));
         }
-
         return dependencyContext;
     }
 
+    private static List<String> convertScalingDependentsBeansToStringList(List<ScalingDependentsBean> scalingDependentsBeans) {
+        List<String> scalingDependents = new ArrayList<String>();
+        if(scalingDependentsBeans != null) {
+            for (ScalingDependentsBean scalingDependentsBean : scalingDependentsBeans) {
+                StringBuilder stringBuilder = new StringBuilder();
+                for (String alias : scalingDependentsBean.getAliases()) {
+                    if (stringBuilder.length() > 0) {
+                        stringBuilder.append(",");
+                    }
+                    stringBuilder.append(alias);
+                }
+                scalingDependents.add(stringBuilder.toString());
+            }
+        }
+        return scalingDependents;
+    }
+
     private static org.apache.stratos.autoscaler.stub.pojo.GroupContext[]
     convertGroupDefinitionsToStubGroupContexts(List<GroupReferenceBean> groupDefinitions) {
 
@@ -1527,29 +1578,44 @@ public class ObjectConverter {
         cartridges = cartridgesDefinitions.toArray(cartridges);
         servicegroup.setCartridges(cartridges);
 
-        DependencyBean dependencyDefinitions = groupBean.getDependencies();
+        DependencyBean dependencyBean = groupBean.getDependencies();
 
-        if (dependencyDefinitions != null) {
+        if (dependencyBean != null) {
             Dependencies dependencies = new Dependencies();
-            List<String> startupOrdersDef = dependencyDefinitions.getStartupOrders();
-            if (startupOrdersDef != null) {
-                String[] startupOrders = new String[startupOrdersDef.size()];
-                startupOrders = startupOrdersDef.toArray(startupOrders);
-                dependencies.setStartupOrders(startupOrders);
+            List<StartupOrderBean> startupOrderBeans = dependencyBean.getStartupOrders();
+            if (startupOrderBeans != null) {
+                List<String> startupOrders = convertStartupOrdersBeansToStringList(dependencyBean.getStartupOrders());
+                dependencies.setStartupOrders(startupOrders.toArray(new String[startupOrders.size()]));
             }
             // validate termination behavior
-            validateTerminationBehavior(dependencyDefinitions.getTerminationBehaviour());
-            dependencies.setTerminationBehaviour(dependencyDefinitions.getTerminationBehaviour());
-            if (dependencyDefinitions.getScalingDependents() != null) {
-                dependencies.setScalingDependants(dependencyDefinitions.getScalingDependents()
-                        .toArray(new String[dependencyDefinitions.getScalingDependents().size()]));
+            validateTerminationBehavior(dependencyBean.getTerminationBehaviour());
+            dependencies.setTerminationBehaviour(dependencyBean.getTerminationBehaviour());
+            if (dependencyBean.getScalingDependents() != null) {
+                List<String> scalingDependents = convertScalingDependentsBeansToStringList(dependencyBean.getScalingDependents());
+                dependencies.setScalingDependants(scalingDependents.toArray(new String[scalingDependents.size()]));
             }
             servicegroup.setDependencies(dependencies);
         }
-
         return servicegroup;
     }
 
+    private static List<String> convertStartupOrdersBeansToStringList(List<StartupOrderBean> startupOrderBeans) {
+        List<String> startupOrders = new ArrayList<String>();
+        if(startupOrderBeans != null) {
+            for (StartupOrderBean startupOrderBean : startupOrderBeans) {
+                StringBuilder stringBuilder = new StringBuilder();
+                for (String alias : startupOrderBean.getAliases()) {
+                    if (stringBuilder.length() > 0) {
+                        stringBuilder.append(",");
+                    }
+                    stringBuilder.append(alias);
+                }
+                startupOrders.add(stringBuilder.toString());
+            }
+        }
+        return startupOrders;
+    }
+
     public static GroupBean convertStubServiceGroupToServiceGroupDefinition(ServiceGroup serviceGroup) {
         if (serviceGroup == null) {
             return null;
@@ -1569,21 +1635,21 @@ public class ObjectConverter {
         }
 
         if (dependencies != null) {
-            DependencyBean dependencyDefinition = new DependencyBean();
+            DependencyBean dependencyBean = new DependencyBean();
             String[] startupOrders = dependencies.getStartupOrders();
             if (startupOrders != null && startupOrders[0] != null) {
                 List<String> startupOrdersDef = Arrays.asList(startupOrders);
-                dependencyDefinition.setStartupOrders(startupOrdersDef);
+                //dependencyBean.setStartupOrders(startupOrdersDef);
             }
 
             String[] scalingDependants = dependencies.getScalingDependants();
             if (scalingDependants != null && scalingDependants[0] != null) {
                 List<String> scalingDependenciesDef = Arrays.asList(scalingDependants);
-                dependencyDefinition.setScalingDependents(scalingDependenciesDef);
+                //dependencyBean.setScalingDependents(scalingDependenciesDef);
             }
 
-            dependencyDefinition.setTerminationBehaviour(dependencies.getTerminationBehaviour());
-            serviceGroupDefinition.setDependencies(dependencyDefinition);
+            dependencyBean.setTerminationBehaviour(dependencies.getTerminationBehaviour());
+            serviceGroupDefinition.setDependencies(dependencyBean);
         }
 
         List<String> cartridgesDef = new ArrayList<String>(Arrays.asList(cartridges));
@@ -1592,8 +1658,6 @@ public class ObjectConverter {
         }
 
         serviceGroupDefinition.setGroups(groupDefinitions);
-
-
         return serviceGroupDefinition;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/complex/php-tomcat-group-postgres-mysql-group-esb/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/complex/php-tomcat-group-postgres-mysql-group-esb/artifacts/application.json b/samples/applications/complex/php-tomcat-group-postgres-mysql-group-esb/artifacts/application.json
index 8f0e1dd..c4ba93f 100644
--- a/samples/applications/complex/php-tomcat-group-postgres-mysql-group-esb/artifacts/application.json
+++ b/samples/applications/complex/php-tomcat-group-postgres-mysql-group-esb/artifacts/application.json
@@ -2,120 +2,130 @@
     "alias": "mycompositeapp",
     "applicationId": "my-compositeapp",
     "components": {
-      "groups": [
-        {
-          "name": "app-group",
-          "alias": "my-appgroup",
-          "cartridges": [
+        "groups": [
             {
-              "type": "tomcat",
-              "cartridgeMax": 2,
-              "cartridgeMin": 1,
-              "subscribableInfo": {
-                "alias": "my-tomcat",
-                "artifactRepository": {
-                  "alias": "my-tomcat",
-                  "privateRepo": true,
-                  "repoPassword": "password",
-                  "repoUrl": "http://xxx:10080/git/default.git",
-                  "repoUsername": "user"
-                },
-                "autoscalingPolicy": "autoscaling-policy-1",
-                "deploymentPolicy": "deployment-policy-2"
-              }
+                "name": "app-group",
+                "alias": "my-appgroup",
+                "cartridges": [
+                    {
+                        "type": "tomcat",
+                        "cartridgeMax": 2,
+                        "cartridgeMin": 1,
+                        "subscribableInfo": {
+                            "alias": "my-tomcat",
+                            "artifactRepository": {
+                                "alias": "my-tomcat",
+                                "privateRepo": true,
+                                "repoPassword": "password",
+                                "repoUrl": "http://xxx:10080/git/default.git",
+                                "repoUsername": "user"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-1",
+                            "deploymentPolicy": "deployment-policy-2"
+                        }
+                    },
+                    {
+                        "type": "php",
+                        "cartridgeMax": 2,
+                        "cartridgeMin": 1,
+                        "subscribableInfo": {
+                            "alias": "my-php",
+                            "artifactRepository": {
+                                "privateRepo": true,
+                                "repoPassword": "password",
+                                "repoUrl": "http://xxx:10080/git/default.git",
+                                "repoUsername": "user"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-1",
+                            "deploymentPolicy": "deployment-policy-2"
+                        }
+                    }
+                ],
+                "groupMaxInstances": 2,
+                "groupMinInstances": 1,
+                "groupScalingEnabled": true
             },
             {
-              "type": "php",
-              "cartridgeMax": 2,
-              "cartridgeMin": 1,
-              "subscribableInfo": {
-                "alias": "my-php",
-                "artifactRepository": {
-
-                  "privateRepo": true,
-                  "repoPassword": "password",
-                  "repoUrl": "http://xxx:10080/git/default.git",
-                  "repoUsername": "user"
-                },
-                "autoscalingPolicy": "autoscaling-policy-1",
-                "deploymentPolicy": "deployment-policy-2"
-              }
+                "name": "db-group",
+                "alias": "my-dbgroup",
+                "cartridges": [
+                    {
+                        "type": "postgres",
+                        "cartridgeMax": 2,
+                        "cartridgeMin": 1,
+                        "subscribableInfo": {
+                            "alias": "my-postgres",
+                            "artifactRepository": {
+                                "alias": "my-postgres",
+                                "privateRepo": false,
+                                "repoPassword": "password",
+                                "repoUrl": "http://xxx:10080/git/default.git",
+                                "repoUsername": "user"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-1",
+                            "deploymentPolicy": "deployment-policy-2"
+                        }
+                    },
+                    {
+                        "type": "mysql",
+                        "cartridgeMax": 2,
+                        "cartridgeMin": 1,
+                        "subscribableInfo": {
+                            "alias": "my-mysql",
+                            "artifactRepository": {
+                                "alias": "my-mysql",
+                                "privateRepo": true,
+                                "repoPassword": "password",
+                                "repoUrl": "http://xxx:10080/git/default.git",
+                                "repoUsername": "user"
+                            },
+                            "autoscalingPolicy": "autoscaling-policy-1",
+                            "deploymentPolicy": "deployment-policy-2"
+                        }
+                    }
+                ],
+                "groupMaxInstances": 2,
+                "groupMinInstances": 1,
+                "groupScalingEnabled": true
             }
-          ],
-          "groupMaxInstances": 2,
-          "groupMinInstances": 1,
-          "groupScalingEnabled": true
-        },
-        {
-          "name": "db-group",
-          "alias": "my-dbgroup",
-          "cartridges": [
-            {
-              "type": "postgres",
-              "cartridgeMax": 2,
-              "cartridgeMin": 1,
-              "subscribableInfo": {
-                "alias": "my-postgres",
-                "artifactRepository": {
-                  "alias": "my-postgres",
-                  "privateRepo": false,
-                  "repoPassword": "password",
-                  "repoUrl": "http://xxx:10080/git/default.git",
-                  "repoUsername": "user"
-                },
-                "autoscalingPolicy": "autoscaling-policy-1",
-                "deploymentPolicy": "deployment-policy-2"
-              }
-            },
+        ],
+        "cartridges": [
             {
-              "type": "mysql",
-              "cartridgeMax": 2,
-              "cartridgeMin": 1,
-              "subscribableInfo": {
-                "alias": "my-mysql",
-                "artifactRepository": {
-                  "alias": "my-mysql",
-                  "privateRepo": true,
-                  "repoPassword": "password",
-                  "repoUrl": "http://xxx:10080/git/default.git",
-                  "repoUsername": "user"
-                },
-                "autoscalingPolicy": "autoscaling-policy-1",
-                "deploymentPolicy": "deployment-policy-2"
-              }
+                "type": "esb",
+                "cartridgeMax": 2,
+                "cartridgeMin": 1,
+                "subscribableInfo": {
+                    "alias": "my-esb",
+                    "artifactRepository": {
+                        "privateRepo": true,
+                        "repoPassword": "password",
+                        "repoUrl": "http://xxx:10080/git/default.git",
+                        "repoUsername": "user"
+                    },
+                    "autoscalingPolicy": "autoscaling-policy-1",
+                    "deploymentPolicy": "deployment-policy-2"
+                }
             }
-          ],
-          "groupMaxInstances": 2,
-          "groupMinInstances": 1,
-          "groupScalingEnabled": true
-        }
-      ],
-      "cartridges": [
-        {
-          "type": "esb",
-          "cartridgeMax": 2,
-          "cartridgeMin": 1,
-          "subscribableInfo": {
-            "alias": "my-esb",
-            "artifactRepository": {
-              "privateRepo": true,
-              "repoPassword": "password",
-              "repoUrl": "http://xxx:10080/git/default.git",
-              "repoUsername": "user"
-            },
-            "autoscalingPolicy": "autoscaling-policy-1",
-            "deploymentPolicy": "deployment-policy-2"
-          }
-        }
-      ],
-      "dependencies": {
-        "scalingDependents": {
-          "group.my-appgroup, cartridge.my-esb"
-        },
-       "startupOrders": [
-          "group.my-dbgroup,group.my-appgroup","group.my-dbgroup,cartridge.my-esb"
         ],
-        "terminationBehaviour": "terminate-none"
-      }
+        "dependencies": {
+            "scalingDependents": [
+                {
+                    "aliases": [
+                        "group.my-appgroup, cartridge.my-esb"
+                    ]
+                }
+            ],
+            "startupOrders": [
+                {
+                    "aliases": [
+                        "group.my-dbgroup",
+                        "group.my-appgroup",
+                        "group.my-dbgroup",
+                        "cartridge.my-esb"
+                    ]
+                }
+            ],
+            "terminationBehaviour": "terminate-none"
+        }
     }
-  }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/nested/complex-app-with-lb/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/nested/complex-app-with-lb/artifacts/application.json b/samples/applications/nested/complex-app-with-lb/artifacts/application.json
index e3ba6af..3542ee8 100644
--- a/samples/applications/nested/complex-app-with-lb/artifacts/application.json
+++ b/samples/applications/nested/complex-app-with-lb/artifacts/application.json
@@ -132,7 +132,14 @@
         ],
         "dependencies": {
             "startupOrders": [
-                "cartridge.my-tomcat,cartridge.my-stratos-lb,group.my-group6,group.my-group8"
+                {
+                    "aliases" : [
+                        "cartridge.my-tomcat",
+                        "cartridge.my-stratos-lb",
+                        "group.my-group6",
+                        "group.my-group8"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-all"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/nested/single-level-nested-group-app/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/nested/single-level-nested-group-app/artifacts/application.json b/samples/applications/nested/single-level-nested-group-app/artifacts/application.json
index d7a6e04..2f3267a 100644
--- a/samples/applications/nested/single-level-nested-group-app/artifacts/application.json
+++ b/samples/applications/nested/single-level-nested-group-app/artifacts/application.json
@@ -73,7 +73,12 @@
         ],
         "dependencies": {
             "startupOrders": [
-                "group.my-group6,cartridge.my-tomcat"
+                {
+                    "aliases" : [
+                        "group.my-group6",
+                        "cartridge.my-tomcat"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-all"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/nested/single-level-nested-groups-app/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/nested/single-level-nested-groups-app/artifacts/application.json b/samples/applications/nested/single-level-nested-groups-app/artifacts/application.json
index 7b85f93..53827f3 100644
--- a/samples/applications/nested/single-level-nested-groups-app/artifacts/application.json
+++ b/samples/applications/nested/single-level-nested-groups-app/artifacts/application.json
@@ -122,7 +122,13 @@
         ],
         "dependencies": {
             "startupOrders": [
-                "group.my-group8,cartridge.my-tomcat,group.my-group6"
+                {
+                    "aliases" : [
+                        "group.my-group8",
+                        "cartridge.my-tomcat",
+                        "group.my-group6"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-all"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/scaling/dependent-scaling/sample-cartridges/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/scaling/dependent-scaling/sample-cartridges/artifacts/application.json b/samples/applications/scaling/dependent-scaling/sample-cartridges/artifacts/application.json
index 1fdb7ba..830e552 100644
--- a/samples/applications/scaling/dependent-scaling/sample-cartridges/artifacts/application.json
+++ b/samples/applications/scaling/dependent-scaling/sample-cartridges/artifacts/application.json
@@ -38,7 +38,12 @@
         ],
         "dependencies": {
             "scalingDependents": [
-                "cartridge.my-tomcat, cartridge.my-php"
+                {
+                    "aliases" : [
+                        "cartridge.my-tomcat",
+                        "cartridge.my-php"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-none"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/scaling/dependent-scaling/sample-groups/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/scaling/dependent-scaling/sample-groups/artifacts/application.json b/samples/applications/scaling/dependent-scaling/sample-groups/artifacts/application.json
index 9a69254..29467f0 100644
--- a/samples/applications/scaling/dependent-scaling/sample-groups/artifacts/application.json
+++ b/samples/applications/scaling/dependent-scaling/sample-groups/artifacts/application.json
@@ -65,7 +65,12 @@
         ],
         "dependencies": {
             "scalingDependents": [
-                "group.my-esb-php-group, cartridge.my-tomcat"
+                {
+                    "aliases" : [
+                        "group.my-esb-php-group",
+                        "cartridge.my-tomcat"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-none"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/scaling/group-scaling/group-scaling-app/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/scaling/group-scaling/group-scaling-app/artifacts/application.json b/samples/applications/scaling/group-scaling/group-scaling-app/artifacts/application.json
index c2b3f3c..f606b4f 100644
--- a/samples/applications/scaling/group-scaling/group-scaling-app/artifacts/application.json
+++ b/samples/applications/scaling/group-scaling/group-scaling-app/artifacts/application.json
@@ -88,7 +88,12 @@
         ],
         "dependencies": {
             "startupOrders": [
-                "group.my-group1,cartridge.my-c4"
+                {
+                    "aliases" : [
+                        "group.my-group1",
+                        "cartridge.my-c4"
+                    ]
+                }
             ],
             "terminationBehaviour": "terminate-dependents"
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/applications/simple/single-group-app/artifacts/application.json
----------------------------------------------------------------------
diff --git a/samples/applications/simple/single-group-app/artifacts/application.json b/samples/applications/simple/single-group-app/artifacts/application.json
index a66f8f0..59c1398 100644
--- a/samples/applications/simple/single-group-app/artifacts/application.json
+++ b/samples/applications/simple/single-group-app/artifacts/application.json
@@ -1,4 +1,3 @@
-
 {
     "applicationId": "cartridge-group-app",
     "alias": "my-cartridge-group-app",
@@ -7,7 +6,7 @@
             {
                 "name": "esb-php-group",
                 "alias": "my-esb-php-group",
-	        "deploymentPolicy":"deployment-policy-1",
+                "deploymentPolicy": "deployment-policy-1",
                 "groupMinInstances": 1,
                 "groupMaxInstances": 2,
                 "cartridges": [
@@ -18,12 +17,12 @@
                         "subscribableInfo": {
                             "alias": "my-esb",
                             "autoscalingPolicy": "autoscaling-policy-1",
-                	    "deploymentPolicy":"deployment-policy-1",
-			    "artifactRepository":{
-                                "privateRepo":false,
-                                "repoUrl":"https://github.com/imesh/stratos-esb-applications.git",
-                                "repoUsername":"",
-                                "repoPassword":""
+                            "deploymentPolicy": "deployment-policy-1",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": "https://github.com/imesh/stratos-esb-applications.git",
+                                "repoUsername": "",
+                                "repoPassword": ""
                             }
                         }
                     },
@@ -34,12 +33,12 @@
                         "subscribableInfo": {
                             "alias": "my-php",
                             "autoscalingPolicy": "autoscaling-policy-1",
-                 	    "deploymentPolicy":"deployment-policy-1",
-                            "artifactRepository":{
-                                "privateRepo":false,
-                                "repoUrl":"https://github.com/imesh/stratos-php-applications.git",
-                                "repoUsername":"",
-                                "repoPassword":""
+                            "deploymentPolicy": "deployment-policy-1",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": "https://github.com/imesh/stratos-php-applications.git",
+                                "repoUsername": "",
+                                "repoPassword": ""
                             }
                         }
                     }
@@ -54,12 +53,12 @@
                 "subscribableInfo": {
                     "alias": "my-tomcat",
                     "autoscalingPolicy": "autoscaling-policy-1",
-                    "deploymentPolicy":"deployment-policy-1",
-                    "artifactRepository":{
-                        "privateRepo":false,
-                        "repoUrl":"https://github.com/imesh/stratos-tomcat-applications.git",
-                        "repoUsername":"",
-                        "repoPassword":""
+                    "deploymentPolicy": "deployment-policy-1",
+                    "artifactRepository": {
+                        "privateRepo": false,
+                        "repoUrl": "https://github.com/imesh/stratos-tomcat-applications.git",
+                        "repoUsername": "",
+                        "repoPassword": ""
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/app-group.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/app-group.json b/samples/cartridges-groups/app-group.json
index 91332c0..9644bc3 100644
--- a/samples/cartridges-groups/app-group.json
+++ b/samples/cartridges-groups/app-group.json
@@ -1,15 +1,20 @@
 {
-        "name": "app-group",
-        "cartridges": [
-            "tomcat",
-            "php"
-        ],
-        "dependencies": {
-            "terminationBehaviour": "terminate-all",
-	    "startupOrders": [
-            "cartridge.my-php,cartridge.my-tomcat"
+    "name": "app-group",
+    "cartridges": [
+        "tomcat",
+        "php"
+    ],
+    "dependencies": {
+        "terminationBehaviour": "terminate-all",
+        "startupOrders": [
+            {
+                "aliases": [
+                    "cartridge.my-php",
+                    "cartridge.my-tomcat"
+                ]
+            }
         ]
-        },
-        "groupScalingEnabled": true
+    },
+    "groupScalingEnabled": true
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/esb-php-group.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/esb-php-group.json b/samples/cartridges-groups/esb-php-group.json
index 8175294..c702da9 100644
--- a/samples/cartridges-groups/esb-php-group.json
+++ b/samples/cartridges-groups/esb-php-group.json
@@ -6,7 +6,12 @@
     ],
     "dependencies": {
         "startupOrders": [
-            "cartridge.my-esb,cartridge.my-php"
+            {
+                "aliases" : [
+                    "cartridge.my-esb",
+                    "cartridge.my-php"
+                ]
+            }
         ],
         "terminationBehaviour": "terminate-none"
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/group1.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/group1.json b/samples/cartridges-groups/group1.json
index 8ca4fb5..8f14c98 100644
--- a/samples/cartridges-groups/group1.json
+++ b/samples/cartridges-groups/group1.json
@@ -9,7 +9,12 @@
             ],
             "dependencies": {
                 "startupOrders": [
-                    "cartridge.my-c3-group2,cartridge.my-c2-group2"
+                    {
+                        "aliases" : [
+                            "cartridge.my-c3-group2",
+                            "cartridge.my-c2-group2"
+                        ]
+                    }
                 ],
                 "terminationBehaviour": "terminate-all"
             }
@@ -20,7 +25,12 @@
     ],
     "dependencies": {
         "startupOrders": [
-            "cartridge.my-c1-group1,group.group2"
+            {
+                "aliases" : [
+                    "cartridge.my-c1-group1",
+                    "group.group2"
+                ]
+            }
         ],
         "terminationBehaviour": "terminate-dependents"
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/group1b.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/group1b.json b/samples/cartridges-groups/group1b.json
index 67b106f..2ed4b8e 100644
--- a/samples/cartridges-groups/group1b.json
+++ b/samples/cartridges-groups/group1b.json
@@ -6,7 +6,12 @@
     ],
     "dependencies": {
         "startupOrders": [
-            "cartridge.my-c3,cartridge.my-c2"
+            {
+                "aliases" : [
+                    "cartridge.my-c3",
+                    "cartridge.my-c2"
+                ]
+            }
         ],
         "terminationBehaviour": "terminate-all"
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/group6c6.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/group6c6.json b/samples/cartridges-groups/group6c6.json
index 85c2106..23b76e9 100644
--- a/samples/cartridges-groups/group6c6.json
+++ b/samples/cartridges-groups/group6c6.json
@@ -6,7 +6,12 @@
     ],
     "dependencies": {
         "startupOrders": [
-            "cartridge.tomcat2,cartridge.tomcat1"
+            {
+                "aliases" : [
+                    "cartridge.tomcat2",
+                    "cartridge.tomcat1"
+                ]
+            }
         ],
         "terminationBehaviour": "terminate-all"
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/112680a1/samples/cartridges-groups/mysql-php-group.json
----------------------------------------------------------------------
diff --git a/samples/cartridges-groups/mysql-php-group.json b/samples/cartridges-groups/mysql-php-group.json
index d3e2790..d55326b 100644
--- a/samples/cartridges-groups/mysql-php-group.json
+++ b/samples/cartridges-groups/mysql-php-group.json
@@ -6,11 +6,21 @@
     ],
     "dependencies": {
         "startupOrders": [
-            "cartridge.my-mysql,cartridge.my-php"
+            {
+                "aliases": [
+                    "cartridge.my-mysql",
+                    "cartridge.my-php"
+                ]
+            }
         ],
         "scalingDependents": [
-            "cartridge.my-mysql,cartridge.my-php"
-	],
+            {
+                "aliases": [
+                    "cartridge.my-mysql",
+                    "cartridge.my-php"
+                ]
+            }
+        ],
         "terminationBehaviour": "terminate-none"
     }
 }