You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2015/04/07 07:54:00 UTC

[7/7] stratos git commit: Format autoscaler component code

Format autoscaler component code


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

Branch: refs/heads/master
Commit: 506affb87e8d16c70e2dc2370b0a4e86ed48c4b9
Parents: 7be740d
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Tue Apr 7 11:23:10 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Tue Apr 7 11:23:46 2015 +0530

----------------------------------------------------------------------
 .../algorithms/NetworkPartitionAlgorithm.java   |  15 +-
 .../algorithms/PartitionAlgorithm.java          |   2 +
 .../networkpartition/AllAtOnceAlgorithm.java    |  42 +--
 .../NetworkPartitionAlgorithmContext.java       |  50 ++--
 .../OneAfterAnotherAlgorithm.java               | 272 ++++++++---------
 .../algorithms/partition/OneAfterAnother.java   |  16 +-
 .../algorithms/partition/RoundRobin.java        |  57 ++--
 .../applications/ApplicationHolder.java         |  16 +-
 .../applications/ApplicationUtils.java          |  54 ++--
 .../applications/ClusterInformation.java        |   4 +-
 .../applications/MTClusterInformation.java      |   2 +-
 .../dependency/DependencyBuilder.java           |  27 +-
 .../applications/dependency/DependencyTree.java |  28 +-
 .../context/ApplicationChildContext.java        |   4 +-
 .../context/ApplicationChildContextFactory.java |  36 +--
 .../dependency/context/ClusterChildContext.java |   2 +-
 .../dependency/context/GroupChildContext.java   |   2 +-
 .../applications/parser/ApplicationParser.java  |   4 +-
 .../parser/DefaultApplicationParser.java        | 294 ++++++++++---------
 .../applications/parser/ParserUtils.java        |  16 +-
 .../applications/payload/BasicPayloadData.java  | 170 +++++------
 .../applications/payload/PayloadData.java       |  13 +-
 .../applications/payload/PayloadFactory.java    |  50 ++--
 .../pojo/ApplicationClusterContext.java         |  32 +-
 .../applications/pojo/ApplicationContext.java   |   2 +-
 .../applications/pojo/CartridgeContext.java     |  60 ++--
 .../applications/pojo/ComponentContext.java     |  14 +-
 .../applications/pojo/DependencyContext.java    |  16 +-
 .../applications/pojo/GroupContext.java         |  22 +-
 .../applications/pojo/PersistenceContext.java   |  12 +-
 .../pojo/SubscribableInfoContext.java           |   2 +-
 .../applications/pojo/VolumeContext.java        | 106 +++----
 .../applications/topic/ApplicationBuilder.java  |  51 ++--
 .../topic/ApplicationsEventPublisher.java       |  10 +-
 .../client/CloudControllerClient.java           |  10 +-
 ...ntityApplicationManagementServiceClient.java |  28 +-
 .../client/OAuthAdminServiceClient.java         |   8 +-
 .../stratos/autoscaler/client/Utility.java      |   2 +-
 .../autoscaler/commands/ASPolicyCommands.java   |  46 +--
 .../autoscaler/context/AutoscalerContext.java   | 129 ++++----
 .../context/cluster/AbstractClusterContext.java |   2 +-
 .../context/cluster/ClusterContext.java         |   2 +-
 .../context/cluster/ClusterContextFactory.java  |   2 +-
 .../context/cluster/ClusterInstanceContext.java |   6 +-
 .../context/group/GroupInstanceContext.java     |  12 +-
 .../partition/ClusterLevelPartitionContext.java |  17 +-
 .../partition/GroupLevelPartitionContext.java   |   6 +-
 ...ApplicationLevelNetworkPartitionContext.java |   1 -
 .../ClusterLevelNetworkPartitionContext.java    |   1 -
 .../GroupLevelNetworkPartitionContext.java      |   4 -
 .../publisher/ClusterStatusEventPublisher.java  |  50 ++--
 .../InstanceNotificationPublisher.java          |   2 +-
 .../AutoscalerHealthStatEventReceiver.java      |  60 ++--
 .../AutoscalerTopologyEventReceiver.java        | 196 ++++++-------
 .../exception/AutoScalerException.java          |   8 +-
 .../exception/InvalidArgumentException.java     |  40 +--
 .../ApplicationDefinitionException.java         |   8 +-
 .../application/DependencyBuilderException.java |   6 +-
 .../InvalidApplicationPolicyException.java      |   6 +-
 .../application/MonitorNotFoundException.java   |   2 +-
 .../TopologyInConsistentException.java          |   6 +-
 .../CartridgeInformationException.java          |   8 +-
 .../cartridge/NonExistingLBException.java       |  14 +-
 .../exception/cartridge/SpawningException.java  |  16 +-
 .../cartridge/TerminationException.java         |  22 +-
 .../partition/InvalidPartitionException.java    |  10 +-
 .../partition/PartitionValidationException.java |  29 +-
 .../ApplicatioinPolicyNotExistsException.java   |  44 +--
 .../InvalidDeploymentPolicyException.java       |  10 +-
 .../policy/InvalidPolicyException.java          |  44 +--
 .../policy/PolicyValidationException.java       |  20 +-
 .../autoscaler/internal/ASBundleActivater.java  |  20 +-
 .../internal/AutoscalerServiceComponent.java    | 106 +++----
 .../stratos/autoscaler/monitor/Monitor.java     |   3 +-
 .../autoscaler/monitor/MonitorFactory.java      |  14 +-
 .../monitor/cluster/ClusterMonitor.java         |   4 +-
 .../monitor/component/ApplicationMonitor.java   | 180 ++++++------
 .../monitor/component/GroupMonitor.java         |  18 +-
 .../component/ParentComponentMonitor.java       |  24 +-
 .../monitor/events/ClusterStatusEvent.java      |   4 +-
 .../autoscaler/monitor/events/MonitorEvent.java |   7 +-
 .../monitor/events/MonitorStatusEvent.java      |   4 +-
 .../builder/MonitorStatusEventBuilder.java      |  15 +-
 .../stratos/autoscaler/pojo/Dependencies.java   |  18 +-
 .../stratos/autoscaler/pojo/ServiceGroup.java   |   6 +-
 .../autoscaler/pojo/policy/PolicyManager.java   |  15 +-
 .../pojo/policy/autoscale/AutoscalePolicy.java  | 172 +++++------
 .../pojo/policy/autoscale/LoadAverage.java      |  21 +-
 .../policy/autoscale/LoadAverageThresholds.java |  32 +-
 .../pojo/policy/autoscale/LoadThresholds.java   |  58 ++--
 .../policy/autoscale/MemoryConsumption.java     |  19 +-
 .../autoscale/MemoryConsumptionThresholds.java  |  29 +-
 .../pojo/policy/autoscale/RequestsInFlight.java |  19 +-
 .../autoscale/RequestsInFlightThresholds.java   |  35 +--
 .../policy/deployment/ApplicationPolicy.java    |  84 +++---
 .../policy/deployment/DeploymentPolicy.java     | 102 +++----
 .../rule/AutoscalerRuleEvaluator.java           |  16 +-
 .../apache/stratos/autoscaler/rule/RuleLog.java |   8 +-
 .../autoscaler/services/AutoscalerService.java  | 129 ++++----
 .../status/processor/StatusProcessor.java       |   1 +
 .../status/processor/StatusProcessorChain.java  |   4 +-
 .../cluster/ClusterStatusInactiveProcessor.java |   9 +-
 .../cluster/ClusterStatusProcessor.java         |   3 +-
 .../ClusterStatusTerminatedProcessor.java       |   6 +-
 .../group/GroupStatusActiveProcessor.java       |   4 +-
 .../processor/group/GroupStatusProcessor.java   |  21 +-
 .../autoscaler/util/AutoscalerConstants.java    | 184 ++++++------
 .../util/AutoscalerObjectConverter.java         |  18 +-
 .../stratos/autoscaler/util/AutoscalerUtil.java |  55 ++--
 .../stratos/autoscaler/util/ConfUtil.java       |  90 +++---
 .../stratos/autoscaler/util/Deserializer.java   |  24 +-
 .../stratos/autoscaler/util/Serializer.java     |  21 +-
 .../autoscaler/util/ServiceReferenceHolder.java |  36 +--
 .../src/main/resources/META-INF/services.xml    |   8 +-
 .../stratos/autoscaler/TestDelegator.java       |   8 +-
 .../stratos/autoscaler/TestMinimumRule.java     |  16 +-
 .../autoscaler/TestObsoletedMemberRule.java     |  58 ++--
 .../stratos/autoscaler/TestRulesPackaged.java   |   4 +-
 .../src/test/resources/deployment-policy.xml    |  28 +-
 .../src/test/resources/partition.xml            |  14 +-
 .../src/test/resources/partitions.xml           |  24 +-
 .../rest/endpoint/api/StratosApiV41.java        |   2 +-
 122 files changed, 2093 insertions(+), 2087 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/NetworkPartitionAlgorithm.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/NetworkPartitionAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/NetworkPartitionAlgorithm.java
