You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/02/27 15:46:39 UTC

[16/50] [abbrv] stratos git commit: fixing STRATOS-1214 - deployement policy changes

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
deleted file mode 100644
index 93d7ea1..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * 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.autoscaler.pojo.policy.deployment;
-
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.NetworkPartition;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition;
-import org.apache.stratos.autoscaler.util.AutoscalerUtil;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-/**
- * The model class for Deployment-Policy definition.
- */
-public class DeploymentPolicy implements Serializable{
-
-    private static final long serialVersionUID = 5675507196284400099L;
-    private String applicationId;
-    private String description;
-    private boolean isPublic;
-    private NetworkPartition[] applicationLevelNetworkPartitions;
-    private ChildPolicy[] childPolicies;
-    private int tenantId;
-
-    /**
-     * Gets the value of the applicationId property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getApplicationId() {
-        return applicationId;
-    }
-
-    /**
-     * Sets the value of the applicationId property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setApplicationId(String value) {
-        this.applicationId = value;
-    }
-    
-    /**
-     * Gets the value of the description property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-    public String getDescription() {
-        return description;
-    }
-    
-    /**
-     * Sets the value of the description property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setDescription(String value) {
-        this.description = value;
-    }
-    
-    /**
-     * Gets the value of the isPublic property.
-     * 
-     * @return
-     *     possible object is boolean
-     *     
-     */
-	public boolean getIsPublic() {
-		return isPublic;
-	}
-
-	 /**
-     * Sets the value of the isPublic property.
-     * 
-     * @param isPublic
-     *     allowed object is boolean
-     *     
-     */
-	public void setIsPublic(boolean isPublic) {
-		this.isPublic = isPublic;
-	}
-	
-	/**
-     * Gets the value of the tenantId property.
-     * 
-     *          
-     */
-	public int getTenantId() {
-		return tenantId;
-	}
-
-	 /**
-     * Sets the value of the tenantId property.
-     * 
-     *     
-     */
-	public void setTenantId(int tenantId) {
-		this.tenantId = tenantId;
-	}
-    
-    public void setApplicationLevelNetworkPartitions(NetworkPartition[] applicationLevelNetworkPartitions) {
-        if(applicationLevelNetworkPartitions == null) {
-            this.applicationLevelNetworkPartitions = new NetworkPartition[0];
-        } else {
-            this.applicationLevelNetworkPartitions = Arrays.copyOf(applicationLevelNetworkPartitions, applicationLevelNetworkPartitions.length);
-        }
-    }
-    
-    public Partition[] getAllPartitions() {
-        ArrayList<Partition> partitionsList = new ArrayList<Partition>();
-        for (NetworkPartition networkPartition : this.getApplicationLevelNetworkPartitions()) {
-            Partition[] partitions = networkPartition.getPartitions();
-            if (partitions != null) {
-                partitionsList.addAll(Arrays.asList(partitions));
-            }
-        }
-        return partitionsList.toArray(new Partition[partitionsList.size()]);
-    }
-
-    private org.apache.stratos.cloud.controller.stub.domain.Partition convertTOCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) {
-        org.apache.stratos.cloud.controller.stub.domain.Partition partition1 = new
-                org.apache.stratos.cloud.controller.stub.domain.Partition();
-
-        partition1.setId(partition.getId());
-        partition1.setProvider(partition.getProvider());
-        partition1.setProperties(AutoscalerUtil.toStubProperties(partition.getProperties()));
-
-        return partition1;
-    }
-        
-    public Partition getPartitionById(String id){
-    	for(Partition p : this.getAllPartitions()){
-    		if(p.getId().equalsIgnoreCase(id))
-    			return p;
-    	}
-    	 return null;
-    }
-    
-    /**
-     * Gets the value of the partition-groups.
-     */
-    public NetworkPartition[] getApplicationLevelNetworkPartitions() {
-        
-        return this.applicationLevelNetworkPartitions;
-    }
-    
-    public NetworkPartition getApplicationLevelNetworkPartition(String partitionGrpId){
-    	for(NetworkPartition parGrp : this.getApplicationLevelNetworkPartitions()){
-    		if(parGrp.getId().equals(partitionGrpId))
-    			return parGrp;
-    		
-    	}
-    	return null;
-    }
-    
-    public String toString() {
-        return "Deployment Policy [applicationId] " + this.applicationId + " Description " +  this.description
-        		+ " isPublic " +  this.isPublic 
-        		+" [partitions] " + Arrays.toString(this.getAllPartitions());
-    }
-
-
-    public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() {
-        //TODO create a map of child level network partition context and return correct one
-        return new ChildLevelNetworkPartition[0];
-    }
-
-    public ChildPolicy[] getChildPolicies() {
-        return childPolicies;
-    }
-
-    public void setChildPolicies(ChildPolicy[] childPolicies) {
-        if(childPolicies == null) {
-            this.childPolicies = new ChildPolicy[0];
-        } else {
-            this.childPolicies = Arrays.copyOf(childPolicies, childPolicies.length);
-        }
-    }
-
-    public ChildPolicy getChildPolicy(String id) {
-        for(ChildPolicy childPolicy : childPolicies) {
-            if(childPolicy != null) {
-                if (childPolicy.getAlias().equals(id)) {
-                    return childPolicy;
-                }
-            }
-        }
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
deleted file mode 100644
index ded4469..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-* 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.autoscaler.pojo.policy.deployment.partition.network;
-
-import java.io.Serializable;
-
-/**
-* The model class for NetworkPartition definition at child level.
-*/
-public class ChildLevelNetworkPartition implements Serializable {
-
-    private static final long serialVersionUID = -8043298009352097370L;
-    private String id;
-    private String partitionAlgo;
-    private ChildLevelPartition[] childLevelPartitions;
-    private int min;
-
-    /**
-     * Gets the value of the partitionAlgo property.
-     *
-     * @return possible object is
-     * {@link String }
-     */
-    public String getPartitionAlgo() {
-        return partitionAlgo;
-    }
-
-    /**
-     * Sets the value of the partitionAlgo property.
-     *
-     * @param value allowed object is
-     *              {@link String }
-     */
-    public void setPartitionAlgo(String value) {
-        this.partitionAlgo = value;
-    }
-
-    /**
-     * Gets the value of the id.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * sets the value of the id.
-     */
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public ChildLevelPartition[] getChildLevelPartitions() {
-        return childLevelPartitions;
-    }
-
-    public void setChildLevelPartitions(ChildLevelPartition[] childLevelPartitions) {
-        this.childLevelPartitions = childLevelPartitions;
-    }
-
-    public ChildLevelPartition getChildLevelPartition(String partitionId) {
-        for(ChildLevelPartition partition : childLevelPartitions) {
-            if(partition.getPartitionId().equals(partitionId)) {
-                return partition;
-            }
-        }
-        return null;
-    }
-
-    public int getMin() {
-        return min;
-    }
-
-    public void setMin(int min) {
-        this.min = min;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
deleted file mode 100644
index 8c3b140..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelPartition.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-* 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.autoscaler.pojo.policy.deployment.partition.network;
-
-import java.io.Serializable;
-
-public class ChildLevelPartition implements Serializable {
-    private String partitionId;
-    private String networkPartitionId;
-    private int max;
-
-    public int getMax() {
-        return max;
-    }
-
-    public String getNetworkPartitionId() {
-        return networkPartitionId;
-    }
-
-    public String getPartitionId() {
-        return partitionId;
-    }
-
-    public void setPartitionId(String partitionId) {
-        this.partitionId = partitionId;
-    }
-
-    public void setNetworkPartitionId(String networkPartitionId) {
-        this.networkPartitionId = networkPartitionId;
-    }
-
-    public void setMax(int max) {
-        this.max = max;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildPolicyHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildPolicyHolder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildPolicyHolder.java
deleted file mode 100644
index bac5447..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildPolicyHolder.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network;
-
-
-import java.util.Map;
-
-public class ChildPolicyHolder {
-
-    // Key: networkPartitinID, value: ChildLevelNetworkPartition
-    private Map<String, ChildLevelNetworkPartition> childLevelNetworkPartitions;
-    private String deploymentPolicyId;
-
-    public ChildPolicyHolder(Map<String, ChildLevelNetworkPartition> childLevelNetworkPartitions, String deploymentPolicyId) {
-        this.childLevelNetworkPartitions = childLevelNetworkPartitions;
-        this.deploymentPolicyId = deploymentPolicyId;
-    }
-
-    public String getDeploymentPolicyId() {
-        return deploymentPolicyId;
-    }
-
-    public Map<String, ChildLevelNetworkPartition> getChildLevelNetworkPartitions() {
-        return childLevelNetworkPartitions;
-    }
-
-    public ChildLevelNetworkPartition getChildLevelNetworkPartitionById(String networkPartitionId) {
-        return childLevelNetworkPartitions.get(networkPartitionId);
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/NetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/NetworkPartition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/NetworkPartition.java
deleted file mode 100644
index 0c5f22e..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/NetworkPartition.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-* 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.autoscaler.pojo.policy.deployment.partition.network;
-
-import java.io.Serializable;
-import java.util.Arrays;
-
-/**
-* The model class for NetworkPartition definition.
-*/
-public class NetworkPartition implements Serializable {
-
-    private static final long serialVersionUID = -8043298009352097370L;
-
-    private String id;
-    private String kubernetesClusterId;
-    private Partition[] partitions;
-
-    public void setPartitions(Partition[] partitions) {
-        if(partitions == null) {
-            this.partitions = partitions;
-        } else {
-            this.partitions = Arrays.copyOf(partitions, partitions.length);
-        }
-    }
-
-    /**
-     * Gets the value of the partitions.
-     */
-    public Partition[] getPartitions() {
-        if (partitions == null) {
-            partitions = new Partition[0];
-        }
-        return this.partitions;
-    }
-    
-    /**
-     * Gets the value of the id.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * sets the value of the id.
-     */
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public Partition getPartition(String partitionId) {
-        for(Partition partition : partitions) {
-            if(partition.getId().equals(partitionId)) {
-                return partition;
-            }
-        }
-        return null;
-    }
-
-    public String getKubernetesClusterId() {
-        return kubernetesClusterId;
-    }
-
-    public void setKubernetesClusterId(String kubernetesClusterId) {
-        this.kubernetesClusterId = kubernetesClusterId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
deleted file mode 100644
index dc29d49..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/Partition.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * 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.autoscaler.pojo.policy.deployment.partition.network;
-
-import org.apache.stratos.common.Properties;
-
-import java.io.Serializable;
-
-/**
- * This is keep the partition information
- */
-public class Partition implements Serializable {
-
-    private static final long serialVersionUID = 3725971287992010720L;
-    /**
-     * provider should match with an IaasProvider type.
-     */
-    private String provider;
-    private String id;
-    private String description;
-    private boolean isPublic;
-    private String kubernetesClusterId;
-    private Properties properties = new Properties();
-
-    /**
-     * Gets the value of the id property.
-     *
-     * @return
-     *     possible object is
-     *     {@link String }
-     *
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Sets the value of the id property.
-     *
-     * @param id
-     *     allowed object is
-     *     {@link String }
-     *
-     */
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    /**
-     * Gets the value of the description property.
-     *
-     * @return
-     *     possible object is
-     *     {@link String }
-     *
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Sets the value of the description property.
-     *
-     * @param description
-     *     allowed object is
-     *     {@link String }
-     *
-     */
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * Sets the value of the isPublic property.
-     *
-     * @param isPublic
-     *     allowed object is boolean
-     *
-     */
-    public void setIsPublic(boolean isPublic) {
-        this.isPublic = isPublic;
-    }
-
-    /**
-     * Gets the value of the isPublic property.
-     *
-     */
-    public boolean getIsPublic() {
-        return isPublic;
-    }
-
-    public Properties getProperties() {
-        return properties;
-    }
-
-    public void setProperties(Properties properties) {
-        this.properties = properties;
-    }
-
-    public String getProvider() {
-        return provider;
-    }
-
-    public void setProvider(String provider) {
-        this.provider = provider;
-    }
-
-    @Override
-    public String toString() {
-        return "Partition [id=" + id + ", description=" + description + ", isPublic=" + isPublic
-                + ", provider=" + provider + ", properties=" + properties + "]";
-    }
-
-    public boolean equals(Object obj) {
-        if(obj != null && obj instanceof Partition) {
-            return this.id.equals(((Partition) obj).getId());
-        }
-        return false;
-
-    }
-
-    @Override
-    public int hashCode() {
-        return this.id.hashCode();
-    }
-
-    public String getKubernetesClusterId() {
-        return kubernetesClusterId;
-    }
-
-    public void setKubernetesClusterId(String kubernetesClusterId) {
-        this.kubernetesClusterId = kubernetesClusterId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
index dc2ec7a..408f7f7 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java
@@ -29,8 +29,6 @@ import org.apache.stratos.autoscaler.exception.AutoScalerException;
 import org.apache.stratos.autoscaler.pojo.ServiceGroup;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.NetworkPartition;
 import org.apache.stratos.autoscaler.util.AutoscalerConstants;
 import org.apache.stratos.autoscaler.util.Deserializer;
 import org.apache.stratos.autoscaler.util.Serializer;
@@ -127,14 +125,6 @@ public class RegistryManager {
         }
     }
 
-    public void persistDeploymentPolicy(DeploymentPolicy deploymentPolicy) {
-        String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.DEPLOYMENT_POLICY_RESOURCE + "/" + deploymentPolicy.getApplicationId();
-        persist(deploymentPolicy, resourcePath);
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("Deployment policy written to registry: %s", deploymentPolicy.toString()));
-        }
-    }
-
     public void persistApplication(Application application) {
 
         try {
@@ -422,36 +412,37 @@ public class RegistryManager {
         }
         return asPolicyList;
     }
-
-    public List<DeploymentPolicy> retrieveDeploymentPolicies() {
-        List<DeploymentPolicy> depPolicyList = new ArrayList<DeploymentPolicy>();
+    
+    public List<ApplicationPolicy> retrieveApplicationPolicies() {
+        List<ApplicationPolicy> applicationPolicyList = new ArrayList<ApplicationPolicy>();
         RegistryManager registryManager = RegistryManager.getInstance();
-        String[] depPolicyResourceList = (String[]) registryManager.retrieve(AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.DEPLOYMENT_POLICY_RESOURCE);
+        String[] applicationPoliciesResourceList = (String[]) registryManager.retrieve(
+        		AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.APPLICATION_POLICY_RESOURCE);
 
-        if (depPolicyResourceList != null) {
-            DeploymentPolicy depPolicy;
-            for (String resourcePath : depPolicyResourceList) {
+        if (applicationPoliciesResourceList != null) {
+        	ApplicationPolicy applicationPolicy;
+            for (String resourcePath : applicationPoliciesResourceList) {
                 Object serializedObj = registryManager.retrieve(resourcePath);
                 if (serializedObj != null) {
                     try {
                         Object dataObj = Deserializer.deserializeFromByteArray((byte[]) serializedObj);
-                        if (dataObj instanceof DeploymentPolicy) {
-                            depPolicy = (DeploymentPolicy) dataObj;
+                        if (dataObj instanceof ApplicationPolicy) {
+                        	applicationPolicy = (ApplicationPolicy) dataObj;
                             if (log.isDebugEnabled()) {
-                                log.debug(depPolicy.toString());
+                                log.debug(String.format("Application policy read from registry %s", applicationPolicy.toString()));
                             }
-                            depPolicyList.add(depPolicy);
+                            applicationPolicyList.add(applicationPolicy);
                         } else {
                             return null;
                         }
                     } catch (Exception e) {
-                        String msg = "Unable to retrieve data from Registry. Hence, any historical deployment policies will not get reflected.";
+                        String msg = "Unable to retrieve data from Registry. Hence, any historical application policies will not get reflected.";
                         log.warn(msg, e);
                     }
                 }
             }
         }
-        return depPolicyList;
+        return applicationPolicyList;
     }
 
     public ServiceGroup getServiceGroup(String name) throws Exception {
@@ -539,14 +530,15 @@ public class RegistryManager {
         }
 
     }
-
-    public void removeDeploymentPolicy(DeploymentPolicy depPolicy) {
-        String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.DEPLOYMENT_POLICY_RESOURCE;
+    
+    public void removeApplicationPolicy(String applicationId) {
+        String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.APPLICATION_POLICY_RESOURCE + "/" +
+        		applicationId;
         this.delete(resourcePath);
         if (log.isDebugEnabled()) {
-            log.debug(String.format("Deployment policy deleted from registry: [id] %s",
-                    depPolicy.getApplicationId()));
+            log.debug(String.format("Application policy deleted from registry [application-id] %s", applicationId));
         }
+
     }
 
     private void delete(String resourcePath) {
@@ -568,9 +560,10 @@ public class RegistryManager {
 
     }
 
-	public void persistApplicationPolicy(String applicationId, ApplicationPolicy applicationPolicy) {
+	public void persistApplicationPolicy(ApplicationPolicy applicationPolicy) {
 
-		String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.APPLICATION_POLICY_RESOURCE + "/" + applicationId;
+		String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + 
+				AutoscalerConstants.APPLICATION_POLICY_RESOURCE + "/" + applicationPolicy.getApplicationId();
         persist(applicationPolicy, resourcePath);
         if (log.isDebugEnabled()) {
             log.debug(String.format("Application policy written to registry"));

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 4de0f77..dd7677b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -34,7 +34,6 @@ import org.wso2.carbon.utils.CarbonUtils;
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
 /**
  * This class is responsible for evaluating the current details of topology, statistics, and health

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
index 9c8b50b..c0ae88b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
@@ -22,14 +22,15 @@
 package org.apache.stratos.autoscaler.services;
 
 import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext;
-import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
+import org.apache.stratos.autoscaler.exception.kubernetes.InvalidServiceGroupException;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
+import org.apache.stratos.autoscaler.exception.*;
 import org.apache.stratos.autoscaler.exception.application.ApplicationDefinitionException;
 import org.apache.stratos.autoscaler.exception.kubernetes.InvalidServiceGroupException;
 import org.apache.stratos.autoscaler.exception.policy.InvalidPolicyException;
 import org.apache.stratos.autoscaler.pojo.ServiceGroup;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.common.Properties;
 
 public interface AutoscalerService {
@@ -118,13 +119,6 @@ public interface AutoscalerService {
     public void deleteApplication(String applicationId);
 
     /**
-     * Returns a deployment policy of an application
-     * @param applicationId
-     * @return
-     */
-    public DeploymentPolicy getDeploymentPolicy(String applicationId);
-
-    /**
      * Dynamically update the properties of an Autoscaling Cluster Monitor
      * @param clusterId id of the cluster.
      * @param properties updated properties.

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index e419d4e..4b07380 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -53,9 +53,6 @@ import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
 import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy;
 import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicyNetworkPartitionReference;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.NetworkPartition;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition;
 import org.apache.stratos.autoscaler.registry.RegistryManager;
 import org.apache.stratos.autoscaler.services.AutoscalerService;
 import org.apache.stratos.autoscaler.util.AutoscalerUtil;
@@ -126,11 +123,6 @@ public class AutoscalerServiceImpl implements AutoscalerService {
 		return canRemove;
 	}
 
-	@Override
-    public DeploymentPolicy getDeploymentPolicy(String deploymentPolicyId) {
-        return PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyId);
-    }
-
     @Override
     public AutoscalePolicy getAutoscalingPolicy(String autoscalingPolicyId) {
         return PolicyManager.getInstance().getAutoscalePolicy(autoscalingPolicyId);
@@ -193,7 +185,7 @@ public class AutoscalerServiceImpl implements AutoscalerService {
 			validateApplicationPolicy(applicationId, applicationPolicy);
 			
 			// Add application policy
-			PolicyManager.getInstance().addApplicationPolicy(applicationId, applicationPolicy);
+			PolicyManager.getInstance().addApplicationPolicy(applicationPolicy);
 			if(!applicationContext.isMultiTenant()) {
 			    // Add application signup for single tenant applications
 			    addApplicationSignUp(applicationContext, application.getKey());
@@ -376,16 +368,16 @@ public class AutoscalerServiceImpl implements AutoscalerService {
 
             // Remove Application SignUp(s) in stratos manager
             removeApplicationSignUp(application);
+            
+            // Remove application policy
+            PolicyManager.getInstance().removeApplicationPolicy(applicationId);
 
             ApplicationBuilder.handleApplicationUndeployed(applicationId);
 
             ApplicationContext applicationContext = AutoscalerContext.getInstance().getApplicationContext(applicationId);
             applicationContext.setStatus(ApplicationContext.STATUS_CREATED);
             AutoscalerContext.getInstance().updateApplicationContext(applicationContext);
-
-            DeploymentPolicy deploymentPolicy = PolicyManager.getInstance().getDeploymentPolicy(applicationId);
-            PolicyManager.getInstance().removeDeploymentPolicy(deploymentPolicy);
-
+            
             if (log.isInfoEnabled()) {
                 log.info("Application undeployed successfully: [application-id] " + applicationId);
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
index 2105008..43ccee0 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerConstants.java
@@ -45,7 +45,6 @@ public final class AutoscalerConstants {
 	public static final String AUTOSCALER_RESOURCE = "/autoscaler";
 	public static final String PARTITION_RESOURCE = "/partitions";
 	public static final String AS_POLICY_RESOURCE = "/policies/autoscalingPolicies";
-	public static final String DEPLOYMENT_POLICY_RESOURCE = "/policies/deploymentPolicies";
     public static final String APPLICATIONS_RESOURCE = "/applications";
     public static final String APPLICATION_CONTEXTS_RESOURCE = "/applicationContexts";
     public static final String APPLICATION_POLICY_RESOURCE = "/policies/applicationPolicies";

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerObjectConverter.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerObjectConverter.java
index dab8c37..b1fe55e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerObjectConverter.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerObjectConverter.java
@@ -19,7 +19,6 @@
 
 package org.apache.stratos.autoscaler.util;
 
-import org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.NetworkPartition;
 import org.apache.stratos.cloud.controller.stub.Property;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.common.Properties;
@@ -32,84 +31,84 @@ import java.util.List;
  */
 public class AutoscalerObjectConverter {
 
-    /**
-     * Convert autoscaler partitions to cloud controller stub partitions
-     * @param partitions
-     * @return
-     */
-    public static org.apache.stratos.cloud.controller.stub.domain.Partition[]
-        convertASPartitionsToCCStubPartitions(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] partitions) {
+//    /**
+//     * Convert autoscaler partitions to cloud controller stub partitions
+//     * @param partitions
+//     * @return
+//     */
+//    public static org.apache.stratos.cloud.controller.stub.domain.Partition[]
+//        convertASPartitionsToCCStubPartitions(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] partitions) {
+//
+//        List<Partition> cloudControllerPartitions = new ArrayList<Partition>();
+//        for(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition : partitions) {
+//            Partition cloudControllerPartition = convertASPartitionToCCPartition(partition);
+//            cloudControllerPartitions.add(cloudControllerPartition);
+//        }
+//        return cloudControllerPartitions.toArray(new Partition[cloudControllerPartitions.size()]);
+//    }
 
-        List<Partition> cloudControllerPartitions = new ArrayList<Partition>();
-        for(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition : partitions) {
-            Partition cloudControllerPartition = convertASPartitionToCCPartition(partition);
-            cloudControllerPartitions.add(cloudControllerPartition);
-        }
-        return cloudControllerPartitions.toArray(new Partition[cloudControllerPartitions.size()]);
-    }
-
-    /**
-     * Convert autoscaler partition to cloud controller partition
-     * @param partition
-     * @return
-     */
-    public static org.apache.stratos.cloud.controller.stub.domain.Partition
-        convertASPartitionToCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) {
-
-        org.apache.stratos.cloud.controller.stub.domain.Partition cloudControllerPartition = new
-                org.apache.stratos.cloud.controller.stub.domain.Partition();
-
-        cloudControllerPartition.setId(partition.getId());
-        cloudControllerPartition.setProvider(partition.getProvider());
-        cloudControllerPartition.setDescription(partition.getDescription());
-        cloudControllerPartition.setKubernetesClusterId(partition.getKubernetesClusterId());
-        cloudControllerPartition.setIsPublic(partition.getIsPublic());
-        cloudControllerPartition.setProperties(AutoscalerUtil.toStubProperties(partition.getProperties()));
-
-        return cloudControllerPartition;
-    }
+//    /**
+//     * Convert autoscaler partition to cloud controller partition
+//     * @param partition
+//     * @return
+//     */
+//    public static org.apache.stratos.cloud.controller.stub.domain.Partition
+//        convertASPartitionToCCPartition(org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition) {
+//
+//        org.apache.stratos.cloud.controller.stub.domain.Partition cloudControllerPartition = new
+//                org.apache.stratos.cloud.controller.stub.domain.Partition();
+//
+//        cloudControllerPartition.setId(partition.getId());
+//        cloudControllerPartition.setProvider(partition.getProvider());
+//        cloudControllerPartition.setDescription(partition.getDescription());
+//        cloudControllerPartition.setKubernetesClusterId(partition.getKubernetesClusterId());
+//        cloudControllerPartition.setIsPublic(partition.getIsPublic());
+//        cloudControllerPartition.setProperties(AutoscalerUtil.toStubProperties(partition.getProperties()));
+//
+//        return cloudControllerPartition;
+//    }
     
     
-    public static NetworkPartition convertNetworkParitionStubToPojo(org.apache.stratos.cloud.controller.stub.domain.NetworkPartition np) {
-    	
-    	NetworkPartition networkPartition = new NetworkPartition();
-    	networkPartition.setId(np.getId());
-    	networkPartition.setKubernetesClusterId(np.getKubernetesClusterId());
-    	networkPartition.setPartitions(convertPartitionStubToPojo(np.getPartitions()));
-    	
-    	return networkPartition;
-    }
+//    public static NetworkPartition convertNetworkParitionStubToPojo(org.apache.stratos.cloud.controller.stub.domain.NetworkPartition np) {
+//    	
+//    	NetworkPartition networkPartition = new NetworkPartition();
+//    	networkPartition.setId(np.getId());
+//    	networkPartition.setKubernetesClusterId(np.getKubernetesClusterId());
+//    	networkPartition.setPartitions(convertPartitionStubToPojo(np.getPartitions()));
+//    	
+//    	return networkPartition;
+//    }
 
-	private static org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] convertPartitionStubToPojo(
-            Partition[] partitions) {
-		
-		List<org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition> partitionList = 
-				new ArrayList<org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition>();
-		
-		for (Partition p : partitions) {
-			org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition =
-					new org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition();
-			partition.setDescription(p.getDescription());
-			partition.setId(p.getId());
-			partition.setIsPublic(p.getIsPublic());
-			partition.setKubernetesClusterId(p.getKubernetesClusterId());
-			partition.setProperties(convertProperties(p.getProperties()));
-			partition.setProvider(p.getProvider());
-        }
-		
-	    return partitionList.toArray(
-	    		new org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[partitions.length]);
-    }
+//	private static org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[] convertPartitionStubToPojo(
+//            Partition[] partitions) {
+//		
+//		List<org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition> partitionList = 
+//				new ArrayList<org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition>();
+//		
+//		for (Partition p : partitions) {
+//			org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition partition =
+//					new org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition();
+//			partition.setDescription(p.getDescription());
+//			partition.setId(p.getId());
+//			partition.setIsPublic(p.getIsPublic());
+//			partition.setKubernetesClusterId(p.getKubernetesClusterId());
+//			partition.setProperties(convertProperties(p.getProperties()));
+//			partition.setProvider(p.getProvider());
+//        }
+//		
+//	    return partitionList.toArray(
+//	    		new org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.Partition[partitions.length]);
+//    }
 
-	private static Properties convertProperties(
-            org.apache.stratos.cloud.controller.stub.Properties properties) {
-	    
-		Properties props = new Properties();
-		Property[] propArray = properties.getProperties();
-		for (Property property : propArray) {
-	        props.addProperty(new org.apache.stratos.common.Property(property.getName(),property.getValue()));
-        }
-		
-	    return props;
-    }
+//	private static Properties convertProperties(
+//            org.apache.stratos.cloud.controller.stub.Properties properties) {
+//	    
+//		Properties props = new Properties();
+//		Property[] propArray = properties.getProperties();
+//		for (Property property : propArray) {
+//	        props.addProperty(new org.apache.stratos.common.Property(property.getName(),property.getValue()));
+//        }
+//		
+//	    return props;
+//    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 19af96a..fec148f 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -26,6 +26,10 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.applications.dependency.context.ApplicationChildContext;
 import org.apache.stratos.autoscaler.applications.dependency.context.ClusterChildContext;
 import org.apache.stratos.autoscaler.applications.dependency.context.GroupChildContext;
+import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext;
+import org.apache.stratos.autoscaler.applications.pojo.CartridgeContext;
+import org.apache.stratos.autoscaler.applications.pojo.ComponentContext;
+import org.apache.stratos.autoscaler.applications.pojo.GroupContext;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.exception.application.DependencyBuilderException;
 import org.apache.stratos.autoscaler.exception.application.TopologyInConsistentException;
@@ -44,7 +48,9 @@ import org.apache.stratos.messaging.domain.topology.Topology;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
 import javax.xml.namespace.QName;
+
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
@@ -357,4 +363,165 @@ public class AutoscalerUtil {
         }
         return "*";
     }
+    
+    public static String getDeploymentPolicyIdByAlias(String applicationId, String alias) {
+    	
+    	if (alias == null || alias.isEmpty()) {
+			return null;
+		}
+    	
+    	Map<String, String> aliasToDeploymentPolicyIdMap = new HashMap<String, String>();
+    	
+    	ApplicationContext applicationContext = RegistryManager.getInstance().getApplicationContext(applicationId);
+    	if (applicationContext == null) {
+			return null;
+		}
+    	
+    	ComponentContext componentContext = applicationContext.getComponents();
+    	if (componentContext == null) {
+			return null;
+		}
+    	
+    	CartridgeContext[] cartridgeContexts = componentContext.getCartridgeContexts();
+    	if (cartridgeContexts != null && cartridgeContexts.length != 0) {
+    		getAliasToDeployloymentPolicyIdMapFromChildCartridgeContexts(aliasToDeploymentPolicyIdMap, cartridgeContexts);
+		}
+    	
+    	GroupContext[] groupContexts = componentContext.getGroupContexts();
+    	if (groupContexts != null && groupContexts.length != 0) {
+    		getAliasToDeployloymentPolicyIdMapFromChildGroupContexts(aliasToDeploymentPolicyIdMap, groupContexts);
+		}
+    	
+    	return aliasToDeploymentPolicyIdMap.get(alias);
+    }
+    
+    private static void getAliasToDeployloymentPolicyIdMapFromChildCartridgeContexts(
+    		Map<String, String> aliasToDeploymentPolicyIdMap, CartridgeContext[] cartridgeContexts) {
+    	
+    	if (cartridgeContexts != null && cartridgeContexts.length != 0) {
+			for (CartridgeContext cartridgeContext : cartridgeContexts) {
+				if (cartridgeContext != null) {
+					aliasToDeploymentPolicyIdMap.put(
+							cartridgeContext.getSubscribableInfoContext().getAlias(), 
+							cartridgeContext.getSubscribableInfoContext().getDeploymentPolicy());
+				}
+			}
+		}
+    }
+    
+    private static void getAliasToDeployloymentPolicyIdMapFromChildGroupContexts(
+    		Map<String, String> aliasToDeploymentPolicyIdMap, GroupContext[] groupContexts) {
+    	
+    	if (groupContexts != null && groupContexts.length != 0) {
+			for (GroupContext groupContext : groupContexts) {
+				if (groupContext != null) {
+					if (groupContext.getDeploymentPolicy() == null || groupContext.getDeploymentPolicy().isEmpty()) {
+						// if group does not have a deployment policy, children should have
+						getAliasToDeployloymentPolicyIdMapFromChildCartridgeContexts(aliasToDeploymentPolicyIdMap, groupContext.getCartridgeContexts());
+						getAliasToDeployloymentPolicyIdMapFromChildGroupContexts(aliasToDeploymentPolicyIdMap, groupContext.getGroupContexts());
+					} else {
+						// if group have a deployment policy, it is the same for all the children
+						String deploymentPolicyId = groupContext.getDeploymentPolicy();
+						if (groupContext.getCartridgeContexts() != null && groupContext.getCartridgeContexts().length != 0) {
+							setDeploymentPolicyIdToChildCartridgeContexts(aliasToDeploymentPolicyIdMap, deploymentPolicyId, groupContext.getCartridgeContexts());
+						}
+						if (groupContext.getGroupContexts() != null && groupContext.getGroupContexts().length != 0) {
+							setDeploymentPolicyIdToChildGroupContexts(aliasToDeploymentPolicyIdMap, deploymentPolicyId, groupContext.getGroupContexts());
+						}
+						
+					}
+				}
+			}
+		}
+    }
+    
+    private static void setDeploymentPolicyIdToChildCartridgeContexts(
+    		Map<String, String> aliasToDeploymentPolicyIdMap, String deploymentPolicyId, CartridgeContext[] cartridgeContexts) {
+    	
+    	if (cartridgeContexts != null && cartridgeContexts.length != 0) {
+    		for (CartridgeContext cartridgeContext : cartridgeContexts) {
+				if (cartridgeContext != null) {
+					aliasToDeploymentPolicyIdMap.put(cartridgeContext.getSubscribableInfoContext().getAlias(), deploymentPolicyId);
+				}
+			}
+		}
+    }
+
+    private static void setDeploymentPolicyIdToChildGroupContexts(
+    		Map<String, String> aliasToDeploymentPolicyIdMap, String deploymentPolicyId, GroupContext[] groupContexts) {
+    	
+    	if (groupContexts != null && groupContexts.length != 0) {
+    		for (GroupContext groupContext : groupContexts) {
+				if (groupContext != null) {
+					if (groupContext.getCartridgeContexts() != null && groupContext.getCartridgeContexts().length != 0) {
+						setDeploymentPolicyIdToChildCartridgeContexts(aliasToDeploymentPolicyIdMap, deploymentPolicyId, groupContext.getCartridgeContexts());
+					}
+					if (groupContext.getGroupContexts() != null && groupContext.getGroupContexts().length != 0) {
+						setDeploymentPolicyIdToChildGroupContexts(aliasToDeploymentPolicyIdMap, deploymentPolicyId, groupContext.getGroupContexts());
+					}
+				}
+			}
+		}
+    }
+
+//    public static LbClusterMonitor getLbClusterMonitor(Cluster cluster) throws PolicyValidationException, PartitionValidationException {
+//        if (null == cluster) {
+//               return null;
+//           }
+//
+//           String autoscalePolicyName = cluster.getAutoscalePolicyName();
+//           String deploymentPolicyName = cluster.getDeploymentPolicyName();
+//
+//           if (log.isDebugEnabled()) {
+//               log.debug("Deployment policy name: " + deploymentPolicyName);
+//               log.debug("Autoscaler policy name: " + autoscalePolicyName);
+//           }
+//
+//           AutoscalePolicy policy =
+//                                    PolicyManager.getInstance()
+//                                                 .getAutoscalePolicy(autoscalePolicyName);
+//           DeploymentPolicy deploymentPolicy =
+//                                               PolicyManager.getInstance()
+//                                                            .getDeploymentPolicy(deploymentPolicyName);
+//
+//           if (deploymentPolicy == null) {
+//               String msg = "Deployment Policy is null. Policy name: " + deploymentPolicyName;
+//               log.error(msg);
+//               throw new PolicyValidationException(msg);
+//           }
+//
+//           Partition[] allPartitions = deploymentPolicy.getAllPartitions();
+//           if (allPartitions == null) {
+//               String msg =
+//                            "Deployment Policy's Partitions are null. Policy name: " +
+//                                    deploymentPolicyName;
+//               log.error(msg);
+//               throw new PolicyValidationException(msg);
+//           }
+//
+//           try {
+//               validateExistenceOfPartions(allPartitions);
+//           } catch (InvalidPartitionException e) {
+//               String msg = "Deployment Policy is invalid. Policy name: " + deploymentPolicyName;
+//               log.error(msg, e);
+//               throw new PolicyValidationException(msg, e);
+//           }
+//
+//           CloudControllerClient.getInstance()
+//                                .validateDeploymentPolicy(cluster.getServiceName(),
+//                                                            allPartitions);
+//
+//           LbClusterMonitor clusterMonitor =
+//                                           new LbClusterMonitor(cluster.getClusterId(),
+//                                                              cluster.getServiceName(),
+//                                                              deploymentPolicy, policy);
+//           fNetworkPartitionroup partitionGroup: deploymentPoliNetworkPartitionnGroups()){
+//
+//               NetworkPartitionContext networkPartitionContext
+//                       = PartitionManager.getInstance().getNetworkPartitionLbHolder(partitionGroup.getNetworkPartitionId());
+//               clusterMonitor.addNetworkPartitionCtxt(networkPartitionContext);
+//           }
+//        return null;
+//    }
+
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
index d475524..fca3739 100644
--- a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
+++ b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl
@@ -35,7 +35,6 @@ import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionCont
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.commons.logging.Log;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl
index a536ec7c..616cc3c 100644
--- a/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl
+++ b/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl
@@ -35,7 +35,6 @@ import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionCont
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.commons.logging.Log;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/DeploymentPolicy.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/DeploymentPolicy.java
index 1bc3dfe..275d544 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/DeploymentPolicy.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/DeploymentPolicy.java
@@ -46,6 +46,38 @@ public class DeploymentPolicy implements Serializable{
 	public void setNetworkPartitionsRef(NetworkPartitionRef[] applicationLevelNetworkPartitions) {
 		this.applicationLevelNetworkPartitions = applicationLevelNetworkPartitions;
 	}
+	
+	/**
+	 * Get network partition reference object by network partition id.
+	 * @param networkPartitionId
+	 * @return the {@link NetworkPartitionRef}
+	 */
+	public NetworkPartitionRef getNetworkPartitionRefByNetworkPartitionId(String networkPartitionId) {
+		if (applicationLevelNetworkPartitions != null) {
+			for (NetworkPartitionRef networkPartitionRef : applicationLevelNetworkPartitions) {
+				if (networkPartitionRef.getId().equals(networkPartitionId)) {
+					return networkPartitionRef;
+				}
+			}
+		}
+		return null;
+	}
+	
+	/**
+	 * Get partition references by network partition id.
+	 * @param networkPartitionId
+	 * @return an array of {@link PartitionRef}
+	 */
+	public PartitionRef[] getPartitionRefsByNetworkPartitionId(String networkPartitionId) {
+		if (applicationLevelNetworkPartitions != null) {
+			for (NetworkPartitionRef networkPartitionRef : applicationLevelNetworkPartitions) {
+				if (networkPartitionRef.getId().equals(networkPartitionId)) {
+					return networkPartitionRef.getPartitions();
+				}
+			}
+		}
+		return null;
+	}
 
 	public String toString() {
 		return String.format("{ deployment-policy-id : %s, network-partitions : %s", deploymentPolicyID, 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartitionRef.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartitionRef.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartitionRef.java
index 990d34f..92b906a 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartitionRef.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartitionRef.java
@@ -59,6 +59,22 @@ public class NetworkPartitionRef implements Serializable{
 		this.partitions = partitions;
 	}
 	
+	/**
+	 * Get partition reference by partition id
+	 * @param partitionId
+	 * @return {@link PartitionRef}
+	 */
+	public PartitionRef getPartitionRef(String partitionId) {
+		if (partitions != null && partitions.length != 0) {
+			for (PartitionRef partitionRef : partitions) {
+				if (partitionRef.getId().equals(partitionId)) {
+					return partitionRef;
+				}
+			}
+		}
+		return null;
+	}
+	
 	@Override
 	public String toString() {
 		return String.format("{ network-partition-id : %s, partition-algo : %s, partitions : %s }", id, partitionAlgo, Arrays.toString(partitions));

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
index 3a23c4d..6670f73 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
@@ -25,12 +25,9 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.stub.*;
 import org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy;
-import org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition;
 import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicy;
-import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
 import org.apache.stratos.autoscaler.stub.pojo.ServiceGroup;
-import org.apache.stratos.common.beans.policy.deployment.ApplicationPolicyBean;
 import org.apache.stratos.common.constants.StratosConstants;
 
 import java.rmi.RemoteException;
@@ -92,10 +89,6 @@ public class AutoscalerServiceClient {
         return stub.getAutoscalingPolicy(autoscalingPolicyId);
     }
 
-    public org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy getDeploymentPolicy(String deploymentPolicyId) throws RemoteException {
-        return stub.getDeploymentPolicy(deploymentPolicyId);
-    }
-
     public void addApplication(ApplicationContext applicationContext) throws AutoscalerServiceApplicationDefinitionExceptionException, RemoteException {
         stub.addApplication(applicationContext);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java
index 2e20ca6..9e05242 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/CloudControllerServiceClient.java
@@ -230,6 +230,13 @@ public class CloudControllerServiceClient {
     public DeploymentPolicy[] getDeploymentPolicies() throws RemoteException{
     	return stub.getDeploymentPolicies();
     }
+    
+    public void validateDeploymentPolicy(String cartridgeType, Partition[] partitions) 
+    		throws RemoteException, 
+    		CloudControllerServiceInvalidPartitionExceptionException, 
+    		CloudControllerServiceInvalidCartridgeTypeExceptionException {
+    	stub.validateDeploymentPolicy(cartridgeType, partitions);
+    }
 	
     public void addNetworkPartition(NetworkPartition networkPartition) throws RemoteException, 
     CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException {

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
index 43cb05f..957a8e0 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
@@ -23,7 +23,6 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.stub.AutoscalerServiceInvalidPolicyExceptionException;
-import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceCartridgeAlreadyExistsExceptionException;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeDefinitionExceptionException;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
@@ -109,25 +108,25 @@ public class StratosApiV40Utils {
         return stratosApiResponse;
     }
 
-    @SuppressWarnings("unused")
-    private static DeploymentPolicy[] intersection(
-            DeploymentPolicy[] cartridgeDepPolicies,
-            DeploymentPolicy[] lbCartridgeDepPolicies) {
-
-        List<DeploymentPolicy> commonPolicies =
-                new ArrayList<DeploymentPolicy>();
-        for (DeploymentPolicy policy1
-                : cartridgeDepPolicies) {
-            for (DeploymentPolicy policy2
-                    : lbCartridgeDepPolicies) {
-                if(policy1.equals(policy2)) {
-                    commonPolicies.add(policy1);
-                }
-            }
-
-        }
-        return commonPolicies.toArray(new DeploymentPolicy[0]);
-    }
+//    @SuppressWarnings("unused")
+//    private static DeploymentPolicy[] intersection(
+//            DeploymentPolicy[] cartridgeDepPolicies,
+//            DeploymentPolicy[] lbCartridgeDepPolicies) {
+//
+//        List<DeploymentPolicy> commonPolicies =
+//                new ArrayList<DeploymentPolicy>();
+//        for (DeploymentPolicy policy1
+//                : cartridgeDepPolicies) {
+//            for (DeploymentPolicy policy2
+//                    : lbCartridgeDepPolicies) {
+//                if(policy1.equals(policy2)) {
+//                    commonPolicies.add(policy1);
+//                }
+//            }
+//
+//        }
+//        return commonPolicies.toArray(new DeploymentPolicy[0]);
+//    }
 
     static ApiResponseBean undeployCartridge(String cartridgeType) throws RestAPIException {
 
@@ -319,13 +318,13 @@ public class StratosApiV40Utils {
         return ObjectConverter.convertStubAutoscalePolicyToAutoscalePolicy(autoscalePolicy);
     }
 
-    public static DeploymentPolicyBean getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
-
-        DeploymentPolicy deploymentPolicy = null;
-
-
-        return null;
-    }
+//    public static DeploymentPolicyBean getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
+//
+//        DeploymentPolicy deploymentPolicy = null;
+//
+//
+//        return null;
+//    }
 
     static CartridgeBean getAvailableCartridgeInfo(String cartridgeType, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
         List<CartridgeBean> cartridges = getAvailableCartridges(null, multiTenant, configurationContext);

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 7ed63f1..47144d0 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -1015,9 +1015,12 @@ public class StratosApiV41Utils {
                 log.error(message);
                 throw new RestAPIException(message);
             }
-
-            autoscalerServiceClient.deployApplication(applicationId, 
-            		ObjectConverter.convertApplicationPolicyBeanToStubAppPolicy(applicationPolicy));
+            
+            ApplicationPolicy ccStubApplicationPolicy = ObjectConverter.convertApplicationPolicyBeanToStubAppPolicy(applicationPolicy);
+            // setting the application id since application-policy.json doesn't have this attribute explicitly
+            // reason is deployApplication() api path is containing the application id
+            ccStubApplicationPolicy.setApplicationId(applicationId);
+			autoscalerServiceClient.deployApplication(applicationId, ccStubApplicationPolicy);
             if (log.isInfoEnabled()) {
                 log.info(String.format("Application deployed successfully: [application-id] %s", applicationId));
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 06a7d8b..840477b 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -22,12 +22,8 @@ package org.apache.stratos.rest.endpoint.util.converter;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition;
-import org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition;
-import org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition;
 import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicy;
 import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicyNetworkPartitionReference;
-import org.apache.stratos.autoscaler.stub.deployment.policy.ChildPolicy;
 import org.apache.stratos.autoscaler.stub.pojo.*;
 import org.apache.stratos.autoscaler.stub.pojo.Dependencies;
 import org.apache.stratos.autoscaler.stub.pojo.ServiceGroup;
@@ -46,7 +42,6 @@ import org.apache.stratos.common.beans.kubernetes.PortRangeBean;
 import org.apache.stratos.common.beans.partition.*;
 import org.apache.stratos.common.beans.policy.autoscale.*;
 import org.apache.stratos.common.beans.policy.deployment.ApplicationPolicyBean;
-import org.apache.stratos.common.beans.policy.deployment.ChildPolicyBean;
 import org.apache.stratos.common.beans.policy.deployment.DeploymentPolicyBean;
 import org.apache.stratos.common.beans.topology.*;
 import org.apache.stratos.common.util.CommonUtil;
@@ -375,80 +370,6 @@ public class ObjectConverter {
 		return deploymentPolicy;
 	}
 
-    private static ChildPolicyBean
-    convertStubChildPolicyToChildPolicy(ChildPolicy stubChildDeploymentPolicy) {
-        if(stubChildDeploymentPolicy == null) {
-            return null;
-        }
-        ChildPolicyBean childPolicyBean = new
-                ChildPolicyBean();
-        childPolicyBean.setAlias(stubChildDeploymentPolicy.getAlias());
-        if(stubChildDeploymentPolicy.getChildLevelNetworkPartitions() != null) {
-            List<ChildLevelNetworkPartitionBean> networkPartitionList
-                    = new ArrayList<ChildLevelNetworkPartitionBean>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition
-                    stubChildLevelNetworkPartition : stubChildDeploymentPolicy.getChildLevelNetworkPartitions()) {
-                networkPartitionList.add(convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(stubChildLevelNetworkPartition));
-            }
-            childPolicyBean.setNetworkPartition(networkPartitionList);
-        }
-        return childPolicyBean;
-    }
-
-    private static ChildLevelNetworkPartitionBean
-    convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(
-            ChildLevelNetworkPartition stubChildLevelNetworkPartition) {
-        if(stubChildLevelNetworkPartition == null) {
-            return null;
-        }
-        ChildLevelNetworkPartitionBean childLevelNetworkPartition =
-                new ChildLevelNetworkPartitionBean();
-        childLevelNetworkPartition.setId(stubChildLevelNetworkPartition.getId());
-        childLevelNetworkPartition.setPartitionAlgo(stubChildLevelNetworkPartition.getPartitionAlgo());
-        if(stubChildLevelNetworkPartition.getChildLevelPartitions() != null) {
-            List<ChildLevelPartitionBean> partitionList =
-                    new ArrayList<ChildLevelPartitionBean>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition stubChildLevelPartition : stubChildLevelNetworkPartition.getChildLevelPartitions()) {
-                partitionList.add(convertStubChildLevelPartitionToChildLevelPartition(stubChildLevelPartition));
-            }
-            childLevelNetworkPartition.setPartitions(partitionList);
-        }
-        return childLevelNetworkPartition;
-    }
-
-    private static ChildLevelPartitionBean
-    convertStubChildLevelPartitionToChildLevelPartition(ChildLevelPartition stubChildLevelPartition) {
-        if(stubChildLevelPartition == null) {
-            return null;
-        }
-        ChildLevelPartitionBean childLevelPartition =
-                new ChildLevelPartitionBean();
-        childLevelPartition.setId(stubChildLevelPartition.getPartitionId());
-        childLevelPartition.setMax(stubChildLevelPartition.getMax());
-        return childLevelPartition;
-    }
-
-    public static NetworkPartitionBean convertStubNetworkPartitionToNetworkPartition(
-            org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition stubNetworkPartition) {
-        if(stubNetworkPartition == null) {
-            return null;
-        }
-
-        NetworkPartitionBean networkPartition = new NetworkPartitionBean();
-        networkPartition.setId(stubNetworkPartition.getId());
-        if(stubNetworkPartition.getPartitions() != null) {
-            List<PartitionBean> partitionList = new ArrayList<PartitionBean>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition :
-                    stubNetworkPartition.getPartitions()) {
-                if(stubPartition != null) {
-                    partitionList.add(convertStubPartitionToPartition(stubPartition));
-                }
-            }
-            networkPartition.setPartitions(partitionList);
-        }
-        return networkPartition;
-    }
-    
     public static NetworkPartitionBean convertCCStubNetworkPartitionToNetworkPartition(
             org.apache.stratos.cloud.controller.stub.domain.NetworkPartition stubNetworkPartition) {
         if(stubNetworkPartition == null) {
@@ -500,24 +421,6 @@ public class ObjectConverter {
     	return applicationPolicyBean;
     }
 
-	public static org.apache.stratos.autoscaler.stub.deployment.partition.Partition convertToCCPartitionPojo
-			(PartitionBean partitionBean) {
-
-		org.apache.stratos.autoscaler.stub.deployment.partition.Partition partition = new
-				org.apache.stratos.autoscaler.stub.deployment.partition.Partition();
-
-		partition.setId(partitionBean.getId());
-		partition.setDescription(partitionBean.getDescription());
-		partition.setIsPublic(partitionBean.isPublic());
-		partition.setProvider(partitionBean.getProvider());
-
-		if (partitionBean.getProperty() != null && !partitionBean.getProperty().isEmpty()) {
-			partition.setProperties(getASProperties(partitionBean.getProperty()));
-		}
-
-		return partition;
-	}
-	
 	public static Partition convertPartitionToCCPartitionPojo(PartitionBean partitionBean) {
 
 		Partition partition = new Partition();
@@ -580,28 +483,6 @@ public class ObjectConverter {
 		return properties;
 	}
 
-	private static PartitionBean convertStubPartitionToPartition(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition) {
-        if(stubPartition == null) {
-            return null;
-        }
-        PartitionBean partition = new PartitionBean();
-        partition.setId(stubPartition.getId());
-        partition.setPublic(stubPartition.getIsPublic());
-        partition.setDescription(stubPartition.getDescription());
-        partition.setProvider(stubPartition.getProvider());
-        partition.setKubernetesClusterId(stubPartition.getKubernetesClusterId());
-        if(stubPartition.getProperties() != null) {
-            List<org.apache.stratos.common.beans.cartridge.PropertyBean> propertyBeanList = new ArrayList<org.apache.stratos.common.beans.cartridge.PropertyBean>();
-            for(org.apache.stratos.autoscaler.stub.Property stubProperty : stubPartition.getProperties().getProperties()) {
-                if(stubProperty != null) {
-                    propertyBeanList.add(convertStubPropertyToPropertyBean(stubProperty));
-                }
-            }
-            partition.setProperty(propertyBeanList);
-        }
-        return partition;
-    }
-	
 	private static PartitionBean convertCCStubPartitionToPartition(Partition stubPartition) {
         if(stubPartition == null) {
             return null;
@@ -636,33 +517,6 @@ public class ObjectConverter {
         return propertyBean;
     }
 
-    private static org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition[]
-        convertNetworkPartitionsToStubNetworkPartitions(List<NetworkPartitionBean> networkPartitionBeans) {
-
-	    org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition[]
-                appNWPartitions = new
-			    org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition
-                [networkPartitionBeans.size()];
-
-        for (int i = 0; i < networkPartitionBeans.size(); i++) {
-            appNWPartitions[i] = convertNetworkPartitionToStubNetworkPartition(networkPartitionBeans.get(i));
-        }
-
-        return appNWPartitions;
-    }
-
-    public static NetworkPartition convertNetworkPartitionToStubNetworkPartition(NetworkPartitionBean networkPartitionBean) {
-
-        org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition networkPartition =
-                new NetworkPartition();
-        networkPartition.setId(networkPartitionBean.getId());
-        networkPartition.setKubernetesClusterId(networkPartitionBean.getKubernetesClusterId());
-        if (networkPartitionBean.getPartitions() != null && !networkPartitionBean.getPartitions().isEmpty()) {
-            networkPartition.setPartitions(convertToCCPartitionPojos(networkPartitionBean.getPartitions()));
-        }
-        return networkPartition;
-    }
-    
     public static org.apache.stratos.cloud.controller.stub.domain.NetworkPartition convertNetworkPartitionToCCStubNetworkPartition(NetworkPartitionBean networkPartitionBean) {
 
         org.apache.stratos.cloud.controller.stub.domain.NetworkPartition networkPartition = new org.apache.stratos.cloud.controller.stub.domain.NetworkPartition();
@@ -703,22 +557,6 @@ public class ObjectConverter {
 		return networkPartitionRefBeans;
 	}
 
-    private static ChildLevelNetworkPartition[] convertToCCChildNetworkPartition(List<ChildLevelNetworkPartitionBean> networkPartitions) {
-
-        ChildLevelNetworkPartition[] childLevelNetworkPartitions = new ChildLevelNetworkPartition[networkPartitions.size()];
-
-        for (int i = 0; i < networkPartitions.size(); i++) {
-            ChildLevelNetworkPartition childLevelNetworkPartition = new ChildLevelNetworkPartition();
-            childLevelNetworkPartition.setId(networkPartitions.get(i).getId());
-            childLevelNetworkPartition.setPartitionAlgo(networkPartitions.get(i).getPartitionAlgo());
-            childLevelNetworkPartition.setChildLevelPartitions(convertToCCChildPartitionPojos(networkPartitions.get(i).getPartitions()));
-
-            childLevelNetworkPartitions[i] = childLevelNetworkPartition;
-        }
-
-        return childLevelNetworkPartitions;
-    }
-
     public static ClusterBean convertClusterToClusterBean(Cluster cluster, String alias) {
         ClusterBean clusterBean = new
                 ClusterBean();
@@ -905,21 +743,6 @@ public class ObjectConverter {
 		return partitionRefBeans;
 	}
 
-    private static ChildLevelPartition[] convertToCCChildPartitionPojos
-            (List<ChildLevelPartitionBean> partitionList) {
-
-        ChildLevelPartition[] childLevelPartitions = new ChildLevelPartition[partitionList.size()];
-        for (int i = 0; i < partitionList.size(); i++) {
-            ChildLevelPartition childLevelPartition = new ChildLevelPartition();
-            childLevelPartition.setPartitionId(partitionList.get(i).getId());
-            childLevelPartition.setMax(partitionList.get(i).getMax());
-
-            childLevelPartitions[i] = childLevelPartition;
-        }
-
-        return childLevelPartitions;
-    }
-
     public static PartitionBean[] populatePartitionPojos(org.apache.stratos.cloud.controller.stub.domain.Partition[]
                                                              partitions) {
 
@@ -1037,24 +860,6 @@ public class ObjectConverter {
         return loadThresholdBean;
     }
 
-    public static NetworkPartitionBean[] convertStubNetworkPartitionsToNetworkPartitions(
-            org.apache.stratos.autoscaler.stub.deployment.partition.NetworkPartition[] partitionGroups) {
-
-        NetworkPartitionBean[] networkPartitionGroupsBeans;
-        if (partitionGroups == null) {
-            networkPartitionGroupsBeans = new NetworkPartitionBean[0];
-            return networkPartitionGroupsBeans;
-        }
-
-        networkPartitionGroupsBeans = new NetworkPartitionBean[partitionGroups.length];
-
-        for (int i = 0; i < partitionGroups.length; i++) {
-            networkPartitionGroupsBeans[i] = convertStubNetworkPartitionToNetworkPartition(partitionGroups[i]);
-        }
-
-        return networkPartitionGroupsBeans;
-    }
-    
     public static NetworkPartitionBean[] convertCCStubNetworkPartitionsToNetworkPartitions(
             org.apache.stratos.cloud.controller.stub.domain.NetworkPartition[] partitionGroups) {
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
index 360b522..4cd5bc4 100755
--- a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl
@@ -35,7 +35,6 @@ import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionCont
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.commons.logging.Log;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;
 import org.apache.stratos.autoscaler.context.cluster.ClusterInstanceContext;

http://git-wip-us.apache.org/repos/asf/stratos/blob/8cf2f9f7/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
index f119d34..27d958a 100755
--- a/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl
@@ -35,7 +35,6 @@ import org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionCont
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.commons.logging.Log;
-import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.domain.Partition;
 import org.apache.stratos.cloud.controller.stub.domain.MemberContext;