http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/MemoryConsumptionThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/MemoryConsumptionThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/MemoryConsumptionThresholds.java
new file mode 100644
index 0000000..dc6a3e8
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/MemoryConsumptionThresholds.java
@@ -0,0 +1,52 @@
+/*
+ * 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.autoscale;
+
+import java.io.Serializable;
+
+/**
+ * The model class for MemoryConsumption definition.
+ */
+public class MemoryConsumptionThresholds implements Serializable {
+
+       private static final long serialVersionUID = 5755634390464664663L;
+       private float upperLimit = 80.0F;
+       private float lowerLimit = 20.0F;
+       
+       public float getUpperLimit() {
+               return upperLimit;
+       }
+       public void setUpperLimit(float upperLimit) {
+               this.upperLimit = upperLimit;
+       }
+       public float getLowerLimit() {
+               return lowerLimit;
+       }
+       public void setLowerLimit(float lowerLimit) {
+               this.lowerLimit = lowerLimit;
+       }
+       
+       @Override
+       public String toString() {
+               return "MemoryConsumption [upperLimit=" + upperLimit + ", 
lowerLimit="
+                               + lowerLimit + "]";
+       }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlight.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlight.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlight.java
new file mode 100644
index 0000000..252c6b9
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlight.java
@@ -0,0 +1,109 @@
+/*
+ * 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.autoscale;
+
+import java.io.Serializable;
+
+/**
+ * The model class for RequestsInFlight definition.
+ */
+public class RequestsInFlight implements Serializable{
+
+       private static final long serialVersionUID = 8113964958155294290L;
+       private float average;
+    private float secondDerivative;
+    private float gradient;
+    private float scaleDownMarginOfGradient;
+    private float scaleDownMarginOfSecondDerivative;
+
+    /**
+     * Gets the value of the average property.   
+     */
+    public float getAverage() {
+        return average;
+    }
+
+    /**
+     * Sets the value of the average property.   
+     */
+    public void setAverage(float value) {
+        this.average = value;
+    }
+
+    /**
+     * Gets the value of the second-derivative property. 
+     */
+    public float getSecondDerivative() {
+        return secondDerivative;
+    }
+
+    /**
+     * Sets the value of the second-derivative property.   
+     */
+    public void setSecondDerivative(float value) {
+        this.secondDerivative = value;
+    }
+
+    /**
+     * Gets the value of the gradient property. 
+     */
+    public float getGradient() {
+        return gradient;
+    }
+
+    /**
+     * Sets the value of the gradient property.
+     *     
+     */
+    public void setGradient(float value) {
+        this.gradient = value;
+    }
+
+    /**
+     * Gets the value of the scaleDownSlowerMarginOfGradient property.
+     */
+    public float getScaleDownMarginOfGradient() {
+        return scaleDownMarginOfGradient;
+    }
+
+    /**
+     * Sets the value of the scaleDownSlowerMarginOfGradient property.
+     *
+     */
+    public void setScaleDownMarginOfGradient(float scaleDownMarginOfGradient) {
+        this.scaleDownMarginOfGradient = scaleDownMarginOfGradient;
+    }
+
+    /**
+     * Gets the value of the scaleDownSlowerMarginOfSecondDerivative property.
+     */
+    public float getScaleDownMarginOfSecondDerivative() {
+        return scaleDownMarginOfSecondDerivative;
+    }
+
+    /**
+     * Sets the value of the scaleDownSlowerMarginOfSecondDerivative property.
+     *
+     */
+    public void setScaleDownMarginOfSecondDerivative(float 
scaleDownMarginOfSecondDerivative) {
+        this.scaleDownMarginOfSecondDerivative = 
scaleDownMarginOfSecondDerivative;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlightThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlightThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlightThresholds.java
new file mode 100644
index 0000000..a4c30d4
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/autoscale/RequestsInFlightThresholds.java
@@ -0,0 +1,53 @@
+/*
+ * 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.autoscale;
+
+import java.io.Serializable;
+
+/**
+ * The model class for RequestsInFlight definition.
+ */
+public class RequestsInFlightThresholds implements Serializable{
+
+       private static final long serialVersionUID = 8113964958155294290L;
+       private float upperLimit = 80.0F;
+       private float lowerLimit = 20.0F;
+       
+       public float getLowerLimit() {
+               return lowerLimit;
+       }
+       public void setLowerLimit(float lowerLimit) {
+               this.lowerLimit = lowerLimit;
+       }
+       public float getUpperLimit() {
+               return upperLimit;
+       }
+       public void setUpperLimit(float upperLimit) {
+               this.upperLimit = upperLimit;
+       }
+       @Override
+       public String toString() {
+               return "RequestsInFlight [upperLimit=" + upperLimit + ", 
lowerLimit="
+                               + lowerLimit + "]";
+       }
+       
+       
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/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
new file mode 100644
index 0000000..6869520
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java
@@ -0,0 +1,189 @@
+/*
+ * 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.ApplicationLevelNetworkPartition;
+import 
org.apache.stratos.autoscaler.pojo.policy.deployment.partition.network.ChildLevelNetworkPartition;
+import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+
+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 id;
+    private String description;
+    private boolean isPublic;
+    private ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions;
+    private int tenantId;
+
+    /**
+     * 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 value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = 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(ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions) {
+        if(applicationLevelNetworkPartitions == null) {
+            this.applicationLevelNetworkPartitions = new 
ApplicationLevelNetworkPartition[0];
+        } else {
+            this.applicationLevelNetworkPartitions = 
Arrays.copyOf(applicationLevelNetworkPartitions, 
applicationLevelNetworkPartitions.length);
+        }
+    }
+    
+    public Partition[] getAllPartitions() {
+       ArrayList<Partition> partitionsList = new ArrayList<Partition>();
+       for (ApplicationLevelNetworkPartition networkPartition : 
this.getApplicationLevelNetworkPartitions()) {
+            Partition[] partitions = networkPartition.getPartitions();
+            if(partitions != null) {
+               partitionsList.addAll(Arrays.asList(partitions));
+            }
+        }
+        return partitionsList.toArray(new Partition[partitionsList.size()]);
+    }
+        
+    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 ApplicationLevelNetworkPartition[] 
getApplicationLevelNetworkPartitions() {
+        
+        return this.applicationLevelNetworkPartitions;
+    }
+    
+    public ApplicationLevelNetworkPartition 
getApplicationLevelNetworkPartition(String partitionGrpId){
+       for(ApplicationLevelNetworkPartition parGrp : 
this.getApplicationLevelNetworkPartitions()){
+               if(parGrp.getId().equals(partitionGrpId))
+                       return parGrp;
+               
+       }
+       return null;
+    }
+    
+    public String toString() {
+        return "Deployment Policy [id]" + this.id + " Description " +  
this.description 
+                       + " isPublic " +  this.isPublic 
+                       +" [partitions] " + 
Arrays.toString(this.getAllPartitions());
+    }
+
+    public ChildLevelNetworkPartition getChildLevelNetworkPartition(String 
networkPartitionId) {
+        //TODO create a map of child level network partition context and 
return correct one
+        return null;
+    }
+
+    public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() {
+        //TODO create a map of child level network partition context and 
return correct one
+        return new ChildLevelNetworkPartition[0];
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/PartitionManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/PartitionManager.java
new file mode 100644
index 0000000..41de38d
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/PartitionManager.java
@@ -0,0 +1,177 @@
+///*
+// * 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;
+//
+//import org.apache.commons.lang.StringUtils;
+//import org.apache.commons.logging.Log;
+//import org.apache.commons.logging.LogFactory;
+////import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
+//import org.apache.stratos.autoscaler.client.CloudControllerClient;
+//import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
+//import org.apache.stratos.autoscaler.exception.AutoScalerException;
+//import 
org.apache.stratos.autoscaler.exception.partition.InvalidPartitionException;
+//import 
org.apache.stratos.autoscaler.exception.partition.PartitionValidationException;
+//import org.apache.stratos.autoscaler.registry.RegistryManager;
+//import 
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+//
+//import java.util.ArrayList;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+///**
+// * The model class for managing Partitions.
+// */
+//public class PartitionManager {
+//
+//    private static final Log log = LogFactory.getLog(PartitionManager.class);
+//
+//    // Partitions against partitionID
+//    private static Map<String, Partition> partitions = new HashMap<String, 
Partition>();
+//
+//    /*
+//     * Key - network partition id
+//     * Value - reference to NetworkPartition
+//     */
+////    private Map<String, NetworkPartitionLbHolder> 
networkPartitionLbHolders;
+//
+//    private static class Holder {
+//        static final PartitionManager INSTANCE = new PartitionManager();
+//    }
+//
+//    public static PartitionManager getInstance() {
+//        return Holder.INSTANCE;
+//    }
+//
+//    private PartitionManager() {
+////        networkPartitionLbHolders = new HashMap<String, 
NetworkPartitionLbHolder>();
+//    }
+//
+//
+//    public boolean partitionExist(String partitionId) {
+//        return partitions.containsKey(partitionId);
+//    }
+//
+//    /*
+//     * Deploy a new partition to Auto Scaler.
+//     */
+//    public boolean addNewPartition(Partition partition) throws 
InvalidPartitionException {
+//        if (StringUtils.isEmpty(partition.getId())) {
+//            throw new InvalidPartitionException("Partition id can not be 
empty");
+//        }
+//        if (this.partitionExist(partition.getId())) {
+//            throw new InvalidPartitionException(String.format("Partition 
already exist in partition manager: [id] %s", partition.getId()));
+//        }
+//        if (null == partition.getProvider()) {
+//            throw new InvalidPartitionException("Mandatory field provider 
has not be set for partition " + partition.getId());
+//        }
+//        try {
+//            validatePartitionViaCloudController(partition);
+//            RegistryManager.getInstance().persistPartition(partition);
+//            addPartitionToInformationModel(partition);
+//            if (log.isInfoEnabled()) {
+//                log.info(String.format("Partition is deployed successfully: 
[id] %s", partition.getId()));
+//            }
+//            return true;
+//        } catch (Exception e) {
+//            throw new InvalidPartitionException(e.getMessage(), e);
+//        }
+//    }
+//
+//
+//    public void addPartitionToInformationModel(Partition partition) {
+//        partitions.put(partition.getId(), partition);
+//    }
+//
+////    public NetworkPartitionLbHolder getNetworkPartitionLbHolder(String 
networkPartitionId) {
+////        return this.networkPartitionLbHolders.get(networkPartitionId);
+////    }
+//
+//    public Partition getPartitionById(String partitionId) {
+//        if (partitionExist(partitionId))
+//            return partitions.get(partitionId);
+//        else
+//            return null;
+//    }
+//
+//    public Partition[] getAllPartitions() {
+//        return partitions.values().toArray(new Partition[0]);
+//
+//    }
+//
+//    public boolean validatePartitionViaCloudController(Partition partition) 
throws PartitionValidationException {
+//        if (log.isDebugEnabled()) {
+//            log.debug(String.format("Validating partition via cloud 
controller: [id] %s", partition.getId()));
+//        }
+//        return 
CloudControllerClient.getInstance().validatePartition(partition);
+//    }
+//
+////    public List<NetworkPartitionLbHolder> 
getNetworkPartitionLbHolders(DeploymentPolicy depPolicy) {
+////        List<NetworkPartitionLbHolder> lbHolders = new 
ArrayList<NetworkPartitionLbHolder>();
+////        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
+////            String id = networkPartition.getId();
+////            NetworkPartitionLbHolder entry = 
networkPartitionLbHolders.get(id);
+////            if (entry != null) {
+////                lbHolders.add(entry);
+////            }
+////        }
+////        return lbHolders;
+////    }
+//
+////    public void deployNewNetworkPartitions(DeploymentPolicy depPolicy) {
+////        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
+////            String id = networkPartition.getId();
+////            if (!networkPartitionLbHolders.containsKey(id)) {
+////                NetworkPartitionLbHolder networkPartitionLbHolder =
+////                        new NetworkPartitionLbHolder(id);
+////                addNetworkPartitionLbHolder(networkPartitionLbHolder);
+////                
RegistryManager.getInstance().persistNetworkPartitionIbHolder(networkPartitionLbHolder);
+////            }
+//
+////        }
+////    }
+//
+////    public void undeployNetworkPartitions(DeploymentPolicy depPolicy) {
+////        for (NetworkPartition networkPartition : 
depPolicy.getApplicationLevelNetworkPartitions()) {
+////            String id = networkPartition.getId();
+////            if (networkPartitionLbHolders.containsKey(id)) {
+////                NetworkPartitionLbHolder netPartCtx = 
this.getNetworkPartitionLbHolder(id);
+////                // remove from information model
+////                this.removeNetworkPartitionLbHolder(netPartCtx);
+////                //remove from the registry
+////                
RegistryManager.getInstance().removeNetworkPartition(this.getNetworkPartitionLbHolder(id).getNetworkPartitionId());
+////            } else {
+////                String errMsg = "Network partition context not found for 
policy " + depPolicy;
+////                log.error(errMsg);
+////                throw new AutoScalerException(errMsg);
+////            }
+////
+////        }
+////    }
+////
+////    private void removeNetworkPartitionLbHolder(NetworkPartitionLbHolder 
nwPartLbHolder) {
+////        
networkPartitionLbHolders.remove(nwPartLbHolder.getNetworkPartitionId());
+////    }
+////
+////    public void addNetworkPartitionLbHolder(NetworkPartitionLbHolder 
nwPartLbHolder) {
+////        
networkPartitionLbHolders.put(nwPartLbHolder.getNetworkPartitionId(), 
nwPartLbHolder);
+////    }
+//
+//}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
new file mode 100644
index 0000000..a771445
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ApplicationLevelNetworkPartition.java
@@ -0,0 +1,76 @@
+/*
+* 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.cloud.controller.stub.deployment.partition.Partition;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+* The model class for NetworkPartition definition.
+*/
+public class ApplicationLevelNetworkPartition implements Serializable{
+
+    private static final long serialVersionUID = -8043298009352097370L;
+    private String id;
+    private boolean activeByDefault;
+    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 boolean isActiveByDefault() {
+        return activeByDefault;
+    }
+
+    public void setActiveByDefault(boolean activeByDefault) {
+        this.activeByDefault = activeByDefault;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/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
new file mode 100644
index 0000000..f11956b
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/ChildLevelNetworkPartition.java
@@ -0,0 +1,88 @@
+/*
+* 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.cloud.controller.stub.deployment.partition.Partition;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+* The model class for NetworkPartition definition.
+*/
+public class ChildLevelNetworkPartition implements Serializable {
+
+    private static final long serialVersionUID = -8043298009352097370L;
+    private String id;
+    private String partitionAlgo;
+    private Partition[] partitions;
+
+    /**
+     * 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;
+    }
+
+    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;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/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
new file mode 100644
index 0000000..e426688
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/partition/network/NetworkPartition.java
@@ -0,0 +1,44 @@
+/*
+* 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.
+*/
+public abstract class NetworkPartition implements Serializable {
+
+    private static final long serialVersionUID = -8043298009352097370L;
+    private String id;
+
+    /**
+     * 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;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
deleted file mode 100644
index f0a546e..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/PolicyManager.java
+++ /dev/null
@@ -1,289 +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.policy;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
-import org.apache.stratos.autoscaler.exception.AutoScalerException;
-import 
org.apache.stratos.autoscaler.exception.partition.InvalidPartitionException;
-import org.apache.stratos.autoscaler.exception.policy.InvalidPolicyException;
-//import org.apache.stratos.autoscaler.partition.PartitionManager;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
-import org.apache.stratos.autoscaler.registry.RegistryManager;
-import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
-
-/**
- * Manager class for the purpose of managing Autoscale/Deployment policy 
definitions.
- */
-public class PolicyManager {
-
-    private static final Log log = LogFactory.getLog(PolicyManager.class);
-
-    private static Map<String, AutoscalePolicy> autoscalePolicyListMap = new 
HashMap<String, AutoscalePolicy>();
-
-    private static Map<String, DeploymentPolicy> deploymentPolicyListMap = new 
HashMap<String, DeploymentPolicy>();
-    
-    /* An instance of a PolicyManager is created when the class is loaded. 
-     * Since the class is loaded only once, it is guaranteed that an object of 
-     * PolicyManager is created only once. Hence it is singleton.
-     */
-    
-    private static class InstanceHolder {
-        private static final PolicyManager INSTANCE = new PolicyManager(); 
-    }
-
-    public static PolicyManager getInstance() {
-        return InstanceHolder.INSTANCE;
-     }
-    
-    private PolicyManager() {
-    }
-
-    // Add the policy to information model and persist.
-    public boolean deployAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {
-        if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("Autoscaling policy id cannot be 
empty");
-        }
-        this.addASPolicyToInformationModel(policy);
-        RegistryManager.getInstance().persistAutoscalerPolicy(policy);
-        if (log.isInfoEnabled()) {
-            log.info(String.format("Autoscaling policy is deployed 
successfully: [id] %s", policy.getId()));
-        }
-        return true;
-    }
-
-    public boolean updateAutoscalePolicy(AutoscalePolicy policy) throws 
InvalidPolicyException {
-        if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("Autoscaling policy id cannot be 
empty");
-        }
-        this.updateASPolicyInInformationModel(policy);
-        RegistryManager.getInstance().persistAutoscalerPolicy(policy);
-        if (log.isInfoEnabled()) {
-            log.info(String.format("Autoscaling policy is updated 
successfully: [id] %s", policy.getId()));
-        }
-        return true;
-    }
-
-    // Add the deployment policy to information model and persist.
-    public boolean deployDeploymentPolicy(DeploymentPolicy policy) throws 
InvalidPolicyException {
-        if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("Deploying policy id cannot be 
empty");
-        }
-        try {
-            if(log.isInfoEnabled()) {
-                log.info(String.format("Deploying deployment policy: [id] %s", 
policy.getId()));
-            }
-            fillPartitions(policy);
-        } catch (InvalidPartitionException e) {
-               log.error(e);
-            throw new InvalidPolicyException(String.format("Deployment policy 
is invalid: [id] %s", policy.getId()), e);
-        }
-
-        addDeploymentPolicyToInformationModel(policy);
-        RegistryManager.getInstance().persistDeploymentPolicy(policy);
-
-        if (log.isInfoEnabled()) {
-            log.info(String.format("Deployment policy is deployed 
successfully: [id] %s", policy.getId()));
-        }
-        return true;
-    }
-
-    public boolean updateDeploymentPolicy(DeploymentPolicy policy) throws 
InvalidPolicyException {
-        if(StringUtils.isEmpty(policy.getId())){
-            throw new AutoScalerException("Deploying policy id cannot be 
empty");
-        }
-        try {
-            if(log.isInfoEnabled()) {
-                log.info(String.format("Updating deployment policy: [id] %s", 
policy.getId()));
-            }
-            fillPartitions(policy);
-        } catch (InvalidPartitionException e) {
-            log.error(e);
-            throw new InvalidPolicyException(String.format("Deployment policy 
is invalid: [id] %s", policy.getId()), e);
-        }
-
-        updateDeploymentPolicyToInformationModel(policy);
-        RegistryManager.getInstance().persistDeploymentPolicy(policy);
-
-        if (log.isInfoEnabled()) {
-            log.info(String.format("Deployment policy is updated successfully: 
[id] %s", policy.getId()));
-        }
-        return true;
-    }
-
-    private void fillPartitions(DeploymentPolicy deploymentPolicy) throws 
InvalidPartitionException {
-        //TODO fill partition by extracting the partitions from policy
-//        PartitionManager partitionMgr = PartitionManager.getInstance();
-//        for (Partition partition : deploymentPolicy.getAllPartitions()) {
-//            String partitionId = partition.getId();
-//            if ((partitionId == null) || 
(!partitionMgr.partitionExist(partitionId))) {
-//                String msg = "Could not find partition: [id] " + partitionId 
+ ". " +
-//                        "Please deploy the partitions before deploying the 
deployment policies.";
-//                throw new InvalidPartitionException(msg);
-//            }
-//
-//            fillPartition(partition, 
PartitionManager.getInstance().getPartitionById(partitionId));
-//        }
-    }
-
-    private static void fillPartition(Partition destPartition, Partition 
srcPartition) {
-        if(srcPartition.getProvider() == null)         
-            throw new RuntimeException("Provider is not set in the deployed 
partition");
-
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("Setting provider for partition: [id] %s 
[provider] %s", destPartition.getId(), srcPartition.getProvider()));
-        }
-        destPartition.setProvider(srcPartition.getProvider());
-
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("Setting properties for partition: [id] %s 
[properties] %s", destPartition.getId(), srcPartition.getProperties()));
-        }
-        destPartition.setProperties(srcPartition.getProperties());
-    }
-
-    public void addASPolicyToInformationModel(AutoscalePolicy asPolicy) throws 
InvalidPolicyException {
-        if (!autoscalePolicyListMap.containsKey(asPolicy.getId())) {
-            if (log.isDebugEnabled()) {
-                log.debug("Adding autoscaling policy: " + asPolicy.getId());
-            }
-            autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
-        } else {
-               String errMsg = "Specified autoscaling policy [" + 
asPolicy.getId() + "] already exists";
-               log.error(errMsg);
-            throw new InvalidPolicyException(errMsg);
-        }
-    }
-
-    public void updateASPolicyInInformationModel(AutoscalePolicy asPolicy) 
throws InvalidPolicyException {
-        if (autoscalePolicyListMap.containsKey(asPolicy.getId())) {
-            if (log.isDebugEnabled()) {
-                log.debug("Updating autoscaling policy: " + asPolicy.getId());
-            }
-            autoscalePolicyListMap.put(asPolicy.getId(), asPolicy);
-        }
-    }
-
-    /**
-     * Removes the specified policy
-     *
-     * @param policy
-     * @throws InvalidPolicyException
-     */
-    public void undeployAutoscalePolicy(String policy) throws 
InvalidPolicyException {
-        if (autoscalePolicyListMap.containsKey(policy)) {
-            if (log.isDebugEnabled()) {
-                log.debug("Removing policy :" + policy);
-            }
-            autoscalePolicyListMap.remove(policy);
-            
RegistryManager.getInstance().removeAutoscalerPolicy(this.getAutoscalePolicy(policy));
-        } else {
-            throw new InvalidPolicyException("No such policy [" + policy + "] 
exists");
-        }
-    }
-
-    /**
-     * Returns an array of the Autoscale policies contained in this manager.
-     *
-     * @return
-     */
-    public AutoscalePolicy[] getAutoscalePolicyList() {        
-        return autoscalePolicyListMap.values().toArray(new AutoscalePolicy[0]);
-    }
-
-    /**
-     * Returns the autoscale policy to which the specified id is mapped or null
-     *
-     * @param id
-     * @return
-     */
-    public AutoscalePolicy getAutoscalePolicy(String id) {
-        return autoscalePolicyListMap.get(id);
-    }
-
-    // Add the deployment policy to As in memmory information model. Does not 
persist.
-    public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) 
throws InvalidPolicyException {
-        if (!deploymentPolicyListMap.containsKey(policy.getId())) {
-            if (log.isDebugEnabled()) {
-                log.debug("Adding deployment policy: " + policy.getId());
-            }
-//            
PartitionManager.getInstance().deployNewNetworkPartitions(policy);
-            deploymentPolicyListMap.put(policy.getId(), policy);
-        } else {
-               String errMsg = "Specified deployment policy [" + 
policy.getId()+ "] already exists";
-               log.error(errMsg);
-            throw new InvalidPolicyException(errMsg);
-        }
-    }
-
-    public void updateDeploymentPolicyToInformationModel(DeploymentPolicy 
policy) throws InvalidPolicyException {
-        if (log.isDebugEnabled()) {
-            log.debug("Updating deployment policy: " + policy.getId());
-        }
-        deploymentPolicyListMap.put(policy.getId(), policy);
-    }
-
-    /**
-     * Removes the specified policy
-     *
-     * @param policy
-     * @throws InvalidPolicyException
-     */
-    public void undeployDeploymentPolicy(String policy) throws 
InvalidPolicyException {
-        if (deploymentPolicyListMap.containsKey(policy)) {
-            if (log.isDebugEnabled()) {
-                log.debug("Removing deployment policy :" + policy);
-            }
-            DeploymentPolicy depPolicy = this.getDeploymentPolicy(policy);
-            // undeploy network partitions this deployment policy.
-//            
PartitionManager.getInstance().undeployNetworkPartitions(depPolicy);
-            // undeploy the deployment policy.
-            RegistryManager.getInstance().removeDeploymentPolicy(depPolicy);
-            // remove from the infromation model.
-            deploymentPolicyListMap.remove(policy);
-        } else {
-            throw new InvalidPolicyException("No such policy [" + policy + "] 
exists");
-        }
-    }
-
-    /**
-     * Returns an array of the Deployment policies contained in this manager.
-     *
-     * @return
-     */
-    public DeploymentPolicy[] getDeploymentPolicyList() {        
-        return deploymentPolicyListMap.values().toArray(new 
DeploymentPolicy[0]);
-    }
-
-    /**
-     * Returns the deployment policy to which the specified id is mapped or 
null
-     *
-     * @param id
-     * @return
-     */
-    public DeploymentPolicy getDeploymentPolicy(String id) {
-        return deploymentPolicyListMap.get(id);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/AutoscalePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/AutoscalePolicy.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/AutoscalePolicy.java
deleted file mode 100644
index 9305191..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/AutoscalePolicy.java
+++ /dev/null
@@ -1,187 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for Autoscale-policy definition.
- */
-public class AutoscalePolicy implements Serializable {
-
-       private static final long serialVersionUID = 1754373171598089271L;
-       private LoadThresholds loadThresholds;
-       private String id;
-       private String displayName;
-       private String description;
-       private boolean isPublic;
-       private int tenantId;
-    private float instanceRoundingFactor;
-
-    /**
-     * Gets the value of the loadThresholds property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link LoadThresholds }
-     *     
-     */
-    public LoadThresholds getLoadThresholds() {
-        return loadThresholds;
-    }
-
-    /**
-     * Sets the value of the loadThresholds property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link LoadThresholds }
-     *     
-     */
-    public void setLoadThresholds(LoadThresholds value) {
-        this.loadThresholds = value;
-    }
-
-    /**
-     * 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 value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = value;
-    }
-
-    /**
-     * Gets the value of the displayName property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link String }
-     *     
-     */
-       public String getDisplayName() {
-               return displayName;
-       }
-
-        /**
-     * Sets the value of the displayName property.
-     * 
-     * @param displayName
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-       public void setDisplayName(String displayName) {
-               this.displayName = displayName;
-       }
-
-        /**
-     * 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;
-       }
-       
-        /**
-     * 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;
-       }
-    
-       @Override
-       public String toString() {
-               return "ASPolicy [id=" + id + ", displayName=" + displayName
-                               + ", description=" + description + ", 
isPublic=" + isPublic + "]";
-       }
-
-    public float getInstanceRoundingFactor() {
-        return instanceRoundingFactor;
-    }
-
-    public void setInstanceRoundingFactor(float instanceRoundingFactor) {
-        this.instanceRoundingFactor = instanceRoundingFactor;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
deleted file mode 100644
index 6130ab1..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/DeploymentPolicy.java
+++ /dev/null
@@ -1,189 +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.policy.model;
-
-import 
org.apache.stratos.autoscaler.partition.network.ApplicationLevelNetworkPartition;
-import 
org.apache.stratos.autoscaler.partition.network.ChildLevelNetworkPartition;
-import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
-
-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 id;
-    private String description;
-    private boolean isPublic;
-    private ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions;
-    private int tenantId;
-
-    /**
-     * 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 value
-     *     allowed object is
-     *     {@link String }
-     *     
-     */
-    public void setId(String value) {
-        this.id = 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(ApplicationLevelNetworkPartition[] 
applicationLevelNetworkPartitions) {
-        if(applicationLevelNetworkPartitions == null) {
-            this.applicationLevelNetworkPartitions = new 
ApplicationLevelNetworkPartition[0];
-        } else {
-            this.applicationLevelNetworkPartitions = 
Arrays.copyOf(applicationLevelNetworkPartitions, 
applicationLevelNetworkPartitions.length);
-        }
-    }
-    
-    public Partition[] getAllPartitions() {
-       ArrayList<Partition> partitionsList = new ArrayList<Partition>();
-       for (ApplicationLevelNetworkPartition networkPartition : 
this.getApplicationLevelNetworkPartitions()) {
-            Partition[] partitions = networkPartition.getPartitions();
-            if(partitions != null) {
-               partitionsList.addAll(Arrays.asList(partitions));
-            }
-        }
-        return partitionsList.toArray(new Partition[partitionsList.size()]);
-    }
-        
-    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 ApplicationLevelNetworkPartition[] 
getApplicationLevelNetworkPartitions() {
-        
-        return this.applicationLevelNetworkPartitions;
-    }
-    
-    public ApplicationLevelNetworkPartition 
getApplicationLevelNetworkPartition(String partitionGrpId){
-       for(ApplicationLevelNetworkPartition parGrp : 
this.getApplicationLevelNetworkPartitions()){
-               if(parGrp.getId().equals(partitionGrpId))
-                       return parGrp;
-               
-       }
-       return null;
-    }
-    
-    public String toString() {
-        return "Deployment Policy [id]" + this.id + " Description " +  
this.description 
-                       + " isPublic " +  this.isPublic 
-                       +" [partitions] " + 
Arrays.toString(this.getAllPartitions());
-    }
-
-    public ChildLevelNetworkPartition getChildLevelNetworkPartition(String 
networkPartitionId) {
-        //TODO create a map of child level network partition context and 
return correct one
-        return null;
-    }
-
-    public ChildLevelNetworkPartition[] getChildLevelNetworkPartitions() {
-        //TODO create a map of child level network partition context and 
return correct one
-        return new ChildLevelNetworkPartition[0];
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverage.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverage.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverage.java
deleted file mode 100644
index 8b8b5b9..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverage.java
+++ /dev/null
@@ -1,114 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for LoadAverage definition.
- */
-public class LoadAverage implements Serializable{
-
-       private static final long serialVersionUID = -2109860338694123343L;
-       private float average = 0.0f;
-    private float secondDerivative =  0.0f;
-    private float gradient =  0.0f;
-    private float scaleDownMarginOfGradient  =  0.0f;
-    private float scaleDownMarginOfSecondDerivative =  0.0f;
-
-    /**
-     * Gets the value of the average property.   
-     */
-    public float getAverage() {
-        return average;
-    }
-
-    /**
-     * Sets the value of the average property.   
-     */
-    public void setAverage(float value) {
-        this.average = value;
-    }
-
-    /**
-     * Gets the value of the second-derivative property. 
-     */
-    public float getSecondDerivative() {
-        return secondDerivative;
-    }
-
-    /**
-     * Sets the value of the second-derivative property.   
-     */
-    public void setSecondDerivative(float value) {
-        this.secondDerivative = value;
-    }
-
-    /**
-     * Gets the value of the gradient property. 
-     */
-    public float getGradient() {
-        return gradient;
-    }
-
-    /**
-     * Sets the value of the gradient property.
-     *     
-     */
-    public void setGradient(float value) {
-        this.gradient = value;
-    }
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfGradient property.
-     */
-    public float getScaleDownMarginOfGradient() {
-        return scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfGradient property.
-     *
-     */
-    public void setScaleDownMarginOfGradient(float scaleDownMarginOfGradient) {
-        this.scaleDownMarginOfGradient = scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     */
-    public float getScaleDownMarginOfSecondDerivative() {
-        return scaleDownMarginOfSecondDerivative;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     *
-     */
-    public void setScaleDownMarginOfSecondDerivative(float 
scaleDownMarginOfSecondDerivative) {
-        this.scaleDownMarginOfSecondDerivative = 
scaleDownMarginOfSecondDerivative;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("[average] %f [second-derivative] %f [gradient] 
%f [scale-down-margin-of-gradient] %f [scale-down-margin-of-second-derivative] 
%f",
-                getAverage(), getSecondDerivative(), getGradient(), 
getScaleDownMarginOfGradient(), getScaleDownMarginOfSecondDerivative());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverageThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverageThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverageThresholds.java
deleted file mode 100644
index 81365e6..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadAverageThresholds.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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for LoadAverage definition.
- */
-public class LoadAverageThresholds implements Serializable{
-
-       private static final long serialVersionUID = -2109860338694123343L;
-       private float upperLimit = 80.0F;
-       private float lowerLimit = 20.0F;
-       
-       public float getUpperLimit() {
-               return upperLimit;
-       }
-       public void setUpperLimit(float upperLimit) {
-               this.upperLimit = upperLimit;
-       }
-       public float getLowerLimit() {
-               return lowerLimit;
-       }
-       public void setLowerLimit(float lowerLimit) {
-               this.lowerLimit = lowerLimit;
-       }
-       
-       @Override
-       public String toString() {
-               return "LoadAverage [upperLimit=" + upperLimit + ", lowerLimit="
-                               + lowerLimit + "]";
-       }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadThresholds.java
deleted file mode 100644
index 22e00a6..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/LoadThresholds.java
+++ /dev/null
@@ -1,106 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for LoadThresholds definition.
- */
-public class LoadThresholds implements Serializable{
-
-       private static final long serialVersionUID = -8148571245537655867L;
-       private RequestsInFlightThresholds requestsInFlight;
-       private MemoryConsumptionThresholds memoryConsumption;
-       private LoadAverageThresholds loadAverage;
-
-    /**
-     * Gets the value of the requestsInFlight property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link RequestsInFlightThresholds }
-     *     
-     */
-    public RequestsInFlightThresholds getRequestsInFlight() {
-        return requestsInFlight;
-    }
-
-    /**
-     * Sets the value of the requestsInFlight property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link RequestsInFlightThresholds }
-     *     
-     */
-    public void setRequestsInFlight(RequestsInFlightThresholds value) {
-        this.requestsInFlight = value;
-    }
-
-    /**
-     * Gets the value of the memoryConsumption property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link MemoryConsumptionThresholds }
-     *     
-     */
-    public MemoryConsumptionThresholds getMemoryConsumption() {
-        return memoryConsumption;
-    }
-
-    /**
-     * Sets the value of the memoryConsumption property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link MemoryConsumptionThresholds }
-     *     
-     */
-    public void setMemoryConsumption(MemoryConsumptionThresholds value) {
-        this.memoryConsumption = value;
-    }
-
-    /**
-     * Gets the value of the loadAverage property.
-     * 
-     * @return
-     *     possible object is
-     *     {@link LoadAverageThresholds }
-     *     
-     */
-    public LoadAverageThresholds getLoadAverage() {
-        return loadAverage;
-    }
-
-    /**
-     * Sets the value of the loadAverage property.
-     * 
-     * @param value
-     *     allowed object is
-     *     {@link LoadAverageThresholds }
-     *     
-     */
-    public void setLoadAverage(LoadAverageThresholds value) {
-        this.loadAverage = value;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumption.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumption.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumption.java
deleted file mode 100644
index a93f909..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumption.java
+++ /dev/null
@@ -1,116 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for MemoryConsumption definition.
- */
-public class MemoryConsumption implements Serializable {
-
-       private static final long serialVersionUID = 5755634390464664663L;
-       private float average =  0.0f;
-    private float secondDerivative =  0.0f;
-    private float gradient =  0.0f;
-    private float scaleDownMarginOfGradient =  0.0f;
-    private float scaleDownMarginOfSecondDerivative =  0.0f;
-
-
-    /**
-     * Gets the value of the average property.   
-     */
-    public float getAverage() {
-        return average;
-    }
-
-    /**
-     * Sets the value of the average property.   
-     */
-    public void setAverage(float value) {
-        this.average = value;
-    }
-
-    /**
-     * Gets the value of the second-derivative property. 
-     */
-    public float getSecondDerivative() {
-        return secondDerivative;
-    }
-
-    /**
-     * Sets the value of the second-derivative property.   
-     */
-    public void setSecondDerivative(float value) {
-        this.secondDerivative = value;
-    }
-
-    /**
-     * Gets the value of the gradient property. 
-     */
-    public float getGradient() {
-        return gradient;
-    }
-
-    /**
-     * Sets the value of the gradient property.
-     *     
-     */
-    public void setGradient(float value) {
-        this.gradient = value;
-    }
-
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfGradient property.
-     */
-    public float getScaleDownMarginOfGradient() {
-        return scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfGradient property.
-     *
-     */
-    public void setScaleDownMarginOfGradient(float scaleDownMarginOfGradient) {
-        this.scaleDownMarginOfGradient = scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     */
-    public float getScaleDownMarginOfSecondDerivative() {
-        return scaleDownMarginOfSecondDerivative;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     *
-     */
-    public void setScaleDownMarginOfSecondDerivative(float 
scaleDownMarginOfSecondDerivative) {
-        this.scaleDownMarginOfSecondDerivative = 
scaleDownMarginOfSecondDerivative;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("[average] %f [second-derivative] %f [gradient] 
%f [scale-down-margin-of-gradient] %f [scale-down-margin-of-second-derivative] 
%f",
-                getAverage(), getSecondDerivative(), getGradient(), 
getScaleDownMarginOfGradient(), getScaleDownMarginOfSecondDerivative());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumptionThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumptionThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumptionThresholds.java
deleted file mode 100644
index 5d637ba..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/MemoryConsumptionThresholds.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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for MemoryConsumption definition.
- */
-public class MemoryConsumptionThresholds implements Serializable {
-
-       private static final long serialVersionUID = 5755634390464664663L;
-       private float upperLimit = 80.0F;
-       private float lowerLimit = 20.0F;
-       
-       public float getUpperLimit() {
-               return upperLimit;
-       }
-       public void setUpperLimit(float upperLimit) {
-               this.upperLimit = upperLimit;
-       }
-       public float getLowerLimit() {
-               return lowerLimit;
-       }
-       public void setLowerLimit(float lowerLimit) {
-               this.lowerLimit = lowerLimit;
-       }
-       
-       @Override
-       public String toString() {
-               return "MemoryConsumption [upperLimit=" + upperLimit + ", 
lowerLimit="
-                               + lowerLimit + "]";
-       }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlight.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlight.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlight.java
deleted file mode 100644
index b56e305..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlight.java
+++ /dev/null
@@ -1,109 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for RequestsInFlight definition.
- */
-public class RequestsInFlight implements Serializable{
-
-       private static final long serialVersionUID = 8113964958155294290L;
-       private float average;
-    private float secondDerivative;
-    private float gradient;
-    private float scaleDownMarginOfGradient;
-    private float scaleDownMarginOfSecondDerivative;
-
-    /**
-     * Gets the value of the average property.   
-     */
-    public float getAverage() {
-        return average;
-    }
-
-    /**
-     * Sets the value of the average property.   
-     */
-    public void setAverage(float value) {
-        this.average = value;
-    }
-
-    /**
-     * Gets the value of the second-derivative property. 
-     */
-    public float getSecondDerivative() {
-        return secondDerivative;
-    }
-
-    /**
-     * Sets the value of the second-derivative property.   
-     */
-    public void setSecondDerivative(float value) {
-        this.secondDerivative = value;
-    }
-
-    /**
-     * Gets the value of the gradient property. 
-     */
-    public float getGradient() {
-        return gradient;
-    }
-
-    /**
-     * Sets the value of the gradient property.
-     *     
-     */
-    public void setGradient(float value) {
-        this.gradient = value;
-    }
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfGradient property.
-     */
-    public float getScaleDownMarginOfGradient() {
-        return scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfGradient property.
-     *
-     */
-    public void setScaleDownMarginOfGradient(float scaleDownMarginOfGradient) {
-        this.scaleDownMarginOfGradient = scaleDownMarginOfGradient;
-    }
-
-    /**
-     * Gets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     */
-    public float getScaleDownMarginOfSecondDerivative() {
-        return scaleDownMarginOfSecondDerivative;
-    }
-
-    /**
-     * Sets the value of the scaleDownSlowerMarginOfSecondDerivative property.
-     *
-     */
-    public void setScaleDownMarginOfSecondDerivative(float 
scaleDownMarginOfSecondDerivative) {
-        this.scaleDownMarginOfSecondDerivative = 
scaleDownMarginOfSecondDerivative;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlightThresholds.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlightThresholds.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlightThresholds.java
deleted file mode 100644
index 19b4eaa..0000000
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/policy/model/RequestsInFlightThresholds.java
+++ /dev/null
@@ -1,53 +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.policy.model;
-
-import java.io.Serializable;
-
-/**
- * The model class for RequestsInFlight definition.
- */
-public class RequestsInFlightThresholds implements Serializable{
-
-       private static final long serialVersionUID = 8113964958155294290L;
-       private float upperLimit = 80.0F;
-       private float lowerLimit = 20.0F;
-       
-       public float getLowerLimit() {
-               return lowerLimit;
-       }
-       public void setLowerLimit(float lowerLimit) {
-               this.lowerLimit = lowerLimit;
-       }
-       public float getUpperLimit() {
-               return upperLimit;
-       }
-       public void setUpperLimit(float upperLimit) {
-               this.upperLimit = upperLimit;
-       }
-       @Override
-       public String toString() {
-               return "RequestsInFlight [upperLimit=" + upperLimit + ", 
lowerLimit="
-                               + lowerLimit + "]";
-       }
-       
-       
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/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 9dd7e85..63c5fcc 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
@@ -27,8 +27,8 @@ import org.apache.commons.logging.LogFactory;
 //import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.exception.AutoScalerException;
 import org.apache.stratos.autoscaler.pojo.ServiceGroup;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
-import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
+import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
+import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.autoscaler.util.AutoScalerConstants;
 import org.apache.stratos.autoscaler.util.Deserializer;
 import org.apache.stratos.autoscaler.util.Serializer;

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/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 9eac1da..7c7f70a 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
@@ -21,7 +21,7 @@ package org.apache.stratos.autoscaler.rule;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-//import org.apache.stratos.autoscaler.partition.PartitionManager;
+//import 
org.apache.stratos.autoscaler.pojo.policy.deployment.partition.PartitionManager;
 //import 
org.apache.stratos.autoscaler.context.partition.ClusterLevelPartitionContext;
 //import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.common.constants.StratosConstants;

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
index 15ca0e1..e9244f4 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java
@@ -36,7 +36,7 @@ import 
org.apache.stratos.autoscaler.exception.cartridge.TerminationException;
 import org.apache.stratos.autoscaler.monitor.cluster.AbstractClusterMonitor;
 import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
 import org.apache.stratos.autoscaler.monitor.cluster.VMServiceClusterMonitor;
-//import org.apache.stratos.autoscaler.partition.PartitionManager;
+//import 
org.apache.stratos.autoscaler.pojo.policy.deployment.partition.PartitionManager;
 import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
 import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.messaging.domain.topology.Cluster;

http://git-wip-us.apache.org/repos/asf/stratos/blob/531517a1/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl
 
b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl
index ae940b7..f24c410 100644
--- 
a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl
+++ 
b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl
@@ -24,13 +24,13 @@ import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.autoscaler.context.AutoscalerContext;
 import org.apache.stratos.autoscaler.ClusterContext;
 import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.policy.PolicyManager;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
+import org.apache.stratos.autoscaler.pojo.policy.PolicyManager;
+import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.messaging.domain.policy.Partition;
 import org.apache.stratos.messaging.domain.policy.NetworkPartition;
 import org.apache.stratos.messaging.domain.policy.DeploymentPolicy;
-import org.apache.stratos.autoscaler.policy.model.RequestsInFlight;
-import org.apache.stratos.autoscaler.policy.model.LoadThresholds;
+import org.apache.stratos.autoscaler.pojo.policy.autoscale.RequestsInFlight;
+import org.apache.stratos.autoscaler.pojo.policy.autoscale.LoadThresholds;
 import org.apache.stratos.autoscaler.client.CloudControllerClient;
 import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
 import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
@@ -39,7 +39,7 @@ import 
org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.commons.logging.Log;
 
-global org.apache.stratos.autoscaler.policy.PolicyManager $manager;
+global org.apache.stratos.autoscaler.pojo.policy.PolicyManager $manager;
 global org.apache.stratos.autoscaler.context.AutoscalerContext $context;
 global org.apache.commons.logging.Log log;
 global org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator $evaluator;

Reply via email to