index 70b6286..f089450 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/NetworkPartitionAlgorithm.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/NetworkPartitionAlgorithm.java
@@ -23,11 +23,12 @@ import java.util.List;
 import org.apache.stratos.autoscaler.algorithms.networkpartition.NetworkPartitionAlgorithmContext;
 
 public interface NetworkPartitionAlgorithm {
-	
-	/**
-	 * Get a list network partitions in which application instances to be spawned
-	 * @param networkPartitionAlgorithmContext the {@link NetworkPartitionAlgorithmContext}
-	 * @return list of network partition ids
-	 */
-	public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext);
+
+    /**
+     * Get a list network partitions in which application instances to be spawned
+     *
+     * @param networkPartitionAlgorithmContext the {@link NetworkPartitionAlgorithmContext}
+     * @return list of network partition ids
+     */
+    public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext);
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/PartitionAlgorithm.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/PartitionAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/PartitionAlgorithm.java
index 3ad3c85..5fc61e2 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/PartitionAlgorithm.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/PartitionAlgorithm.java
@@ -29,6 +29,7 @@ public interface PartitionAlgorithm {
 
     /**
      * Returns a {@link PartitionContext} to scale up from the given list
+     *
      * @param partitionContexts is the array of partition contexts which will be select the partition context from
      * @return {@link PartitionContext} to scale up
      */
@@ -36,6 +37,7 @@ public interface PartitionAlgorithm {
 
     /**
      * Returns a {@link PartitionContext} to scale down from the given list
+     *
      * @param partitionContexts is the array of partition contexts which will be select the partition context from
      * @return {@link PartitionContext} to scale down
      */

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java
index 61dd470..359a4ab 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/AllAtOnceAlgorithm.java
@@ -25,25 +25,25 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
 
 import edu.emory.mathcs.backport.java.util.Arrays;
 
-public class AllAtOnceAlgorithm implements NetworkPartitionAlgorithm{
-
-	@Override
-	public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext) {
-		
-		if (networkPartitionAlgorithmContext == null) {
-			return null;
-		}
-		
-		ApplicationPolicy applicationPolicy = networkPartitionAlgorithmContext.getApplicationPolicy();
-		if (applicationPolicy == null) {
-			return null;
-		}
-		
-		String[] networkPartitions = applicationPolicy.getNetworkPartitions();
-		if (networkPartitions == null || networkPartitions.length ==0) {
-			return null;
-		}
-		
-		return Arrays.asList(networkPartitions);
-	}
+public class AllAtOnceAlgorithm implements NetworkPartitionAlgorithm {
+
+    @Override
+    public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext) {
+
+        if (networkPartitionAlgorithmContext == null) {
+            return null;
+        }
+
+        ApplicationPolicy applicationPolicy = networkPartitionAlgorithmContext.getApplicationPolicy();
+        if (applicationPolicy == null) {
+            return null;
+        }
+
+        String[] networkPartitions = applicationPolicy.getNetworkPartitions();
+        if (networkPartitions == null || networkPartitions.length == 0) {
+            return null;
+        }
+
+        return Arrays.asList(networkPartitions);
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/NetworkPartitionAlgorithmContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/NetworkPartitionAlgorithmContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/NetworkPartitionAlgorithmContext.java
index 6e89c80..8df38e1 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/NetworkPartitionAlgorithmContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/NetworkPartitionAlgorithmContext.java
@@ -23,29 +23,29 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
 
-public class NetworkPartitionAlgorithmContext implements Serializable{
-	
-	private static final long serialVersionUID = -1539453541207312793L;
-	private String applicationId;
-	private ApplicationPolicy applicationPolicy;
-	private AtomicInteger currentNetworkPartitionIndex;
-	
-	public NetworkPartitionAlgorithmContext(String applicationId, ApplicationPolicy applicationPolicy, 
-			int currentNetworkPartitionIndex) {
-		this.applicationId = applicationId;
-		this.applicationPolicy = applicationPolicy;
-		this.currentNetworkPartitionIndex = new AtomicInteger(currentNetworkPartitionIndex);
-	}
-
-	public AtomicInteger getCurrentNetworkPartitionIndex() {
-		return currentNetworkPartitionIndex;
-	}
-
-	public ApplicationPolicy getApplicationPolicy() {
-		return applicationPolicy;
-	}
-
-	public String getApplicationId() {
-		return applicationId;
-	}
+public class NetworkPartitionAlgorithmContext implements Serializable {
+
+    private static final long serialVersionUID = -1539453541207312793L;
+    private String applicationId;
+    private ApplicationPolicy applicationPolicy;
+    private AtomicInteger currentNetworkPartitionIndex;
+
+    public NetworkPartitionAlgorithmContext(String applicationId, ApplicationPolicy applicationPolicy,
+                                            int currentNetworkPartitionIndex) {
+        this.applicationId = applicationId;
+        this.applicationPolicy = applicationPolicy;
+        this.currentNetworkPartitionIndex = new AtomicInteger(currentNetworkPartitionIndex);
+    }
+
+    public AtomicInteger getCurrentNetworkPartitionIndex() {
+        return currentNetworkPartitionIndex;
+    }
+
+    public ApplicationPolicy getApplicationPolicy() {
+        return applicationPolicy;
+    }
+
+    public String getApplicationId() {
+        return applicationId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/OneAfterAnotherAlgorithm.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/OneAfterAnotherAlgorithm.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/OneAfterAnotherAlgorithm.java
index aa6a044..035e8d8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/OneAfterAnotherAlgorithm.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/networkpartition/OneAfterAnotherAlgorithm.java
@@ -29,140 +29,140 @@ import org.apache.stratos.common.constants.StratosConstants;
 
 import edu.emory.mathcs.backport.java.util.Arrays;
 
-public class OneAfterAnotherAlgorithm implements NetworkPartitionAlgorithm{
-	
-	private static final Log log = LogFactory.getLog(NetworkPartitionAlgorithm.class);
-
-	@Override
-	public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext) {
-		
-		if (networkPartitionAlgorithmContext == null) {
-			if (log.isWarnEnabled()) {
-				String msg = "Network partition algorithm context is null";
-				log.warn(msg);
-			}
-			return null;
-		}
-		
-		String applicationId = networkPartitionAlgorithmContext.getApplicationId();
-		if (applicationId == null) {
-			if (log.isWarnEnabled()) {
-				String msg = "Application id is null in etwork partition algorithm context";
-				log.warn(msg);
-			}
-			return null;
-		}
-		
-		ApplicationPolicy applicationPolicy = networkPartitionAlgorithmContext.getApplicationPolicy();
-		if (applicationPolicy == null) {
-			if (log.isWarnEnabled()) {
-				String msg = String.format("No application policy found in network partition algorithm context [application-id] %s", applicationId);
-				log.warn(msg);
-			}
-			return null;
-		}
-		
-		String applicatioinPolicyId = applicationPolicy.getId();
-		String[] networkPartitionGroups = applicationPolicy.getNetworkPartitionGroups();
-		if (networkPartitionGroups != null && networkPartitionGroups.length != 0) {
-			if (log.isDebugEnabled()) {
-				String msg = String.format("Network partition groups property found in application policy [application-id] %s [application-policy-id] %s. "
-						+ "Hence using network partition groups for app bursting", applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			int totalNetworkPartitionGroups = networkPartitionGroups.length;
-			if (log.isDebugEnabled()) {
-				String msg = String.format("%s network partition groups found in application policy [application-id] %s [application-policy-id] %s", 
-						totalNetworkPartitionGroups, applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			
-			int currentPartitionIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().intValue();
-			if (log.isDebugEnabled()) {
-				String msg = String.format("Current network partition group index is %s [application-id] %s [application-policy-d]", 
-						currentPartitionIndex, applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			
-			if (currentPartitionIndex >= totalNetworkPartitionGroups) {
-				if (log.isDebugEnabled()) {
-					String msg = String.format("currentPartitionIndex >= totalNetworkPartitionGroups, hence no more network partition groups are available "
-							+ "[application-id] %s [application-policy-d]", currentPartitionIndex, applicationId, applicatioinPolicyId);
-					log.debug(msg);
-				}
-				return null;
-			}
-			
-			int selectedIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().incrementAndGet();
-			if (log.isDebugEnabled()) {
-				String msg = String.format("Selected network partition group index is %s (starting from 1,2,3...) [application-id] %s [application-policy-d]", 
-						selectedIndex, applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			
-			if (log.isDebugEnabled()) {
-				String msg = String.format("Selected network partition group is %s [application-id] %s [application-policy-d]", 
-						networkPartitionGroups[selectedIndex-1], applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			
-			String[] selectedNetworkPartitions = networkPartitionGroups[selectedIndex-1].split(StratosConstants.APPLICATION_POLICY_NETWORK_PARTITIONS_SPLITTER);
-			if (selectedNetworkPartitions == null) {
-				return null;
-			}
-			
-			return Arrays.asList(selectedNetworkPartitions);
-		}
-		
-		String[] networkPartitions = applicationPolicy.getNetworkPartitions();
-		if (networkPartitions == null || networkPartitions.length == 0) {
-			if (log.isWarnEnabled()) {
-				String msg = String.format("Network partitions found in application policy [application-id] %s [application-policy-id] %s", 
-						applicationId, applicatioinPolicyId);
-				log.warn(msg);
-			}
-			return null;
-		}
-		
-		int totalNetworkPartitions = networkPartitions.length;
-		if (log.isDebugEnabled()) {
-			String msg = String.format("%s network partitions found in application policy [application-id] %s [application-policy-id] %s", 
-					totalNetworkPartitions, applicationId, applicatioinPolicyId);
-			log.debug(msg);
-		}
-		
-		int currentPartitionIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().intValue();
-		if (log.isDebugEnabled()) {
-			String msg = String.format("Current network partition index is %s [application-id] %s [application-policy-d]", 
-					currentPartitionIndex, applicationId, applicatioinPolicyId);
-			log.debug(msg);
-		}
-		
-		if (currentPartitionIndex >= totalNetworkPartitions) {
-			if (log.isDebugEnabled()) {
-				String msg = String.format("currentPartitionIndex >= totalNetworkPartitions, hence no more network partitions are available "
-						+ "[application-id] %s [application-policy-d]", currentPartitionIndex, applicationId, applicatioinPolicyId);
-				log.debug(msg);
-			}
-			return null;
-		}
-		
-		int selectedIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().incrementAndGet();
-		if (log.isDebugEnabled()) {
-			String msg = String.format("Selected network partition index is %s (starting from 1,2,3...) [application-id] %s [application-policy-d]", 
-					selectedIndex, applicationId, applicatioinPolicyId);
-			log.debug(msg);
-		}
-		
-		if (log.isDebugEnabled()) {
-			String msg = String.format("Selected network partition is %s [application-id] %s [application-policy-d]", 
-					networkPartitions[selectedIndex-1], applicationId, applicatioinPolicyId);
-			log.debug(msg);
-		}
-		
-		List<String> nextNetworkPartitions = new ArrayList<String>();
-		nextNetworkPartitions.add(networkPartitions[selectedIndex-1]);
-		
-		return nextNetworkPartitions;
-	}
+public class OneAfterAnotherAlgorithm implements NetworkPartitionAlgorithm {
+
+    private static final Log log = LogFactory.getLog(NetworkPartitionAlgorithm.class);
+
+    @Override
+    public List<String> getNextNetworkPartitions(NetworkPartitionAlgorithmContext networkPartitionAlgorithmContext) {
+
+        if (networkPartitionAlgorithmContext == null) {
+            if (log.isWarnEnabled()) {
+                String msg = "Network partition algorithm context is null";
+                log.warn(msg);
+            }
+            return null;
+        }
+
+        String applicationId = networkPartitionAlgorithmContext.getApplicationId();
+        if (applicationId == null) {
+            if (log.isWarnEnabled()) {
+                String msg = "Application id is null in etwork partition algorithm context";
+                log.warn(msg);
+            }
+            return null;
+        }
+
+        ApplicationPolicy applicationPolicy = networkPartitionAlgorithmContext.getApplicationPolicy();
+        if (applicationPolicy == null) {
+            if (log.isWarnEnabled()) {
+                String msg = String.format("No application policy found in network partition algorithm context [application-id] %s", applicationId);
+                log.warn(msg);
+            }
+            return null;
+        }
+
+        String applicatioinPolicyId = applicationPolicy.getId();
+        String[] networkPartitionGroups = applicationPolicy.getNetworkPartitionGroups();
+        if (networkPartitionGroups != null && networkPartitionGroups.length != 0) {
+            if (log.isDebugEnabled()) {
+                String msg = String.format("Network partition groups property found in application policy [application-id] %s [application-policy-id] %s. "
+                        + "Hence using network partition groups for app bursting", applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+            int totalNetworkPartitionGroups = networkPartitionGroups.length;
+            if (log.isDebugEnabled()) {
+                String msg = String.format("%s network partition groups found in application policy [application-id] %s [application-policy-id] %s",
+                        totalNetworkPartitionGroups, applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+
+            int currentPartitionIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().intValue();
+            if (log.isDebugEnabled()) {
+                String msg = String.format("Current network partition group index is %s [application-id] %s [application-policy-d]",
+                        currentPartitionIndex, applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+
+            if (currentPartitionIndex >= totalNetworkPartitionGroups) {
+                if (log.isDebugEnabled()) {
+                    String msg = String.format("currentPartitionIndex >= totalNetworkPartitionGroups, hence no more network partition groups are available "
+                            + "[application-id] %s [application-policy-d]", currentPartitionIndex, applicationId, applicatioinPolicyId);
+                    log.debug(msg);
+                }
+                return null;
+            }
+
+            int selectedIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().incrementAndGet();
+            if (log.isDebugEnabled()) {
+                String msg = String.format("Selected network partition group index is %s (starting from 1,2,3...) [application-id] %s [application-policy-d]",
+                        selectedIndex, applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+
+            if (log.isDebugEnabled()) {
+                String msg = String.format("Selected network partition group is %s [application-id] %s [application-policy-d]",
+                        networkPartitionGroups[selectedIndex - 1], applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+
+            String[] selectedNetworkPartitions = networkPartitionGroups[selectedIndex - 1].split(StratosConstants.APPLICATION_POLICY_NETWORK_PARTITIONS_SPLITTER);
+            if (selectedNetworkPartitions == null) {
+                return null;
+            }
+
+            return Arrays.asList(selectedNetworkPartitions);
+        }
+
+        String[] networkPartitions = applicationPolicy.getNetworkPartitions();
+        if (networkPartitions == null || networkPartitions.length == 0) {
+            if (log.isWarnEnabled()) {
+                String msg = String.format("Network partitions found in application policy [application-id] %s [application-policy-id] %s",
+                        applicationId, applicatioinPolicyId);
+                log.warn(msg);
+            }
+            return null;
+        }
+
+        int totalNetworkPartitions = networkPartitions.length;
+        if (log.isDebugEnabled()) {
+            String msg = String.format("%s network partitions found in application policy [application-id] %s [application-policy-id] %s",
+                    totalNetworkPartitions, applicationId, applicatioinPolicyId);
+            log.debug(msg);
+        }
+
+        int currentPartitionIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().intValue();
+        if (log.isDebugEnabled()) {
+            String msg = String.format("Current network partition index is %s [application-id] %s [application-policy-d]",
+                    currentPartitionIndex, applicationId, applicatioinPolicyId);
+            log.debug(msg);
+        }
+
+        if (currentPartitionIndex >= totalNetworkPartitions) {
+            if (log.isDebugEnabled()) {
+                String msg = String.format("currentPartitionIndex >= totalNetworkPartitions, hence no more network partitions are available "
+                        + "[application-id] %s [application-policy-d]", currentPartitionIndex, applicationId, applicatioinPolicyId);
+                log.debug(msg);
+            }
+            return null;
+        }
+
+        int selectedIndex = networkPartitionAlgorithmContext.getCurrentNetworkPartitionIndex().incrementAndGet();
+        if (log.isDebugEnabled()) {
+            String msg = String.format("Selected network partition index is %s (starting from 1,2,3...) [application-id] %s [application-policy-d]",
+                    selectedIndex, applicationId, applicatioinPolicyId);
+            log.debug(msg);
+        }
+
+        if (log.isDebugEnabled()) {
+            String msg = String.format("Selected network partition is %s [application-id] %s [application-policy-d]",
+                    networkPartitions[selectedIndex - 1], applicationId, applicatioinPolicyId);
+            log.debug(msg);
+        }
+
+        List<String> nextNetworkPartitions = new ArrayList<String>();
+        nextNetworkPartitions.add(networkPartitions[selectedIndex - 1]);
+
+        return nextNetworkPartitions;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
index d3c916b..a6b6386 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/OneAfterAnother.java
@@ -37,13 +37,13 @@ public class OneAfterAnother implements PartitionAlgorithm {
     @Override
     public PartitionContext getNextScaleUpPartitionContext(PartitionContext[] partitionContexts) {
 
-        for(PartitionContext partitionContext : partitionContexts) {
+        for (PartitionContext partitionContext : partitionContexts) {
 
-            if(partitionContext.getNonTerminatedMemberCount() < partitionContext.getMax()) {
+            if (partitionContext.getNonTerminatedMemberCount() < partitionContext.getMax()) {
 
-                if(log.isDebugEnabled()){
+                if (log.isDebugEnabled()) {
                     log.debug(String.format("[one-after-another algorithm] [scale-up] [partition] %s has space to create " +
-                            "members. [non terminated count] %s [max] %s", partitionContext.getPartitionId(),
+                                    "members. [non terminated count] %s [max] %s", partitionContext.getPartitionId(),
                             partitionContext.getNonTerminatedMemberCount(), partitionContext.getMax()));
                 }
                 return partitionContext;
@@ -55,13 +55,13 @@ public class OneAfterAnother implements PartitionAlgorithm {
     @Override
     public PartitionContext getNextScaleDownPartitionContext(PartitionContext[] partitionContexts) {
 
-        for(int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
+        for (int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
 
-            if(partitionContexts[partitionIndex].getNonTerminatedMemberCount() > 0) {
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > 0) {
 
-                if(log.isDebugEnabled()){
+                if (log.isDebugEnabled()) {
                     log.debug(String.format("[one-after-another algorithm] [scale-down] [partition] %s has members that" +
-                            " can be removed. [non terminated count] %s",
+                                    " can be removed. [non terminated count] %s",
                             partitionContexts[partitionIndex].getPartitionId(),
                             partitionContexts[partitionIndex].getNonTerminatedMemberCount()));
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
index 4977cfd..d274d0f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithms/partition/RoundRobin.java
@@ -25,43 +25,42 @@ import org.apache.stratos.autoscaler.algorithms.PartitionAlgorithm;
 import org.apache.stratos.autoscaler.context.partition.PartitionContext;
 
 /**
-* This class is used for selecting a {@link PartitionContext} in round robin manner and checking availability of
+ * This class is used for selecting a {@link PartitionContext} in round robin manner and checking availability of
  * {@link PartitionContext}s according to the partitions defined
  * in {@link org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy}
- *
-*/
-public class RoundRobin implements PartitionAlgorithm{
+ */
+public class RoundRobin implements PartitionAlgorithm {
 
-	private static final Log log = LogFactory.getLog(RoundRobin.class);
+    private static final Log log = LogFactory.getLog(RoundRobin.class);
 
     @Override
     public PartitionContext getNextScaleUpPartitionContext(PartitionContext[] partitionContexts) {
-    	
-    	if (partitionContexts == null) {
-			return null;
-		}
+
+        if (partitionContexts == null) {
+            return null;
+        }
 
         int selectedIndex = 0;
         int lowestInstanceCount = partitionContexts[0].getNonTerminatedMemberCount();
 
-        for(int partitionIndex = 0; partitionIndex < partitionContexts.length; partitionIndex++) {
-        	
-        	// it means we have to choose the current partitionIndex, no need to continue the loop
-        	if (lowestInstanceCount == 0) {
-				break;
-			}
-        	
-            if(partitionContexts[partitionIndex].getNonTerminatedMemberCount() < lowestInstanceCount) {
+        for (int partitionIndex = 0; partitionIndex < partitionContexts.length; partitionIndex++) {
+
+            // it means we have to choose the current partitionIndex, no need to continue the loop
+            if (lowestInstanceCount == 0) {
+                break;
+            }
+
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() < lowestInstanceCount) {
                 lowestInstanceCount = partitionContexts[partitionIndex].getNonTerminatedMemberCount();
                 selectedIndex = partitionIndex;
             }
         }
 
-        if(partitionContexts[selectedIndex].getNonTerminatedMemberCount() < partitionContexts[selectedIndex].getMax()) {
+        if (partitionContexts[selectedIndex].getNonTerminatedMemberCount() < partitionContexts[selectedIndex].getMax()) {
 
-            if(log.isDebugEnabled()){
+            if (log.isDebugEnabled()) {
                 log.debug(String.format("[round-robin algorithm] [scale-up] [partition] %s has space to create members. " +
-                        "[non terminated count] %s [max] %s"
+                                "[non terminated count] %s [max] %s"
                         , partitionContexts[selectedIndex].getPartitionId(),
                         partitionContexts[selectedIndex].getNonTerminatedMemberCount(),
                         partitionContexts[selectedIndex].getMax()));
@@ -76,27 +75,27 @@ public class RoundRobin implements PartitionAlgorithm{
     @Override
     public PartitionContext getNextScaleDownPartitionContext(PartitionContext[] partitionContexts) {
 
-    	if (partitionContexts == null) {
-			return null;
-		}
-    	
+        if (partitionContexts == null) {
+            return null;
+        }
+
         int selectedIndex = 0;
         int highestInstanceCount = partitionContexts[0].getNonTerminatedMemberCount();
 
-        for(int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
+        for (int partitionIndex = partitionContexts.length - 1; partitionIndex >= 0; partitionIndex--) {
 
-            if(partitionContexts[partitionIndex].getNonTerminatedMemberCount() > highestInstanceCount) {
+            if (partitionContexts[partitionIndex].getNonTerminatedMemberCount() > highestInstanceCount) {
 
                 highestInstanceCount = partitionContexts[partitionIndex].getNonTerminatedMemberCount();
                 selectedIndex = partitionIndex;
             }
         }
 
-        if(partitionContexts[selectedIndex].getNonTerminatedMemberCount() < partitionContexts[selectedIndex].getMax()) {
+        if (partitionContexts[selectedIndex].getNonTerminatedMemberCount() < partitionContexts[selectedIndex].getMax()) {
 
-            if(log.isDebugEnabled()){
+            if (log.isDebugEnabled()) {
                 log.debug(String.format("[round-robin algorithm] [scale-down] [partition] %s has has members that" +
-                        " can be removed.[non terminated count] %s ", partitionContexts[selectedIndex].getPartitionId(),
+                                " can be removed.[non terminated count] %s ", partitionContexts[selectedIndex].getPartitionId(),
                         partitionContexts[selectedIndex].getNonTerminatedMemberCount()));
             }
             return partitionContexts[selectedIndex];

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
index 2f09880..47c3a8b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationHolder.java
@@ -36,38 +36,38 @@ public class ApplicationHolder {
 
     private static ReadWriteLock lock = new ReadWriteLock("application-holder");
 
-    private ApplicationHolder () {
+    private ApplicationHolder() {
     }
 
     public static void acquireReadLock() {
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug("Read lock acquired");
         }
         lock.acquireReadLock();
     }
 
     public static void releaseReadLock() {
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug("Read lock released");
         }
         lock.releaseReadLock();
     }
 
     public static void acquireWriteLock() {
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug("Write lock acquired");
         }
         lock.acquireWriteLock();
     }
 
     public static void releaseWriteLock() {
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug("Write lock released");
         }
         lock.releaseWriteLock();
     }
 
-    public static Applications getApplications () {
+    public static Applications getApplications() {
         if (applications == null) {
             synchronized (ApplicationHolder.class) {
                 if (applications == null) {
@@ -89,7 +89,7 @@ public class ApplicationHolder {
         return applications;
     }
 
-    public static void persistApplication (Application application) {
+    public static void persistApplication(Application application) {
         synchronized (ApplicationHolder.class) {
             getApplications().addApplication(application);
             AutoscalerUtil.persistApplication(application);
@@ -99,7 +99,7 @@ public class ApplicationHolder {
         }
     }
 
-    public static void removeApplication (String applicationId) {
+    public static void removeApplication(String applicationId) {
         synchronized (ApplicationHolder.class) {
             getApplications().removeApplication(applicationId);
             AutoscalerUtil.removeApplication(applicationId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
index f9999bb..daf182e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java
@@ -42,11 +42,11 @@ public class ApplicationUtils {
     public static final String PAYLOAD_PARAMETER = "payload_parameter.";
     private static Pattern ALIAS_PATTERN = Pattern.compile("([a-z0-9]+([-][a-z0-9])*)+");
 
-    public static boolean isAliasValid (String alias) {
+    public static boolean isAliasValid(String alias) {
         return ALIAS_PATTERN.matcher(alias).matches();
     }
 
-    public static boolean isValid (String arg) {
+    public static boolean isValid(String arg) {
         if (arg == null || arg.isEmpty()) {
             return false;
         } else {
@@ -54,7 +54,7 @@ public class ApplicationUtils {
         }
     }
 
-    public static Properties getGlobalPayloadData () {
+    public static Properties getGlobalPayloadData() {
 
         Properties globalProperties = new Properties();
 
@@ -74,7 +74,7 @@ public class ApplicationUtils {
         return globalProperties;
     }
 
-    private static String createPortMappingPayloadString (Cartridge cartridge) {
+    private static String createPortMappingPayloadString(Cartridge cartridge) {
 
         // port mappings
         StringBuilder portMapBuilder = new StringBuilder();
@@ -90,7 +90,7 @@ public class ApplicationUtils {
         return portMappingString;
     }
 
-    public static StringBuilder getTextPayload (String appId, String groupName, String clusterId) {
+    public static StringBuilder getTextPayload(String appId, String groupName, String clusterId) {
 
         StringBuilder payloadBuilder = new StringBuilder();
         payloadBuilder.append("APP_ID=" + appId);
@@ -118,25 +118,25 @@ public class ApplicationUtils {
             payloadBuilder.append("PUPPET_DNS_AVAILABLE=" + System.getProperty("puppet.dns.available"));
         }
         // meta data endpoint
-       // if (MetaDataClientConfig.getInstance().getMetaDataServiceBaseUrl() != null) {
-            // TODO
-            //payloadBuilder.append(",");
-            //payloadBuilder.append("METADATA_ENDPOINT=" + MetaDataClientConfig.getInstance().getMetaDataServiceBaseUrl());
-       // }
+        // if (MetaDataClientConfig.getInstance().getMetaDataServiceBaseUrl() != null) {
+        // TODO
+        //payloadBuilder.append(",");
+        //payloadBuilder.append("METADATA_ENDPOINT=" + MetaDataClientConfig.getInstance().getMetaDataServiceBaseUrl());
+        // }
         payloadBuilder.append(",");
 
         return payloadBuilder;
     }
 
     public static PayloadData createPayload(String appId, String groupName, Cartridge cartridge, String subscriptionKey, int tenantId, String clusterId,
-                                            String hostName, String repoUrl, String alias, Map<String, String> customPayloadEntries, String[] dependencyAliases, 
-                                            org.apache.stratos.common.Properties properties, String oauthToken,String[] dependencyClusterIDs,
+                                            String hostName, String repoUrl, String alias, Map<String, String> customPayloadEntries, String[] dependencyAliases,
+                                            org.apache.stratos.common.Properties properties, String oauthToken, String[] dependencyClusterIDs,
                                             String[] exportMetadata, String[] importMetadata)
             throws ApplicationDefinitionException {
 
         //Create the payload
         BasicPayloadData basicPayloadData = createBasicPayload(appId, groupName, cartridge, subscriptionKey,
-                clusterId, hostName, repoUrl, alias, tenantId, dependencyAliases, dependencyClusterIDs,exportMetadata,importMetadata);
+                clusterId, hostName, repoUrl, alias, tenantId, dependencyAliases, dependencyClusterIDs, exportMetadata, importMetadata);
         //Populate the basic payload details
         basicPayloadData.populatePayload();
 
@@ -173,25 +173,25 @@ public class ApplicationUtils {
             }
         }
 
-        
+
         // get subscription payload parameters (MB_IP, MB_PORT so on) and set them to payload (kubernetes scenario)
         if (properties != null && properties.getProperties() != null && properties.getProperties().length != 0) {
-			for (Property property : properties.getProperties()) {
-				if (property.getName().startsWith(PAYLOAD_PARAMETER)) {
+            for (Property property : properties.getProperties()) {
+                if (property.getName().startsWith(PAYLOAD_PARAMETER)) {
                     String payloadParamName = property.getName();
                     String payloadParamSubstring = payloadParamName.substring(payloadParamName.indexOf(".") + 1);
                     payloadData.add(payloadParamSubstring, property.getValue());
-				}
-			}
-		}
+                }
+            }
+        }
 
-        if(!StringUtils.isEmpty(oauthToken)){
+        if (!StringUtils.isEmpty(oauthToken)) {
             payloadData.add(TOKEN_PAYLOAD_PARAM_NAME, oauthToken);
         }
         //check if there are any custom payload entries defined
         if (customPayloadEntries != null) {
             //add them to the payload
-            Set<Map.Entry<String,String>> entrySet = customPayloadEntries.entrySet();
+            Set<Map.Entry<String, String>> entrySet = customPayloadEntries.entrySet();
             for (Map.Entry<String, String> entry : entrySet) {
                 payloadData.add(entry.getKey(), entry.getValue());
             }
@@ -203,8 +203,8 @@ public class ApplicationUtils {
     private static BasicPayloadData createBasicPayload(String appId, String groupName, Cartridge cartridge,
                                                        String subscriptionKey, String clusterId,
                                                        String hostName, String repoUrl, String alias,
-                                                       int tenantId, String[] dependencyAliases,String[] dependencyCLusterIDs,
-                                                       String[] exportMetadata,String[] importMetadata) {
+                                                       int tenantId, String[] dependencyAliases, String[] dependencyCLusterIDs,
+                                                       String[] exportMetadata, String[] importMetadata) {
 
         BasicPayloadData basicPayloadData = new BasicPayloadData();
         basicPayloadData.setAppId(appId);
@@ -217,7 +217,7 @@ public class ApplicationUtils {
         basicPayloadData.setServiceName(cartridge.getType());
         basicPayloadData.setProvider(cartridge.getProvider());
 
-        if(repoUrl != null) {
+        if (repoUrl != null) {
             basicPayloadData.setGitRepositoryUrl(repoUrl);
         }
 
@@ -237,9 +237,9 @@ public class ApplicationUtils {
 
         basicPayloadData.setTenantRange("*");
         basicPayloadData.setDependencyAliases(dependencyAliases);
-	    basicPayloadData.setDependencyClusterIDs(dependencyCLusterIDs);
-	    basicPayloadData.setExportMetadataKeys(exportMetadata);
-	    basicPayloadData.setImportMetadataKeys(importMetadata);
+        basicPayloadData.setDependencyClusterIDs(dependencyCLusterIDs);
+        basicPayloadData.setExportMetadataKeys(exportMetadata);
+        basicPayloadData.setImportMetadataKeys(importMetadata);
 
         return basicPayloadData;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
index 1ecca4d..ae3b0d3 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ClusterInformation.java
@@ -21,7 +21,7 @@ package org.apache.stratos.autoscaler.applications;
 
 public interface ClusterInformation {
 
-    public String getClusterId (String applicationId, String alias, String cartridgeType);
+    public String getClusterId(String applicationId, String alias, String cartridgeType);
 
-    public String getHostName (String applicationId, String alias, String cartridgeDefinitionHostName);
+    public String getHostName(String applicationId, String alias, String cartridgeDefinitionHostName);
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
index 6c8e559..598d17b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/MTClusterInformation.java
@@ -29,7 +29,7 @@ public class MTClusterInformation implements ClusterInformation {
             throw new IllegalArgumentException("Invalid cartridge type value provided: [ " + cartridgeType + " ]");
         }
 
-        return applicationId + "." + alias + "."+cartridgeType + ".domain";
+        return applicationId + "." + alias + "." + cartridgeType + ".domain";
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
index 366171f..fe14f7f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyBuilder.java
@@ -49,11 +49,12 @@ public class DependencyBuilder {
 
     /**
      * This will build the dependency tree based on the given dependencies
+     *
      * @param component it will give the necessary information to build the tree
      * @return the dependency tree out of the dependency orders
      */
     public DependencyTree buildDependency(ParentComponent component)
-            throws DependencyBuilderException{
+            throws DependencyBuilderException {
 
         String identifier = component.getUniqueIdentifier();
         DependencyTree dependencyTree = new DependencyTree(identifier);
@@ -90,7 +91,7 @@ public class DependencyBuilder {
                         if (startupOrderComponent != null) {
                             log.debug(String.format("Processing startup order element: " +
                                             "[component] %s [startup-order] %s [element] %s",
-                                     identifier, startupOrder, startupOrderComponent));
+                                    identifier, startupOrder, startupOrderComponent));
 
                             ApplicationChildContext applicationChildContext = ApplicationChildContextFactory.
                                     createApplicationChildContext(identifier, startupOrderComponent,
@@ -126,18 +127,18 @@ public class DependencyBuilder {
                                     parentContext = existingApplicationChildContext;
                                     if (log.isDebugEnabled()) {
                                         log.debug(String.format("Element [%s] was found in the dependency tree," +
-                                                " making it the parent and continuing: [dependency-tree] %s",
+                                                        " making it the parent and continuing: [dependency-tree] %s",
                                                 existingApplicationChildContext.getId(), dependencyTree));
                                     }
                                 } else {
                                     // Dependency tree is already built for the startup order up to some extent
                                     ApplicationChildContext existingParentContext =
                                             dependencyTree.findParentContextWithId(applicationChildContext.getId());
-                                    if((existingParentContext != null) &&
+                                    if ((existingParentContext != null) &&
                                             (existingParentContext.getId().equals(existingApplicationChildContext.getId()))) {
                                         // Application child context is already available in the dependency tree,
                                         // find its parent element, mark it as the parent element and continue
-                                        if(log.isDebugEnabled()) {
+                                        if (log.isDebugEnabled()) {
                                             log.debug(String.format("Found an existing parent element [%s] in the " +
                                                             "dependency tree, making it the parent " +
                                                             "and continuing: [dependency-tree] %s",
@@ -177,20 +178,18 @@ public class DependencyBuilder {
 
             }
         }
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug(String.format("Dependency tree generated: [component] %s [tree] %s",
                     component.getUniqueIdentifier(), dependencyTree.toString()));
         }
         return dependencyTree;
     }
-    
+
     /**
-     * 
      * Utility method to build scaling dependencies
-     * 
      */
-	public Set<ScalingDependentList> buildScalingDependencies(ParentComponent component) {
-		Set<ScalingDependentList> scalingDependentLists = new HashSet<ScalingDependentList>();
+    public Set<ScalingDependentList> buildScalingDependencies(ParentComponent component) {
+        Set<ScalingDependentList> scalingDependentLists = new HashSet<ScalingDependentList>();
 
         if (component.getDependencyOrder() != null && component.getDependencyOrder().getScalingDependents() != null) {
 
@@ -205,10 +204,10 @@ public class DependencyBuilder {
                         String id = getClusterFromStartupOrder(string);
                         //getting the cluster-id from cluster alias
 
-                        if(component.getClusterDataForAlias().containsKey(id)) {
+                        if (component.getClusterDataForAlias().containsKey(id)) {
                             ClusterDataHolder clusterDataHolder = (ClusterDataHolder) component.getClusterDataForAlias().get(id);
                             scalingDependencies.add(clusterDataHolder.getClusterId());
-                        } else{
+                        } else {
 
                             log.warn("[Scaling Dependency Id]: " + id + " is not a defined cartridge or group. " +
                                     "Therefore scaling dependent will not be effective");
@@ -224,7 +223,7 @@ public class DependencyBuilder {
 
             }
         }
-	    return scalingDependentLists;
+        return scalingDependentLists;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
index e0da8b6..8d97542 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/DependencyTree.java
@@ -111,7 +111,7 @@ public class DependencyTree {
 
 
     private ApplicationChildContext findParentContextWithId(ApplicationChildContext parent, String id,
-                                                       List<ApplicationChildContext> contexts) {
+                                                            List<ApplicationChildContext> contexts) {
         for (ApplicationChildContext context : contexts) {
             //TODO check for the status
             if (context.getId().equals(id)) {
@@ -150,8 +150,8 @@ public class DependencyTree {
     }
 
     public List<ApplicationChildContext> getStarAbleDependenciesByTermination(
-                                                                    ParentComponentMonitor monitor,
-                                                                    String instanceId) {
+            ParentComponentMonitor monitor,
+            String instanceId) {
         //Breadth First search over the graph to find out which level has the terminated contexts
 
         return traverseGraphByLevel(this.primaryApplicationContextList, monitor, instanceId);
@@ -161,22 +161,21 @@ public class DependencyTree {
     private List<ApplicationChildContext> traverseGraphByLevel(List<ApplicationChildContext> contexts,
                                                                ParentComponentMonitor parentMonitor,
                                                                String instanceId) {
-        for(ApplicationChildContext context : contexts) {
+        for (ApplicationChildContext context : contexts) {
             Monitor monitor = parentMonitor.getMonitor(context.getId());
-            if(monitor.getInstance(instanceId) == null ||
+            if (monitor.getInstance(instanceId) == null ||
                     monitor.getInstancesByParentInstanceId(instanceId).isEmpty()) {
                 return contexts;
             }
         }
 
-        for(ApplicationChildContext context : contexts) {
+        for (ApplicationChildContext context : contexts) {
             return traverseGraphByLevel(context.getApplicationChildContextList(), parentMonitor, instanceId);
         }
         return null;
     }
 
 
-
     /**
      * When one group/cluster terminates/in_maintenance, need to consider about other
      * dependencies
@@ -193,7 +192,7 @@ public class DependencyTree {
             findAllChildrenOfAppContext(applicationContext.getApplicationChildContextList(),
                     allChildrenOfAppContext);
             //If only particular cluster, then no need to terminated it.
-            if(allChildrenOfAppContext.size() > 0) {
+            if (allChildrenOfAppContext.size() > 0) {
                 //adding the terminated one to the list
                 allChildrenOfAppContext.add(applicationContext);
             }
@@ -211,6 +210,7 @@ public class DependencyTree {
     public List<ApplicationChildContext> getScalingDependencies(String id) {
         return null;
     }
+
     /**
      * This will help to find out all the children of a particular node
      *
@@ -219,7 +219,7 @@ public class DependencyTree {
      * @return all the children of the given node
      */
     public List<ApplicationChildContext> findAllChildrenOfAppContext(List<ApplicationChildContext> applicationContexts,
-                                                                List<ApplicationChildContext> childContexts) {
+                                                                     List<ApplicationChildContext> childContexts) {
         for (ApplicationChildContext context : applicationContexts) {
             childContexts.add(context);
             findAllChildrenOfAppContext(context.getApplicationChildContextList(), childContexts);
@@ -259,8 +259,8 @@ public class DependencyTree {
     @Override
     public String toString() {
         StringBuilder stringBuilder = new StringBuilder();
-        if(primaryApplicationContextList != null) {
-            for(ApplicationChildContext applicationChildContext : primaryApplicationContextList) {
+        if (primaryApplicationContextList != null) {
+            for (ApplicationChildContext applicationChildContext : primaryApplicationContextList) {
                 buildTreeStructure(applicationChildContext, stringBuilder);
             }
         }
@@ -268,12 +268,12 @@ public class DependencyTree {
     }
 
     private void buildTreeStructure(ApplicationChildContext applicationChildContext, StringBuilder stringBuilder) {
-        if(applicationChildContext != null) {
-            if(StringUtils.isNotBlank(stringBuilder.toString())) {
+        if (applicationChildContext != null) {
+            if (StringUtils.isNotBlank(stringBuilder.toString())) {
                 stringBuilder.append(" --> ");
             }
             stringBuilder.append(applicationChildContext.getId());
-            for(ApplicationChildContext childContext : applicationChildContext.getApplicationChildContextList()) {
+            for (ApplicationChildContext childContext : applicationChildContext.getApplicationChildContextList()) {
                 buildTreeStructure(childContext, stringBuilder);
             }
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
index 9b0d077..b5a4a39 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContext.java
@@ -60,7 +60,7 @@ public abstract class ApplicationChildContext {
     }
 
     public void addStatusToLIfeCycle(ClusterStatus status) {
-       this.statusLifeCycle.push(status);
+        this.statusLifeCycle.push(status);
     }
 
     public String getId() {
@@ -85,7 +85,7 @@ public abstract class ApplicationChildContext {
 
     public boolean hasChild() {
         boolean hasChild;
-        if(this.applicationChildContextList.isEmpty()) {
+        if (this.applicationChildContextList.isEmpty()) {
             hasChild = false;
         } else {
             hasChild = true;

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContextFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContextFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContextFactory.java
index 13f1139..0c8fe9f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContextFactory.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ApplicationChildContextFactory.java
@@ -34,9 +34,9 @@ public class ApplicationChildContextFactory {
     /**
      * Will create and return GroupChildContext/ClusterChildContext based on the type in start order/scaling order
      *
-     * @param startUpOrder      reference of group/cluster in the start/scaling order
-     * @param component       The component which used to build the dependency
-     * @param tree kill dependent behaviour of this component
+     * @param startUpOrder reference of group/cluster in the start/scaling order
+     * @param component    The component which used to build the dependency
+     * @param tree         kill dependent behaviour of this component
      * @return Context
      */
     public static ApplicationChildContext createApplicationChildContext(String componentId, String startUpOrder,
@@ -56,29 +56,31 @@ public class ApplicationChildContextFactory {
             return createClusterChildContext(clusterDataHolder, hasDependents);
         } else {
             throw new RuntimeException(String.format("Startup order contains an unknown reference: " +
-                            "[component] %s [startup-order] %s", componentId, startUpOrder));
+                    "[component] %s [startup-order] %s", componentId, startUpOrder));
         }
     }
 
-	/**
-	 * Get cluster child context
-	 * @param dataHolder Cluster Data holder
-	 * @param isKillDependent Whether is this a kill dependant or not
-	 * @return ApplicationChildContext
-	 */
+    /**
+     * Get cluster child context
+     *
+     * @param dataHolder      Cluster Data holder
+     * @param isKillDependent Whether is this a kill dependant or not
+     * @return ApplicationChildContext
+     */
     public static ApplicationChildContext createClusterChildContext(ClusterDataHolder dataHolder,
                                                                     boolean isKillDependent) {
         ClusterChildContext clusterChildContext = new ClusterChildContext(dataHolder.getClusterId(), isKillDependent);
         clusterChildContext.setServiceName(dataHolder.getServiceType());
-        return  clusterChildContext;
+        return clusterChildContext;
     }
 
-	/**
-	 * Get the group child context
-	 * @param id ID of the group
-	 * @param isDependent Whether is this a dependant or not
-	 * @return ApplicationChildContext
-	 */
+    /**
+     * Get the group child context
+     *
+     * @param id          ID of the group
+     * @param isDependent Whether is this a dependant or not
+     * @return ApplicationChildContext
+     */
     public static ApplicationChildContext createGroupChildContext(String id, boolean isDependent) {
         GroupChildContext groupChildContext = new GroupChildContext(id, isDependent);
         return groupChildContext;

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ClusterChildContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ClusterChildContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ClusterChildContext.java
index 39d2d91..19f3135 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ClusterChildContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/ClusterChildContext.java
@@ -25,7 +25,7 @@ public class ClusterChildContext extends ApplicationChildContext {
     private String serviceName;
 
     public ClusterChildContext(String id, boolean killDependent) {
-        super(id ,killDependent);
+        super(id, killDependent);
     }
 
     public String getServiceName() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/GroupChildContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/GroupChildContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/GroupChildContext.java
index b844144..965db26 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/GroupChildContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/dependency/context/GroupChildContext.java
@@ -21,6 +21,6 @@ package org.apache.stratos.autoscaler.applications.dependency.context;
 public class GroupChildContext extends ApplicationChildContext {
 
     public GroupChildContext(String id, boolean killDependent) {
-        super(id ,killDependent);
+        super(id, killDependent);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/506affb8/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
index 3f4d2b4..6119e0e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/ApplicationParser.java
@@ -41,13 +41,13 @@ public interface ApplicationParser {
      * @return Application structure denoting the parsed Application
      * @throws ApplicationDefinitionException If the Application Definition is invalid
      */
-    public Application parse (ApplicationContext applicationContext) throws ApplicationDefinitionException;
+    public Application parse(ApplicationContext applicationContext) throws ApplicationDefinitionException;
 
     /**
      * Returns a set of ApplicationClusterContext which will comprise of cluster related information
      * extracted from the Application definition
      *
-     * @return  Set of ApplicationClusterContext objects
+     * @return Set of ApplicationClusterContext objects
      * @throws ApplicationDefinitionException if any error occurs
      */
     public List<ApplicationClusterContext> getApplicationClusterContexts() throws ApplicationDefinitionException;