adding samples for termination behavior test

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

Branch: refs/heads/master
Commit: 0eacfad932e3e100ce18b23def5637ac97e06e02
Parents: ced8fad
Author: reka <[email protected]>
Authored: Wed Aug 12 15:28:11 2015 +0530
Committer: reka <[email protected]>
Committed: Wed Aug 12 15:28:11 2015 +0530

----------------------------------------------------------------------
 .../integration/tests/TopologyHandler.java      |   94 +-
 .../application/GroupStartupOrderTest.java      |  226 ++++
 .../GroupTerminationBehaviorTest.java           |   27 +
 ...cation-policy-application-bursting-test.json |   18 +
 .../app-bursting-single-cartriddge-group.json   |   70 ++
 ...caling-policy-application-bursting-test.json |   14 +
 ...esb-php-group-application-bursting-test.json |   19 +
 .../mock/esb-application-bursting-test.json     |   50 +
 .../mock/php-application-bursting-test.json     |   51 +
 .../mock/tomcat-application-bursting-test.json  |   53 +
 ...oyment-policy-application-bursting-test.json |   32 +
 ...k-partition-application-bursting-test-1.json |   15 +
 ...k-partition-application-bursting-test-2.json |   24 +
 .../RegionOne.json                              |   17 +
 .../application-martin.json                     |  100 ++
 .../application-policy-1.json                   |   17 +
 .../application-s-g-c1-c2-c3-s.json             |  130 +++
 .../application.json                            |  108 ++
 .../application.json.orig                       |   89 ++
 .../startup-order-termination-behavior/c1.json  |   45 +
 .../startup-order-termination-behavior/c2.json  |   45 +
 .../startup-order-termination-behavior/c3.json  |   45 +
 .../startup-order-termination-behavior/c4.json  |   45 +
 .../startup-order-termination-behavior/c5.json  |  132 +++
 .../cartridge-groups-s-g-c1-c2-c3-s.json        |   26 +
 .../cartridge-groups-working.json               |   34 +
 .../cartridge-groups.json                       |   77 ++
 .../cartridge-groups.json.back                  |   53 +
 .../deploy.sh                                   |   43 +
 .../economy-policy.json                         |   15 +
 .../static-1.json                               |   17 +
 .../wso2carbon 2.log                            |  992 +++++++++++++++++
 .../wso2carbon-working 2.log                    | 1053 ++++++++++++++++++
 .../wso2carbon-working.log                      | 1053 ++++++++++++++++++
 .../wso2carbon.log                              |  992 +++++++++++++++++
 ...cation-policy-application-bursting-test.json |   17 +
 .../group-termination-behavior-test.json        |  101 ++
 ...caling-policy-application-bursting-test.json |   14 +
 ...-groups-group-termination-behavior-test.json |   58 +
 .../c1-group-termination-behavior-test.json     |   45 +
 .../c2-group-termination-behavior-test.json     |   45 +
 .../c3-group-termination-behavior-test.json     |   45 +
 .../c4-group-termination-behavior-test.json     |   45 +
 ...oyment-policy-termination-behavior-test.json |   22 +
 ...k-partition-application-bursting-test-1.json |   15 +
 .../src/test/resources/stratos-testing.xml      |    2 +-
 46 files changed, 6220 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java
 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java
index 7d1068a..85e370b 100644
--- 
a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java
+++ 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java
@@ -33,16 +33,16 @@ import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
 import org.apache.stratos.messaging.domain.topology.Service;
 import org.apache.stratos.messaging.event.Event;
+import 
org.apache.stratos.messaging.event.application.GroupInstanceCreatedEvent;
+import org.apache.stratos.messaging.event.topology.ClusterInstanceCreatedEvent;
 import org.apache.stratos.messaging.event.topology.MemberCreatedEvent;
 import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent;
-import 
org.apache.stratos.messaging.listener.topology.MemberCreatedEventListener;
-import 
org.apache.stratos.messaging.listener.topology.MemberInitializedEventListener;
-import 
org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener;
+import org.apache.stratos.messaging.listener.application.*;
+import org.apache.stratos.messaging.listener.topology.*;
 import 
org.apache.stratos.messaging.message.receiver.application.ApplicationManager;
 import 
org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
 import 
org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.apache.stratos.mock.iaas.client.MockIaasApiClient;
 
 import java.io.File;
 import java.rmi.RemoteException;
@@ -68,8 +68,10 @@ public class TopologyHandler {
     private ApplicationsEventReceiver applicationsEventReceiver;
     private TopologyEventReceiver topologyEventReceiver;
     public static TopologyHandler topologyHandler;
+    private Map<String, Map<String, Long>> terminatedNodes = new 
ConcurrentHashMap<String, Map<String, Long>>();
     private Map<String, Long> terminatedMembers = new 
ConcurrentHashMap<String, Long>();
-    private Map<String, Long> createdMembers = new ConcurrentHashMap<String, 
Long>();
+    private Map<String, Map<String, Long>> createdNodes = new 
ConcurrentHashMap<String, Map<String, Long>>();
+    private Map<String, Map<String, Long>> activeNodes = new 
ConcurrentHashMap<String, Map<String, Long>>();
 
     private TopologyHandler() {
         // Set jndi.properties.dir system property for initializing event 
receivers
@@ -79,7 +81,7 @@ public class TopologyHandler {
         initializeTopologyEventReceiver();
         assertApplicationTopologyInitialized();
         assertTopologyInitialized();
-        addEventListeners();
+        addTopologyEventListeners();
     }
 
     public static TopologyHandler getInstance() {
@@ -450,7 +452,7 @@ public class TopologyHandler {
         return StringUtils.removeEnd(path, File.separator);
     }
 
-    private void addEventListeners() {
+    private void addTopologyEventListeners() {
         topologyEventReceiver.addEventListener(new 
MemberTerminatedEventListener() {
             @Override
             protected void onEvent(Event event) {
@@ -463,8 +465,82 @@ public class TopologyHandler {
         topologyEventReceiver.addEventListener(new 
MemberCreatedEventListener() {
             @Override
             protected void onEvent(Event event) {
-                MemberCreatedEvent memberCreatedEvent = (MemberCreatedEvent) 
event;
-                createdMembers.put(memberCreatedEvent.getMemberId(), 
System.currentTimeMillis());
+
+
+            }
+        });
+
+        topologyEventReceiver.addEventListener(new 
ClusterInstanceCreatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                ClusterInstanceCreatedEvent event1 = 
(ClusterInstanceCreatedEvent) event;
+
+            }
+        });
+
+        topologyEventReceiver.addEventListener(new 
ClusterInstanceActivatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+            }
+        });
+
+        topologyEventReceiver.addEventListener(new 
ClusterInstanceInactivateEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+            }
+        });
+
+        topologyEventReceiver.addEventListener(new 
ClusterInstanceTerminatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+            }
+        });
+
+
+    }
+
+    private void addApplicationEventListeners() {
+        applicationsEventReceiver.addEventListener(new 
ApplicationInstanceCreatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+
+            }
+        });
+
+        applicationsEventReceiver.addEventListener(new 
GroupInstanceCreatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                GroupInstanceCreatedEvent event1 = (GroupInstanceCreatedEvent) 
event;
+                String appId = event1.getAppId();
+                String id = event1.getGroupId();
+                String instanceId = event1.getGroupInstance().getInstanceId();
+
+            }
+        });
+
+
+
+        applicationsEventReceiver.addEventListener(new 
GroupInstanceActivatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+            }
+        });
+
+        applicationsEventReceiver.addEventListener(new 
GroupInstanceInactivateEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+
+            }
+        });
+
+        applicationsEventReceiver.addEventListener(new 
GroupInstanceTerminatedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
 
             }
         });

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java
 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java
new file mode 100644
index 0000000..1f3aa56
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.integration.tests.application;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.beans.application.ApplicationBean;
+import org.apache.stratos.common.beans.cartridge.CartridgeGroupBean;
+import org.apache.stratos.common.beans.policy.deployment.ApplicationPolicyBean;
+import org.apache.stratos.integration.tests.RestConstants;
+import org.apache.stratos.integration.tests.StratosTestServerManager;
+import org.apache.stratos.integration.tests.TopologyHandler;
+import org.apache.stratos.messaging.domain.application.ApplicationStatus;
+import org.testng.annotations.Test;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertTrue;
+
+/**
+ * Handling the startup order of the group
+ */
+public class GroupStartupOrderTest extends StratosTestServerManager {
+    private static final Log log = 
LogFactory.getLog(SampleApplicationsTest.class);
+    private static final String RESOURCES_PATH = "/application-bursting-test";
+
+    @Test
+    public void testApplicationBusting() {
+        try {
+            log.info("-------------------------------Started application 
Bursting test case-------------------------------");
+
+            String autoscalingPolicyId = 
"autoscaling-policy-application-bursting-test";
+
+            boolean addedScalingPolicy = restClient.addEntity(RESOURCES_PATH + 
RestConstants.AUTOSCALING_POLICIES_PATH
+                            + "/" + autoscalingPolicyId + ".json",
+                    RestConstants.AUTOSCALING_POLICIES, 
RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(addedScalingPolicy, true);
+
+            boolean addedC1 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.CARTRIDGES_PATH + "/" + "esb-application-bursting-test.json",
+                    RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME);
+            assertEquals(addedC1, true);
+
+            boolean addedC2 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.CARTRIDGES_PATH + "/" + "php-application-bursting-test.json",
+                    RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME);
+            assertEquals(addedC2, true);
+
+            boolean addedC3 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.CARTRIDGES_PATH + "/" + "tomcat-application-bursting-test.json",
+                    RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME);
+            assertEquals(addedC3, true);
+
+            boolean addedG1 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.CARTRIDGE_GROUPS_PATH +
+                            "/" + 
"esb-php-group-application-bursting-test.json", RestConstants.CARTRIDGE_GROUPS,
+                    RestConstants.CARTRIDGE_GROUPS_NAME);
+            assertEquals(addedG1, true);
+
+            CartridgeGroupBean beanG1 = (CartridgeGroupBean) restClient.
+                    getEntity(RestConstants.CARTRIDGE_GROUPS, 
"esb-php-group-application-bursting-test",
+                            CartridgeGroupBean.class, 
RestConstants.CARTRIDGE_GROUPS_NAME);
+            assertEquals(beanG1.getName(), 
"esb-php-group-application-bursting-test");
+
+            boolean addedN1 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            
"network-partition-application-bursting-test-1.json",
+                    RestConstants.NETWORK_PARTITIONS, 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN1, true);
+
+            boolean addedN2 = restClient.addEntity(RESOURCES_PATH + 
RestConstants.NETWORK_PARTITIONS_PATH + "/" +
+                            
"network-partition-application-bursting-test-2.json",
+                    RestConstants.NETWORK_PARTITIONS, 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(addedN2, true);
+
+            boolean addedDep = restClient.addEntity(RESOURCES_PATH + 
RestConstants.DEPLOYMENT_POLICIES_PATH + "/" +
+                            "deployment-policy-application-bursting-test.json",
+                    RestConstants.DEPLOYMENT_POLICIES, 
RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(addedDep, true);
+
+            boolean added = restClient.addEntity(RESOURCES_PATH + 
RestConstants.APPLICATIONS_PATH + "/" +
+                            "app-bursting-single-cartriddge-group.json", 
RestConstants.APPLICATIONS,
+                    RestConstants.APPLICATIONS_NAME);
+            assertEquals(added, true);
+
+            ApplicationBean bean = (ApplicationBean) 
restClient.getEntity(RestConstants.APPLICATIONS,
+                    "application-bursting-test", ApplicationBean.class, 
RestConstants.APPLICATIONS_NAME);
+            assertEquals(bean.getApplicationId(), "application-bursting-test");
+
+            boolean addAppPolicy = restClient.addEntity(RESOURCES_PATH + 
RestConstants.APPLICATION_POLICIES_PATH + "/" +
+                            
"application-policy-application-bursting-test.json", 
RestConstants.APPLICATION_POLICIES,
+                    RestConstants.APPLICATION_POLICIES_NAME);
+            assertEquals(addAppPolicy, true);
+
+            ApplicationPolicyBean policyBean = (ApplicationPolicyBean) 
restClient.getEntity(
+                    RestConstants.APPLICATION_POLICIES,
+                    "application-policy-application-bursting-test", 
ApplicationPolicyBean.class,
+                    RestConstants.APPLICATION_POLICIES_NAME);
+
+            //deploy the application
+            String resourcePath = RestConstants.APPLICATIONS + "/" + 
"application-bursting-test" +
+                    RestConstants.APPLICATIONS_DEPLOY + "/" + 
"application-policy-application-bursting-test";
+            boolean deployed = restClient.deployEntity(resourcePath,
+                    RestConstants.APPLICATIONS_NAME);
+            assertEquals(deployed, true);
+
+            //Application active handling
+            
TopologyHandler.getInstance().assertApplicationStatus(bean.getApplicationId(),
+                    ApplicationStatus.Active);
+
+            //Group active handling
+            
TopologyHandler.getInstance().assertGroupActivation(bean.getApplicationId());
+
+            //Cluster active handling
+            
TopologyHandler.getInstance().assertClusterActivation(bean.getApplicationId());
+
+            boolean removedGroup = 
restClient.removeEntity(RestConstants.CARTRIDGE_GROUPS, 
"esb-php-group-application-bursting-test",
+                    RestConstants.CARTRIDGE_GROUPS_NAME);
+            assertEquals(removedGroup, false);
+
+            boolean removedAuto = 
restClient.removeEntity(RestConstants.AUTOSCALING_POLICIES,
+                    autoscalingPolicyId, 
RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(removedAuto, false);
+
+            boolean removedNet = 
restClient.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-application-bursting-test-1",
+                    RestConstants.NETWORK_PARTITIONS_NAME);
+            //Trying to remove the used network partition
+            assertEquals(removedNet, false);
+
+            boolean removedDep = 
restClient.removeEntity(RestConstants.DEPLOYMENT_POLICIES,
+                    "deployment-policy-application-bursting-test", 
RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(removedDep, false);
+
+            //Un-deploying the application
+            String resourcePathUndeploy = RestConstants.APPLICATIONS + "/" + 
"application-bursting-test" +
+                    RestConstants.APPLICATIONS_UNDEPLOY;
+
+            boolean unDeployed = 
restClient.undeployEntity(resourcePathUndeploy,
+                    RestConstants.APPLICATIONS_NAME);
+            assertEquals(unDeployed, true);
+
+            boolean undeploy = 
TopologyHandler.getInstance().assertApplicationUndeploy("application-bursting-test");
+            if (!undeploy) {
+                //Need to forcefully undeploy the application
+                log.info("Force undeployment is going to start for the 
[application] " + "application-bursting-test");
+
+                restClient.undeployEntity(RestConstants.APPLICATIONS + "/" + 
"application-bursting-test" +
+                        RestConstants.APPLICATIONS_UNDEPLOY + "?force=true", 
RestConstants.APPLICATIONS);
+
+                boolean forceUndeployed = 
TopologyHandler.getInstance().assertApplicationUndeploy("application-bursting-test");
+                assertEquals(String.format("Forceful undeployment failed for 
the application %s",
+                        "application-bursting-test"), forceUndeployed, true);
+
+            }
+
+            boolean removed = 
restClient.removeEntity(RestConstants.APPLICATIONS, "application-bursting-test",
+                    RestConstants.APPLICATIONS_NAME);
+            assertEquals(removed, true);
+
+            ApplicationBean beanRemoved = (ApplicationBean) 
restClient.getEntity(RestConstants.APPLICATIONS,
+                    "application-bursting-test", ApplicationBean.class, 
RestConstants.APPLICATIONS_NAME);
+            assertEquals(beanRemoved, null);
+
+            removedGroup = 
restClient.removeEntity(RestConstants.CARTRIDGE_GROUPS, 
"esb-php-group-application-bursting-test",
+                    RestConstants.CARTRIDGE_GROUPS_NAME);
+            assertEquals(removedGroup, true);
+
+            boolean removedC1 = 
restClient.removeEntity(RestConstants.CARTRIDGES, 
"esb-application-bursting-test",
+                    RestConstants.CARTRIDGES_NAME);
+            assertEquals(removedC1, true);
+
+            boolean removedC2 = 
restClient.removeEntity(RestConstants.CARTRIDGES, 
"php-application-bursting-test",
+                    RestConstants.CARTRIDGES_NAME);
+            assertEquals(removedC2, true);
+
+            boolean removedC3 = 
restClient.removeEntity(RestConstants.CARTRIDGES, 
"tomcat-application-bursting-test",
+                    RestConstants.CARTRIDGES_NAME);
+            assertEquals(removedC3, true);
+
+            removedAuto = 
restClient.removeEntity(RestConstants.AUTOSCALING_POLICIES,
+                    autoscalingPolicyId, 
RestConstants.AUTOSCALING_POLICIES_NAME);
+            assertEquals(removedAuto, true);
+
+            removedDep = 
restClient.removeEntity(RestConstants.DEPLOYMENT_POLICIES,
+                    "deployment-policy-application-bursting-test", 
RestConstants.DEPLOYMENT_POLICIES_NAME);
+            assertEquals(removedDep, true);
+
+            removedNet = 
restClient.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-application-bursting-test-1", 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedNet, false);
+
+            boolean removedN2 = 
restClient.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-application-bursting-test-2", 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN2, false);
+
+            boolean removeAppPolicy = 
restClient.removeEntity(RestConstants.APPLICATION_POLICIES,
+                    "application-policy-application-bursting-test", 
RestConstants.APPLICATION_POLICIES_NAME);
+            assertEquals(removeAppPolicy, true);
+
+            removedNet = 
restClient.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-application-bursting-test-1", 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedNet, true);
+
+            removedN2 = 
restClient.removeEntity(RestConstants.NETWORK_PARTITIONS,
+                    "network-partition-application-bursting-test-2", 
RestConstants.NETWORK_PARTITIONS_NAME);
+            assertEquals(removedN2, true);
+
+            log.info("-------------------------------Ended application 
bursting test case-------------------------------");
+
+        } catch (Exception e) {
+            log.error("An error occurred while handling  application 
bursting", e);
+            assertTrue("An error occurred while handling  application 
bursting", false);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java
 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java
new file mode 100644
index 0000000..b86d674
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.integration.tests.application;
+
+import org.apache.stratos.integration.tests.StratosTestServerManager;
+
+/**
+ * Handling the termination behavior of the group
+ */
+public class GroupTerminationBehaviorTest extends StratosTestServerManager {
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json
new file mode 100644
index 0000000..7bc9c2d
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json
@@ -0,0 +1,18 @@
+{
+    "id": "application-policy-group-startup-order-test",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "network-partition-group-startup-order-test-1",
+        "network-partition-group-startup-order-test-2"
+    ],
+    "properties": [
+        {
+            "name": "networkPartitionGroups",
+            "value": 
"network-partition-group-startup-order-test-1|network-partition-group-startup-order-test-2"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json
new file mode 100644
index 0000000..db04c61
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json
@@ -0,0 +1,70 @@
+{
+    "applicationId": "group-startup-order-test",
+    "alias": "my-cartridge-group-app",
+    "components": {
+        "groups": [
+            {
+                "name": "esb-php-group-group-startup-order-test",
+                "alias": "my-esb-php-group-group-startup-order-test",
+                "deploymentPolicy": 
"deployment-policy-group-startup-order-test",
+                "groupMinInstances": 1,
+                "groupMaxInstances": 2,
+                "cartridges": [
+                    {
+                        "type": "esb-group-startup-order-test",
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 2,
+                        "subscribableInfo": {
+                            "alias": "my-esb-group-startup-order-test",
+                            "autoscalingPolicy": 
"autoscaling-policy-group-startup-order-test",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": 
"https://github.com/imesh/stratos-esb-applications.git";,
+                                "repoUsername": "",
+                                "repoPassword": ""
+                            }
+                        }
+                    },
+                    {
+                        "type": "php-group-startup-order-test",
+                        "cartridgeMin": 2,
+                        "cartridgeMax": 4,
+                        "lvsVirtualIP": "192.168.56.50|255.255.255.0",
+                        "subscribableInfo": {
+                            "alias": "my-php-group-startup-order-test",
+                            "autoscalingPolicy": 
"autoscaling-policy-group-startup-order-test",
+                            "artifactRepository": {
+                                "privateRepo": false,
+                                "repoUrl": 
"https://github.com/imesh/stratos-php-applications.git";,
+                                "repoUsername": "",
+                                "repoPassword": ""
+                            }
+                        }
+                    }
+                ]
+            }
+        ],
+        "cartridges": [
+            {
+                "type": "tomcat-group-startup-order-test",
+                "cartridgeMin": 2,
+                "cartridgeMax": 4,
+                "subscribableInfo": {
+                    "alias": "my-tomcat-group-startup-order-test",
+                    "autoscalingPolicy": 
"autoscaling-policy-group-startup-order-test",
+                    "deploymentPolicy": 
"deployment-policy-group-startup-order-test",
+                    "artifactRepository": {
+                        "privateRepo": false,
+                        "repoUrl": 
"https://github.com/imesh/stratos-tomcat-applications.git";,
+                        "repoUsername": "",
+                        "repoPassword": ""
+                    }
+                }
+            }
+        ],
+        "dependencies": {
+            "terminationBehaviour": "terminate-none"
+        }
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
new file mode 100644
index 0000000..0c6ec97
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json
@@ -0,0 +1,14 @@
+{
+    "id": "autoscaling-policy-group-startup-order-test",
+    "loadThresholds": {
+        "requestsInFlight": {
+            "threshold": 35
+        },
+        "memoryConsumption": {
+            "threshold": 45
+        },
+        "loadAverage": {
+            "threshold": 25
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json
new file mode 100644
index 0000000..9c7d997
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json
@@ -0,0 +1,19 @@
+{
+    "name": "esb-php-group-group-startup-order-test",
+    "cartridges": [
+        "esb-group-startup-order-test",
+        "php-group-startup-order-test"
+    ],
+    "dependencies": {
+        "startupOrders": [
+            {
+                "aliases": [
+                    "cartridge.my-esb-group-startup-order-test",
+                    "cartridge.my-php-group-startup-order-test"
+                ]
+            }
+        ],
+        "terminationBehaviour": "terminate-none"
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json
new file mode 100755
index 0000000..b6f428e
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json
@@ -0,0 +1,50 @@
+{
+    "type": "esb-group-startup-order-test",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "framework",
+    "displayName": "esb-group-startup-order-test",
+    "description": "esb-group-startup-order-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ],
+    "metadataKeys": [
+        "server_ip",
+        "username",
+        "password"
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json
new file mode 100755
index 0000000..95f78a5
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json
@@ -0,0 +1,51 @@
+{
+    "type": "php-group-startup-order-test",
+    "provider": "apache",
+    "category": "framework",
+    "host": "php.stratos.org",
+    "displayName": "php-group-startup-order-test",
+    "description": "php-group-startup-order-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-80",
+            "protocol": "http",
+            "port": "8080",
+            "proxyPort": "8280"
+        },
+        {
+            "name": "http-22",
+            "protocol": "tcp",
+            "port": "22",
+            "proxyPort": "8222"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "reka"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json
new file mode 100755
index 0000000..7cf895a
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json
@@ -0,0 +1,53 @@
+{
+    "type": "tomcat-group-startup-order-test",
+    "provider": "apache",
+    "host": "tomcat.stratos.org",
+    "category": "framework",
+    "displayName": "tomcat-group-startup-order-test",
+    "description": "tomcat-group-startup-order-test Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "name": "http-22",
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        },
+        {
+            "protocol": "http",
+            "port": "8080",
+            "proxyPort": "80"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ],
+    "metadataKeys": [
+        "url"
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json
new file mode 100644
index 0000000..3813435
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json
@@ -0,0 +1,32 @@
+{
+    "id": "deployment-policy-group-startup-order-test",
+    "networkPartitions": [
+        {
+            "id": "network-partition-group-startup-order-test-1",
+            "partitionAlgo": "one-after-another",
+            "partitions": [
+                {
+                    "id": "partition-1",
+                    "partitionMax": 4
+                }
+            ]
+        },
+        {
+            "id": "network-partition-group-startup-order-test-2",
+            "partitionAlgo": "round-robin",
+            "partitions": [
+                {
+                    "id": "network-partition-10-partition-1",
+                    "partitionMax": 4
+                },
+                {
+                    "id": "network-partition-10-partition-2",
+                    "partitionMax": 4
+                }
+            ]
+        }
+    ]
+}
+
+
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json
new file mode 100644
index 0000000..238f640
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json
@@ -0,0 +1,15 @@
+{
+    "id": "network-partition-group-startup-order-test-1",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json
new file mode 100644
index 0000000..7372b78
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json
@@ -0,0 +1,24 @@
+{
+    "id": "network-partition-group-startup-order-test-2",
+    "provider": "mock",
+    "partitions": [
+        {
+            "id": "network-partition-10-partition-1",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        },
+        {
+            "id": "network-partition-10-partition-2",
+            "property": [
+                {
+                    "name": "region",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json
new file mode 100755
index 0000000..47832db
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json
@@ -0,0 +1,17 @@
+{
+    "id": "RegionOne",
+    "provider": "mock",
+    "partitions":
+    [
+        {
+            "id": "whole-region",
+            "property":
+            [
+                {
+                    "name": "region",
+                    "value": "RegionOne"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json
new file mode 100644
index 0000000..30cd6d0
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json
@@ -0,0 +1,100 @@
+{
+  "alias": "sub-G1-G2-G3-1-G4",
+  "applicationId": "sub-G1-G2-G3-1-G4",
+  "components": {
+    "cartridges": [],
+    "groups": [
+      {
+        "name": "sub-G1-G2-G3-1",
+        "groupMaxInstances": 1,
+        "groupMinInstances": 1,
+        "alias": "sub-G1-G2-G3-1",
+        "cartridges": [],
+        "groups": [
+          {
+            "name": "multiple-groups-no-startup-G1-1",
+            "groupMaxInstances": 1,
+            "groupMinInstances": 1,
+            "alias": "multiple-groups-no-startup-G1-1-0x0",
+            "cartridges": [
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c1",
+                "subscribableInfo": {
+                  "alias": "c1-1x0",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "economyPolicy"
+                }
+              },
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c2",
+                "subscribableInfo": {
+                  "alias": "c2-1x0",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "economyPolicy"
+                }
+              }
+            ],
+            "groups": []
+          },
+          {
+            "name": "multiple-groups-no-startup-G2-1",
+            "groupMaxInstances": 1,
+            "groupMinInstances": 1,
+            "alias": "multiple-groups-no-startup-G2-1-0x0",
+            "cartridges": [
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c3",
+                "subscribableInfo": {
+                  "alias": "c3-1x1",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "economyPolicy"
+                }
+              },
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c4",
+                "subscribableInfo": {
+                  "alias": "c4-1x1",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "economyPolicy"
+                }
+              }
+            ],
+            "groups": []
+          }
+        ]
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json
new file mode 100644
index 0000000..8fe4193
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json
@@ -0,0 +1,17 @@
+{
+    "id": "application-policy-1",
+    "algorithm": "one-after-another",
+    "networkPartitions": [
+        "RegionOne"
+    ],
+    "properties": [
+        {
+            "name": "key-1",
+            "value": "value-1"
+        },
+        {
+            "name": "key-2",
+            "value": "value-2"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json
new file mode 100644
index 0000000..600d291
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json
@@ -0,0 +1,130 @@
+{
+  "alias": "s-g-c1-c2-c3-s",
+  "applicationId": "s-g-c1-c2-c3-s",
+  "components": {
+    "cartridges": [],
+    "groups": [
+      {
+        "name": "g-sc-G4",
+        "groupMaxInstances": 1,
+        "groupMinInstances": 1,
+        "alias": "g-sc-G4-x0x",
+        "cartridges": [
+          {
+            "cartridgeMin": 1,
+            "cartridgeMax": 1,
+            "type": "c1",
+            "subscribableInfo": {
+              "alias": "c1-1x0",
+              "deploymentPolicy": "static-1",
+              "artifactRepository": {
+                "repoUsername": "user",
+                "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git";,
+                "privateRepo": true,
+                "repoPassword": "c-policy"
+              },
+              "autoscalingPolicy": "economyPolicy"
+            }
+          }
+        ],
+        "groups": [
+          {
+            "name": "g-G3",
+            "groupMaxInstances": 1,
+            "groupMinInstances": 1,
+            "alias": "g-G3-1x0",
+            "cartridges": [
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c2",
+                "subscribableInfo": {
+                  "alias": "c2-1x0",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                    "deploymentPolicy": "static-1",
+
+                    "autoscalingPolicy": "economyPolicy"
+                }
+              }
+            ],
+            "groups": [
+                {
+                    "name": "g-G2",
+                    "groupMaxInstances": 1,
+                    "groupMinInstances": 1,
+                    "alias": "g-G2-1x0",
+                    "cartridges": [
+                        {
+                            "cartridgeMin": 1,
+                            "cartridgeMax": 1,
+                            "type": "c3",
+                            "subscribableInfo": {
+                                "alias": "c3-1x0",
+                                "artifactRepository": {
+                                    "repoUsername": "user",
+                                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                    "privateRepo": true,
+                                    "repoPassword": "c-policy"
+                                },
+                                "deploymentPolicy": "static-1",
+                                "autoscalingPolicy": "economyPolicy"
+                            }
+                        }
+                    ],
+                    "groups": [
+                        {
+                            "deploymentPolicy": "static-1",
+                            "name": "g-G1",
+                            "groupMaxInstances": 1,
+                            "groupMinInstances": 1,
+                            "alias": "g-G1-1x0",
+                            "cartridges": [
+                                {
+                                    "cartridgeMin": 1,
+                                    "cartridgeMax": 1,
+                                    "type": "c4",
+                                    "subscribableInfo": {
+                                        "alias": "c4-1x0",
+                                        "artifactRepository": {
+                                            "repoUsername": "user",
+                                            "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                            "privateRepo": true,
+                                            "repoPassword": "c-policy"
+                                        },
+                                        "autoscalingPolicy": "economyPolicy"
+                                    }
+                                },
+                                {
+                                    "cartridgeMin": 1,
+                                    "cartridgeMax": 1,
+                                    "type": "c5",
+                                    "subscribableInfo": {
+                                        "alias": "c5-1x0",
+                                        "artifactRepository": {
+                                            "repoUsername": "user",
+                                            "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                            "privateRepo": true,
+                                            "repoPassword": "c-policy"
+                                        },
+                                        "autoscalingPolicy": "economyPolicy"
+                                    }
+                                }
+                            ],
+                            "groups": [
+                            ]
+                        }
+                    ]
+                }
+            ]
+          }
+
+        ]
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json
new file mode 100644
index 0000000..e05129a
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json
@@ -0,0 +1,108 @@
+{
+  "alias": "s-n-gr-s-G12-t-a-2-Id",
+  "applicationId": "s-n-gr-s-G12-t-a-2-Id",
+  "components": {
+    "cartridges": [],
+    "groups": [
+      {
+        "name": "s-n-gr-s-G12-t-a-2",
+        "groupMaxInstances": 1,
+        "groupMinInstances": 1,
+        "alias": "s-n-gr-s-G12-t-a-2",
+        "cartridges": [
+          {
+            "cartridgeMin": 1,
+            "cartridgeMax": 1,
+            "type": "c1",
+            "subscribableInfo": {
+              "alias": "c1-0x0",
+              "deploymentPolicy": "static-1",
+              "artifactRepository": {
+                "repoUsername": "user",
+                "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git";,
+                "privateRepo": true,
+                "repoPassword": "c-policy"
+              },
+              "autoscalingPolicy": "autoscaling-policy-1"
+            }
+          },
+          {
+            "cartridgeMin": 1,
+            "cartridgeMax": 1,
+            "type": "c2",
+            "subscribableInfo": {
+              "alias": "c2-0x0",
+              "deploymentPolicy": "static-1",
+              "artifactRepository": {
+                "repoUsername": "user",
+                "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git";,
+                "privateRepo": true,
+                "repoPassword": "c-policy"
+              },
+              "autoscalingPolicy": "autoscaling-policy-1"
+            }
+          },
+          {
+            "cartridgeMin": 1,
+            "cartridgeMax": 1,
+            "type": "c3",
+            "subscribableInfo": {
+              "alias": "c3-0x0",
+              "deploymentPolicy": "static-1",
+              "artifactRepository": {
+                "repoUsername": "user",
+                "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git";,
+                "privateRepo": true,
+                "repoPassword": "c-policy"
+              },
+              "autoscalingPolicy": "autoscaling-policy-1"
+            }
+          }
+        ],
+        "groups": [
+          {
+            "name": "n-st-G2-t-a-2",
+            "groupMaxInstances": 1,
+            "groupMinInstances": 1,
+            "alias": "n-st-G2-t-a-2-0x0",
+            "cartridges": [
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c4",
+                "subscribableInfo": {
+                  "alias": "c4-1x0",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "autoscaling-policy-1"
+                }
+              },
+              {
+                "cartridgeMin": 1,
+                "cartridgeMax": 1,
+                "type": "c5",
+                "subscribableInfo": {
+                  "alias": "c5-1x0",
+                  "deploymentPolicy": "static-1",
+                  "artifactRepository": {
+                    "repoUsername": "user",
+                    "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                    "privateRepo": true,
+                    "repoPassword": "c-policy"
+                  },
+                  "autoscalingPolicy": "autoscaling-policy-1"
+                }
+              }
+            ],
+            "groups": []
+          }
+        ]
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig
new file mode 100644
index 0000000..b28c017
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig
@@ -0,0 +1,89 @@
+{
+    "alias": "sub-G1-G2-G3-1-G4",
+    "applicationId": "sub-G1-G2-G3-1-G4",
+    "components": {
+        "cartridges": [],
+        "groups": [
+            {
+                "name": "G1",
+                "groupMaxInstances": 1,
+                "groupMinInstances": 1,
+                "alias": "group1",
+                "cartridges": [
+                    {
+                        "cartridgeMin": 1,
+                        "cartridgeMax": 1,
+                        "type": "c1",
+                        "subscribableInfo": {
+                            "alias": "c1-1x0",
+                            "deploymentPolicy": "static-1",
+                            "artifactRepository": {
+                                "repoUsername": "user",
+                                "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                "privateRepo": true,
+                                "repoPassword": "c-policy"
+                            },
+                            "autoscalingPolicy": "economyPolicy"
+                        }
+                    }
+
+                ],
+                "groups": [
+                    {
+                        "name": "G2",
+                        "groupMaxInstances": 1,
+                        "groupMinInstances": 1,
+                        "alias": "group2",
+                        "cartridges": [
+                            {
+                                "cartridgeMin": 1,
+                                "cartridgeMax": 1,
+                                "type": "c2",
+                                "subscribableInfo": {
+                                    "alias": "c2-1x0",
+                                    "deploymentPolicy": "static-1",
+                                    "artifactRepository": {
+                                        "repoUsername": "user",
+                                        "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                        "privateRepo": true,
+                                        "repoPassword": "c-policy"
+                                    },
+                                    "autoscalingPolicy": "economyPolicy"
+                                }
+                            }
+                        ],
+                        "groups": [
+                            {
+                                "name": "G3",
+                                "groupMaxInstances": 1,
+                                "groupMinInstances": 1,
+                                "alias": "group3",
+                                "cartridges": [
+                                    {
+                                        "cartridgeMin": 1,
+                                        "cartridgeMax": 1,
+                                        "type": "c3",
+                                        "subscribableInfo": {
+                                            "alias": "c3-1x1",
+                                            "deploymentPolicy": "static-1",
+                                            "artifactRepository": {
+                                                "repoUsername": "user",
+                                                "repoUrl": 
"http://octl.qmog.cisco.com:10080/git/default.git";,
+                                                "privateRepo": true,
+                                                "repoPassword": "c-policy"
+                                            },
+                                            "autoscalingPolicy": 
"economyPolicy"
+                                        }
+                                    }
+                                ],
+                                "groups": []
+                            }
+                        ]
+                    }
+
+                ]
+            }
+        ]
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json
new file mode 100755
index 0000000..19ac4c0
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json
@@ -0,0 +1,45 @@
+{
+    "type": "c1",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c1",
+    "description": "c1 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json
new file mode 100755
index 0000000..8caa83a
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json
@@ -0,0 +1,45 @@
+{
+    "type": "c2",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c2",
+    "description": "c2 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json
new file mode 100755
index 0000000..dedb0f6
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json
@@ -0,0 +1,45 @@
+{
+    "type": "c3",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c3",
+    "description": "c3 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json
new file mode 100755
index 0000000..efc660a
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json
@@ -0,0 +1,45 @@
+{
+    "type": "c4",
+    "provider": "apache",
+    "host": "stratos.apache.org",
+    "category": "data",
+    "displayName": "c4",
+    "description": "c4 Cartridge",
+    "version": "7",
+    "multiTenant": "false",
+    "portMapping": [
+        {
+            "protocol": "http",
+            "port": "22",
+            "proxyPort": "8280"
+        }
+    ],
+    "deployment": {
+    },
+    "iaasProvider": [
+        {
+            "type": "mock",
+            "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e",
+            "networkInterfaces": [
+                {
+                    "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e"
+                }
+            ],
+
+            "property": [
+                {
+                    "name": "instanceType",
+                    "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594"
+                },
+                {
+                    "name": "keyPair",
+                    "value": "vishanth-key"
+                },
+                {
+                    "name": "securityGroups",
+                    "value": "default"
+                }
+            ]
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json
new file mode 100755
index 0000000..59e225f
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json
@@ -0,0 +1,132 @@
+{
+    "category": "Application", 
+    "deployment": {
+        "baseDir": "/var/www", 
+        "dir": [
+            "www=copy#app#files#here", 
+            "simplesamlphp=copy#saml#libraries#here", 
+            "sql=copy#saml#libraries#here"
+        ]
+    }, 
+    "description": "c4 Cartridge", 
+    "displayName": "c4", 
+    "host": "qmog.cisco.com", 
+    "iaasProvider": [
+        {
+            "imageId": "RegionOne/16e7e35b-0c88-4605-90ce-cbef9e9dde0f", 
+            "maxInstanceLimit": "4", 
+            "networkInterfaces": [
+                {
+                    "floatingNetworks": [
+                        {
+                            "name": "public", 
+                            "networkUuid": 
"26b4aa2b-06bc-4e4f-a6eb-c19fbc211af6"
+                        }
+                    ], 
+                    "name": "core", 
+                    "networkUuid": "5e107fbd-4820-47ad-84ea-6f135496f889"
+                }
+            ], 
+            "property": [
+                {
+                    "name": "instanceType", 
+                    "value": "RegionOne/2cdbd576-8c9b-4c2d-8b1a-0f79dc4fb809"
+                }, 
+                {
+                    "name": "keyPair", 
+                    "value": "phoenix"
+                }, 
+                {
+                    "name": "autoAssignIp", 
+                    "value": "false"
+                }, 
+                {
+                    "name": "securityGroups", 
+                    "value": "default"
+                }
+            ], 
+            "type": "mock"
+        }
+    ], 
+    "multiTenant": "false", 
+    "portMapping": [
+        {
+            "port": "22", 
+            "protocol": "http", 
+            "proxyPort": "8280"
+        }
+    ], 
+    "property": [
+        {
+            "name": "payload_parameter.MB_IP", 
+            "value": "octl.qmog.cisco.com"
+        }, 
+        {
+            "name": "payload_parameter.MB_PORT", 
+            "value": "61616"
+        }, 
+        {
+            "name": "payload_parameter.CEP_IP", 
+            "value": "octl.qmog.cisco.com"
+        }, 
+        {
+            "name": "payload_parameter.CEP_PORT", 
+            "value": "7611"
+        }, 
+        {
+            "name": "payload_parameter.CEP_ADMIN_USERNAME", 
+            "value": "admin"
+        }, 
+        {
+            "name": "payload_parameter.CEP_ADMIN_PASSWORD", 
+            "value": "admin"
+        }, 
+        {
+            "name": "payload_parameter.CERT_TRUSTSTORE", 
+            "value": 
"/opt/apache-stratos-cartridge-agent/security/client-truststore.jks"
+        }, 
+        {
+            "name": "payload_parameter.TRUSTSTORE_PASSWORD", 
+            "value": "wso2carbon"
+        }, 
+        {
+            "name": "payload_parameter.ENABLE_DATA_PUBLISHER", 
+            "value": "false"
+        }, 
+        {
+            "name": "payload_parameter.MONITORING_SERVER_IP", 
+            "value": "octl.qmog.cisco.com"
+        }, 
+        {
+            "name": "payload_parameter.MONITORING_SERVER_PORT", 
+            "value": "7611"
+        }, 
+        {
+            "name": "payload_parameter.MONITORING_SERVER_SECURE_PORT", 
+            "value": "7711"
+        }, 
+        {
+            "name": "payload_parameter.MONITORING_SERVER_ADMIN_USERNAME", 
+            "value": "admin"
+        }, 
+        {
+            "name": "payload_parameter.MONITORING_SERVER_ADMIN_PASSWORD", 
+            "value": "admin"
+        }, 
+        {
+            "name": "payload_parameter.QTCM_DNS_SEGMENT", 
+            "value": ""
+        }, 
+        {
+            "name": "payload_parameter.QTCM_NETWORK_COUNT", 
+            "value": "1"
+        }, 
+        {
+            "name": "payload_parameter.SIMPLE_PROPERTY", 
+            "value": "value"
+        }
+    ], 
+    "provider": "cisco", 
+    "type": "c5", 
+    "version": "1.0"
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json
new file mode 100755
index 0000000..00d4dc5
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json
@@ -0,0 +1,26 @@
+{
+  "name": "s-g-c1-c2-c3-s",
+  "dependencies": {
+    "terminationBehaviour": "terminate-none",
+    "startupOrders": [
+      {
+        "aliases": [
+          "cartridge.c3-0x0",
+          "cartridge.c2-0x0"
+        ]
+      },
+      {
+        "aliases": [
+          "cartridge.c2-0x0",
+          "cartridge.c1-0x0"
+        ]
+      }
+    ]
+  },
+  "cartridges": [
+    "c1",
+    "c2",
+    "c3"
+  ],
+  "groups": []
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json
new file mode 100755
index 0000000..749b191
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json
@@ -0,0 +1,34 @@
+{
+  "name": "subscription-G1-G2-G3",
+  "dependencies": {
+    "terminationBehaviour": "terminate-none",
+    "startupOrders": []
+  },
+  "cartridges": [],
+  "groups": [
+    {
+      "name": "multiple-groups-no-startup-G1",
+      "dependencies": {
+        "terminationBehaviour": "terminate-none",
+        "startupOrders": []
+      },
+      "cartridges": [
+        "c1",
+        "c2"
+      ],
+      "groups": []
+    },
+    {
+      "name": "multiple-groups-no-startup-G2",
+      "dependencies": {
+        "terminationBehaviour": "terminate-none",
+        "startupOrders": []
+      },
+      "cartridges": [
+        "c1",
+        "c2"
+      ],
+      "groups": []
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json
new file mode 100644
index 0000000..8c4cf1e
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json
@@ -0,0 +1,77 @@
+{
+  "name": "g-sc-G4",
+  "dependencies": {
+    "terminationBehaviour": "terminate-none",
+    "startupOrders": [
+      {
+        "aliases": [
+          "group.g-G3-1x0",
+          "cartridge.c1-1x0"
+        ]
+      }
+    ]
+  },
+  "cartridges": [
+    "c1"
+  ],
+  "groups": [
+    {
+      "name": "g-G3",
+      "dependencies": {
+        "terminationBehaviour": "terminate-dependents",
+        "startupOrders": [
+          {
+            "aliases": [
+              "group.g-G2-1x0",
+              "cartridge.c2-1x0"
+            ]
+          }
+        ]
+      },
+      "cartridges": [
+        "c2"
+      ],
+      "groups": [
+          {
+              "name": "g-G2",
+              "dependencies": {
+                  "terminationBehaviour": "terminate-dependents",
+                  "startupOrders": [
+                      {
+                          "aliases": [
+                              "group.g-G1-1x0",
+                              "cartridge.c3-1x0"
+                          ]
+                      }
+                  ]
+              },
+              "cartridges": [
+                  "c3"
+              ],
+              "groups": [
+                  {
+                      "name": "g-G1",
+                      "dependencies": {
+                          "terminationBehaviour": "terminate-all",
+                          "startupOrders": [
+                              {
+                                  "aliases": [
+                                      "cartridge.c4-1x0",
+                                      "cartridge.c5-1x0"
+                                  ]
+                              }
+                          ]
+                      },
+                      "cartridges": [
+                          "c4",
+                          "c5"
+                      ],
+                      "groups": [
+                      ]
+                  }
+              ]
+          }
+      ]
+    }
+  ]
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back
new file mode 100644
index 0000000..3fff281
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back
@@ -0,0 +1,53 @@
+{
+    "name": "s-n-gr-s-G12-t-a-2",
+    "dependencies": {
+        "terminationBehaviour": "terminate-dependents",
+        "startupOrders": [
+            {
+                "aliases": [
+                    "group.n-st-G2-t-a-2-0x0",
+                    "cartridge.c3-0x0"
+                ]
+            },
+            {
+                "aliases": [
+                    "cartridge.c3-0x0",
+                    "cartridge.c2-0x0"
+                ]
+            },
+            {
+                "aliases": [
+                    "cartridge.c2-0x0",
+                    "cartridge.c1-0x0"
+                ]
+            }
+        ]
+    },
+    "cartridges": [
+        "c1",
+        "c2",
+        "c3"
+    ],
+    "groups": [
+        {
+            "name": "n-st-G2-t-a-2",
+            "dependencies": {
+                "terminationBehaviour": "terminate-all",
+                "startupOrders": [
+                    {
+                        "aliases": [
+                            "cartridge.c5-1x0",
+                            "cartridge.c4-1x0"
+                        ]
+                    }
+                ]
+            },
+            "cartridges": [
+                "c4",
+                "c5"
+            ],
+            "groups": []
+        }
+    ]
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh
new file mode 100755
index 0000000..ea81357
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+echo ${autoscaling_policies_path}/autoscaling-policy-1.json
+echo "Adding autoscale policy..."
+curl -X POST -H "Content-Type: application/json" -d "@economy-policy.json" -k 
-v -u admin:admin https://127.0.0.1:9443/api/autoscalingPolicies
+
+echo "Adding network partitions..."
+curl -X POST -H "Content-Type: application/json" -d "@RegionOne.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/networkPartitions
+
+echo "Adding deployment policies..."
+curl -X POST -H "Content-Type: application/json" -d "@static-1.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/deploymentPolicies
+
+echo "Adding tomcat cartridge..."
+curl -X POST -H "Content-Type: application/json" -d "@c1.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/cartridges
+
+echo "Adding tomcat1 cartridge..."
+curl -X POST -H "Content-Type: application/json" -d "@c2.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/cartridges
+
+echo "Adding tomcat2 cartridge..."
+curl -X POST -H "Content-Type: application/json" -d "@c3.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/cartridges
+
+echo "Adding tomcat2 cartridge..."
+curl -X POST -H "Content-Type: application/json" -d "@c4.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/cartridges
+curl -X POST -H "Content-Type: application/json" -d "@c5.json" -k -v -u 
admin:admin https://127.0.0.1:9443/api/cartridges
+
+
+echo "Adding group6c group..."
+curl -X POST -H "Content-Type: application/json" -d "@cartridge-groups.json" 
-k -v -u admin:admin https://127.0.0.1:9443/api/cartridgeGroups
+
+sleep 1
+
+echo "Adding application policy..."
+curl -X POST -H "Content-Type: application/json" -d 
"@application-policy-1.json" -k -v -u admin:admin 
https://127.0.0.1:9443/api/applicationPolicies
+
+sleep 1
+
+echo "Creating application..."
+curl -X POST -H "Content-Type: application/json" -d 
"@application-s-g-c1-c2-c3-s.json" -k -v -u admin:admin 
https://127.0.0.1:9443/api/applications
+
+sleep 1
+
+echo "Deploying application..."
+curl -X POST -H "Content-Type: application/json" -k -v -u admin:admin 
https://127.0.0.1:9443/api/applications/s-g-c1-c2-c3-s/deploy/application-policy-1

http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json
 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json
new file mode 100755
index 0000000..b838769
--- /dev/null
+++ 
b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json
@@ -0,0 +1,15 @@
+{
+  "id": "economyPolicy",
+  "loadThresholds": {
+    "requestsInFlight": {
+      "threshold": 50
+    },
+    "memoryConsumption": {
+      "threshold": 40
+    },
+    "loadAverage": {
+      "threshold": 40
+    }
+  }
+}
+

Reply via email to