You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/12/17 10:00:52 UTC

[1/5] stratos git commit: Removing root element from JSON response objects in rest api

Repository: stratos
Updated Branches:
  refs/heads/4.1.0-test d22d02572 -> 268db7b63


Removing root element from JSON response objects in rest api


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

Branch: refs/heads/4.1.0-test
Commit: 9f571fb151edbe94ca6d3fa266d94669ee3bde6f
Parents: d22d025
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 17 14:19:50 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Dec 17 14:19:50 2014 +0530

----------------------------------------------------------------------
 .../src/main/webapp/api/WEB-INF/cxf-servlet.xml                     | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9f571fb1/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml b/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
index 7543f7c..a487594 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
+++ b/components/org.apache.stratos.rest.endpoint/src/main/webapp/api/WEB-INF/cxf-servlet.xml
@@ -101,6 +101,7 @@
     <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
         <property name="supportUnwrapped" value="true"/>
         <property name="serializeAsArray" value="true"/>
+        <property name="dropRootElement" value="true" />
         <property name="dropCollectionWrapperElement" value="true"/>
         <property name="arrayKeys">
             <list>


[2/5] stratos git commit: Introducing new rest api method GET /applications/{applicationId}/deploymentPolicy

Posted by im...@apache.org.
Introducing new rest api method GET /applications/{applicationId}/deploymentPolicy


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

Branch: refs/heads/4.1.0-test
Commit: 38eed54ea6262dd1f8eac4512e9106c5840d1351
Parents: 9f571fb
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 17 14:29:16 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Dec 17 14:29:16 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   |   2 +-
 .../autoscaler/pojo/policy/PolicyManager.java   |  41 +----
 .../rest/endpoint/api/StratosApiV41.java        |  14 ++
 .../rest/endpoint/api/StratosApiV41Utils.java   |  45 ++---
 .../endpoint/util/converter/PojoConverter.java  | 178 ++++++++++++++++---
 5 files changed, 196 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/38eed54e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index b0e34cb..f5ac2e8 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -203,7 +203,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
         ApplicationBuilder.handleApplicationCreated(application, applicationParser.getApplicationClusterContexts());
 
         try {
-            String policyId = PolicyManager.getInstance().deployDeploymentPolicy(policy);
+            PolicyManager.getInstance().addDeploymentPolicy(policy);
         } catch (InvalidPolicyException e) {
             String message = "Could not deploy application: [application-id] " + policy.getApplicationId();
             log.error(message, e);

http://git-wip-us.apache.org/repos/asf/stratos/blob/38eed54e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
index f4ad47f..d4ab989 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java
@@ -70,7 +70,7 @@ public class PolicyManager {
         this.addASPolicyToInformationModel(policy);
         RegistryManager.getInstance().persistAutoscalerPolicy(policy);
         if (log.isInfoEnabled()) {
-            log.info(String.format("Autoscaling policy is deployed successfully: [id] %s", policy.getId()));
+            log.info(String.format("Autoscaling policy is added successfully: [id] %s", policy.getId()));
         }
         return true;
     }
@@ -88,37 +88,14 @@ public class PolicyManager {
     }
 
     // Add the deployment policy to information model and persist.
-    public String deployDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException {
-        String policyId = addDeploymentPolicyToInformationModel(policy);
+    public void addDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException {
+        addDeploymentPolicyToInformationModel(policy);
         RegistryManager.getInstance().persistDeploymentPolicy(policy);
 
         if (log.isInfoEnabled()) {
-            log.info(String.format("Deployment policy is deployed successfully: [id] %s", policyId));
+            log.info(String.format("Deployment policy is added successfully: [application-id] %s",
+                    policy.getApplicationId()));
         }
-        return policyId;
-    }
-
-    public boolean updateDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException {
-        if(StringUtils.isEmpty(policy.getApplicationId())){
-            throw new AutoScalerException("Deploying policy id cannot be empty");
-        }
-        try {
-            if(log.isInfoEnabled()) {
-                log.info(String.format("Updating deployment policy: [id] %s", policy.getApplicationId()));
-            }
-            fillPartitions(policy);
-        } catch (InvalidPartitionException e) {
-            log.error(e);
-            throw new InvalidPolicyException(String.format("Deployment policy is invalid: [id] %s", policy.getApplicationId()), e);
-        }
-
-        updateDeploymentPolicyToInformationModel(policy);
-        RegistryManager.getInstance().persistDeploymentPolicy(policy);
-
-        if (log.isInfoEnabled()) {
-            log.info(String.format("Deployment policy is updated successfully: [id] %s", policy.getApplicationId()));
-        }
-        return true;
     }
 
     private void fillPartitions(DeploymentPolicy deploymentPolicy) throws InvalidPartitionException {
@@ -211,11 +188,9 @@ public class PolicyManager {
     }
 
     // Add the deployment policy to As in memmory information model. Does not persist.
-    public String addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
+    public void addDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {
         if (StringUtils.isEmpty(policy.getApplicationId())) {
-            // id = application id + random string
-            String id = policy.getApplicationId() + UUID.randomUUID().getLeastSignificantBits();
-            policy.setApplicationId(id);
+            throw new RuntimeException("Application id is not defined in deployment policy");
         }
         if (!deploymentPolicyListMap.containsKey(policy.getApplicationId())) {
             if (log.isDebugEnabled()) {
@@ -227,8 +202,6 @@ public class PolicyManager {
         	log.error(errMsg);
             throw new InvalidPolicyException(errMsg);
         }
-        
-        return policy.getApplicationId();
     }
 
     public void updateDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException {

http://git-wip-us.apache.org/repos/asf/stratos/blob/38eed54e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 8c12dd8..a336ea1 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -404,6 +404,20 @@ public class StratosApiV41 extends AbstractApi {
         StratosApiV41Utils.deployApplication(applicationId, deploymentPolicy);
         return Response.accepted().build();
     }
+
+    @GET
+    @Path("/applications/{applicationId}/deploymentPolicy")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Response getApplicationDeploymentPolicy(@PathParam("applicationId") String applicationId)
+            throws RestAPIException {
+        DeploymentPolicy deploymentPolicy = StratosApiV41Utils.getDeploymentPolicy(applicationId);
+        if(deploymentPolicy == null) {
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+        return Response.ok(deploymentPolicy).build();
+    }
     
     /**
      * Undeploy application.

http://git-wip-us.apache.org/repos/asf/stratos/blob/38eed54e/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 db099b8..66c5af4 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
@@ -509,10 +509,8 @@ public class StratosApiV41Utils {
     }
 
     private static AutoscalerServiceClient getAutoscalerServiceClient() throws RestAPIException {
-
         try {
             return AutoscalerServiceClient.getServiceClient();
-
         } catch (AxisFault axisFault) {
             String errorMsg = "Error while getting AutoscalerServiceClient instance to connect to the "
                     + "Autoscaler. Cause: " + axisFault.getMessage();
@@ -607,31 +605,18 @@ public class StratosApiV41Utils {
         return PojoConverter.populateAutoscalePojo(autoscalePolicy);
     }
 
-    // Util methods for Deployment policies
     public static org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy
-    getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
-
-        DeploymentPolicy deploymentPolicy = null;
-        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                deploymentPolicy = autoscalerServiceClient.getDeploymentPolicy(deploymentPolicyId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting deployment policy with id " +
-                        deploymentPolicyId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
+        getDeploymentPolicy(String applicationId) throws RestAPIException {
 
-        if (deploymentPolicy == null) {
-            String errorMsg = "Cannot find a matching deployment policy for [id] " + deploymentPolicyId;
-            log.error(errorMsg);
-            throw new RestAPIException(errorMsg);
+        try {
+            AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+            DeploymentPolicy deploymentPolicy = autoscalerServiceClient.getDeploymentPolicy(applicationId);
+            return PojoConverter.convertStubDeploymentPolicyToDeploymentPolicy(deploymentPolicy);
+        } catch (RemoteException e) {
+            String errorMsg = "Could not read deployment policy: [application-id] " + applicationId;
+            log.error(errorMsg, e);
+            throw new RestAPIException(errorMsg, e);
         }
-
-        return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
     }
 
     public static ApplicationLevelNetworkPartition[] getPartitionGroups(String deploymentPolicyId)
@@ -1060,10 +1045,14 @@ public class StratosApiV41Utils {
         try {
             List<ApplicationDefinition> applicationDefinitions = new ArrayList<ApplicationDefinition>();
             ApplicationContext[] applicationContexts = AutoscalerServiceClient.getServiceClient().getApplications();
-            for(ApplicationContext applicationContext : applicationContexts) {
-                ApplicationDefinition applicationDefinition =
-                        PojoConverter.convertApplicationContextToApplicationDefinition(applicationContext);
-                applicationDefinitions.add(applicationDefinition);
+            if(applicationContexts != null) {
+                for (ApplicationContext applicationContext : applicationContexts) {
+                    if(applicationContext != null) {
+                        ApplicationDefinition applicationDefinition =
+                                PojoConverter.convertApplicationContextToApplicationDefinition(applicationContext);
+                        applicationDefinitions.add(applicationDefinition);
+                    }
+                }
             }
             return applicationDefinitions;
         } catch (RemoteException e) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/38eed54e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
index f95636b..a13c26e 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
@@ -33,6 +33,7 @@ import org.apache.stratos.common.beans.GroupBean;
 import org.apache.stratos.common.beans.autoscaler.partition.ApplicationLevelNetworkPartition;
 import org.apache.stratos.common.beans.autoscaler.partition.Partition;
 import org.apache.stratos.common.beans.autoscaler.policy.autoscale.*;
+import org.apache.stratos.common.beans.autoscaler.policy.deployment.ApplicationPolicy;
 import org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.common.beans.cartridge.definition.*;
 import org.apache.stratos.common.beans.cartridge.definition.PropertyBean;
@@ -417,6 +418,151 @@ public class PojoConverter {
         return deploymentPolicy;
     }
 
+    public static DeploymentPolicy convertStubDeploymentPolicyToDeploymentPolicy(
+            org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy) {
+
+        DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
+
+        deploymentPolicy.setApplicationId(stubDeploymentPolicy.getApplicationId());
+        deploymentPolicy.setDescription(stubDeploymentPolicy.getDescription());
+        deploymentPolicy.setPublic(stubDeploymentPolicy.getIsPublic());
+        if (stubDeploymentPolicy.getApplicationLevelNetworkPartitions() != null) {
+            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
+                    networkPartitions = stubDeploymentPolicy.getApplicationLevelNetworkPartitions();
+            if(networkPartitions != null) {
+                deploymentPolicy.setApplicationPolicy(new ApplicationPolicy());
+                List<ApplicationLevelNetworkPartition> networkPartitionList = new ArrayList<ApplicationLevelNetworkPartition>();
+                for(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
+                        networkPartition : networkPartitions) {
+                    if(networkPartition != null) {
+                        networkPartitionList.add(convertStubNetworkPartitionToNetworkPartition(networkPartition));
+                    }
+                }
+                deploymentPolicy.getApplicationPolicy().setNetworkPartition(networkPartitionList);
+            }
+        }
+
+        if (stubDeploymentPolicy.getChildPolicies() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy> childPolicyList =
+                    new ArrayList<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy>();
+            for(org.apache.stratos.autoscaler.stub.deployment.policy.ChildPolicy stubChildDeploymentPolicy :
+                    stubDeploymentPolicy.getChildPolicies()) {
+                if(stubChildDeploymentPolicy != null) {
+                    childPolicyList.add(convertStubChildPolicyToChildPolicy(stubChildDeploymentPolicy));
+                }
+            }
+            deploymentPolicy.setChildPolicies(childPolicyList);
+        }
+        return deploymentPolicy;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy
+    convertStubChildPolicyToChildPolicy(ChildPolicy stubChildDeploymentPolicy) {
+        if(stubChildDeploymentPolicy == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy childPolicy = new
+                org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy();
+        childPolicy.setChildId(stubChildDeploymentPolicy.getId());
+        if(stubChildDeploymentPolicy.getChildLevelNetworkPartitions() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition> networkPartitionList
+                    = new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition
+                    stubChildLevelNetworkPartition : stubChildDeploymentPolicy.getChildLevelNetworkPartitions()) {
+                networkPartitionList.add(convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(stubChildLevelNetworkPartition));
+            }
+            childPolicy.setNetworkPartition(networkPartitionList);
+        }
+        return childPolicy;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition
+    convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(
+            ChildLevelNetworkPartition stubChildLevelNetworkPartition) {
+        if(stubChildLevelNetworkPartition == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition childLevelNetworkPartition =
+                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition();
+        childLevelNetworkPartition.setId(stubChildLevelNetworkPartition.getId());
+        childLevelNetworkPartition.setPartitionAlgo(stubChildLevelNetworkPartition.getPartitionAlgo());
+        if(stubChildLevelNetworkPartition.getChildLevelPartitions() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition> partitionList =
+                    new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition stubChildLevelPartition : stubChildLevelNetworkPartition.getChildLevelPartitions()) {
+                partitionList.add(convertStubChildLevelPartitionToChildLevelPartition(stubChildLevelPartition));
+            }
+            childLevelNetworkPartition.setPartitions(partitionList);
+        }
+        return childLevelNetworkPartition;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition
+    convertStubChildLevelPartitionToChildLevelPartition(ChildLevelPartition stubChildLevelPartition) {
+        if(stubChildLevelPartition == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition childLevelPartition =
+                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition();
+        childLevelPartition.setId(stubChildLevelPartition.getPartitionId());
+        childLevelPartition.setMax(stubChildLevelPartition.getMax());
+        return childLevelPartition;
+    }
+
+    private static ApplicationLevelNetworkPartition convertStubNetworkPartitionToNetworkPartition(
+            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition stubNetworkPartition) {
+        if(stubNetworkPartition == null) {
+            return null;
+        }
+
+        ApplicationLevelNetworkPartition networkPartition = new ApplicationLevelNetworkPartition();
+        networkPartition.setId(stubNetworkPartition.getId());
+        networkPartition.setActiveByDefault(stubNetworkPartition.getActiveByDefault());
+        if(stubNetworkPartition.getPartitions() != null) {
+            List<Partition> partitionList = new ArrayList<Partition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition :
+                    stubNetworkPartition.getPartitions()) {
+                if(stubPartition != null) {
+                    partitionList.add(convertStubPartitionToPartition(stubPartition));
+                }
+            }
+            networkPartition.setPartitions(partitionList);
+        }
+        return networkPartition;
+    }
+
+    private static Partition convertStubPartitionToPartition(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition) {
+        if(stubPartition == null) {
+            return null;
+        }
+        Partition partition = new Partition();
+        partition.setId(stubPartition.getId());
+        partition.setPublic(stubPartition.getIsPublic());
+        partition.setDescription(stubPartition.getDescription());
+        partition.setProvider(stubPartition.getProvider());
+        if(stubPartition.getProperties() != null) {
+            List<PropertyBean> propertyBeanList = new ArrayList<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 PropertyBean convertStubPropertyToPropertyBean(org.apache.stratos.autoscaler.stub.Property stubProperty) {
+        if(stubProperty == null) {
+            return null;
+        }
+
+        PropertyBean propertyBean = new PropertyBean();
+        propertyBean.setName(stubProperty.getName());
+        propertyBean.setValue(stubProperty.getValue());
+        return propertyBean;
+    }
+
     private static org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] convertToCCPartitionGroup(List<ApplicationLevelNetworkPartition> networkPartitionBeans) {
 
         org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
@@ -751,22 +897,14 @@ public class PojoConverter {
     public static DeploymentPolicy populateDeploymentPolicyPojo(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy
                                                                         deploymentPolicy) {
 
-        DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
         if (deploymentPolicy == null) {
-            return deploymentPolicyBean;
+            return null;
         }
 
+        DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
         deploymentPolicyBean.setDescription(deploymentPolicy.getDescription());
         deploymentPolicyBean.setPublic(deploymentPolicy.getIsPublic());
-//TODO populate the Network partition based on new policy structure
-//        if (deploymentPolicy.getApplicationLevelNetworkPartition() != null && deploymentPolicy.getApplicationLevelNetworkPartition().length > 0) {
-//            deploymentPolicyBean.setPartitionGroup(Arrays.asList(populatePartitionGroupPojos(deploymentPolicy.getApplicationLevelNetworkPartition())));
-//        }
-
-        /*if (deploymentPolicy.getAllPartitions() != null && deploymentPolicy.getAllPartitions().length > 0) {
-            deploymentPolicyBean.partition = Arrays.asList(populatePartitionPojos(deploymentPolicy.getAllPartitions()));
-        }*/
-
+        deploymentPolicyBean.setApplicationId(deploymentPolicy.getApplicationId());
         return deploymentPolicyBean;
     }
 
@@ -1051,7 +1189,7 @@ public class PojoConverter {
             // top level Groups
             if (applicationDefinition.getComponents().getGroups() != null) {
                 componentContext.setGroupContexts(
-                        convertGroupDefinitionsToGroupContexts(applicationDefinition.getComponents().getGroups()));
+                        convertGroupDefinitionsToStubGroupContexts(applicationDefinition.getComponents().getGroups()));
             }
             // top level dependency information
             if (applicationDefinition.getComponents().getDependencies() != null) {
@@ -1174,7 +1312,7 @@ public class PojoConverter {
         subscribableInfo.setMinMembers(subscribableInfoContext.getMinMembers());
         subscribableInfo.setMaxMembers(subscribableInfoContext.getMaxMembers());
         subscribableInfo.setPrivateRepo(subscribableInfoContext.getPrivateRepo());
-        subscribableInfo.setProperty(convertPropertiesToPropertyBeansList(subscribableInfoContext.getProperties()));
+        subscribableInfo.setProperty(convertStubPropertiesToPropertyBeanList(subscribableInfoContext.getProperties()));
         subscribableInfo.setRepoPassword(subscribableInfoContext.getRepoPassword());
         subscribableInfo.setRepoUsername(subscribableInfoContext.getRepoUsername());
         subscribableInfo.setRepoUrl(subscribableInfoContext.getRepoUrl());
@@ -1182,7 +1320,8 @@ public class PojoConverter {
     }
 
     private static List<org.apache.stratos.manager.composite.application.beans.PropertyBean>
-    convertPropertiesToPropertyBeansList(org.apache.stratos.autoscaler.stub.Properties properties) {
+        convertStubPropertiesToPropertyBeanList(org.apache.stratos.autoscaler.stub.Properties properties) {
+
         List<org.apache.stratos.manager.composite.application.beans.PropertyBean> propertyBeanList =
                 new ArrayList<org.apache.stratos.manager.composite.application.beans.PropertyBean>();
         if((properties != null) && (properties.getProperties() != null)) {
@@ -1225,16 +1364,15 @@ public class PojoConverter {
 		infoContext.setDeploymentPolicy(subscribableInfo.getDeploymentPolicy());
 		infoContext.setMaxMembers(subscribableInfo.getMaxMembers());
 		infoContext.setMinMembers(subscribableInfo.getMinMembers());
-		//infoContext.setPrivateRepo(subscribableInfo.getpr);
 		infoContext.setRepoPassword(subscribableInfo.getRepoPassword());
 		infoContext.setRepoUrl(subscribableInfo.getRepoUrl());
 		infoContext.setRepoUsername(subscribableInfo.getRepoUsername());
-		infoContext.setProperties(convertProperties(subscribableInfo.getProperty()));
+		infoContext.setProperties(convertPropertyBeansToStubProperties(subscribableInfo.getProperty()));
 		
 	    return infoContext;
     }
 
-	private static org.apache.stratos.autoscaler.stub.Properties convertProperties(
+	private static org.apache.stratos.autoscaler.stub.Properties convertPropertyBeansToStubProperties(
             List<org.apache.stratos.manager.composite.application.beans.PropertyBean> property) {
 		org.apache.stratos.autoscaler.stub.Properties prop = new org.apache.stratos.autoscaler.stub.Properties();
 		if (property != null) {
@@ -1269,7 +1407,7 @@ public class PojoConverter {
     }
 
     private static org.apache.stratos.autoscaler.stub.pojo.GroupContext[]
-    convertGroupDefinitionsToGroupContexts(List<GroupDefinition> groupDefinitions) {
+        convertGroupDefinitionsToStubGroupContexts(List<GroupDefinition> groupDefinitions) {
 
         GroupContext[] groupContexts = new GroupContext[groupDefinitions.size()];
         int i = 0;
@@ -1283,7 +1421,7 @@ public class PojoConverter {
            
             // Groups
             if (groupDefinition.getGroups() != null) {
-                groupContext.setGroupContexts(convertGroupDefinitionsToGroupContexts(groupDefinition.getGroups()));
+                groupContext.setGroupContexts(convertGroupDefinitionsToStubGroupContexts(groupDefinition.getGroups()));
             }
             
             groupContext.setCartridgeContexts(convertCartridgeDefinitionsToCartridgeContexts(groupDefinition.getCartridges()));
@@ -1350,8 +1488,6 @@ public class PojoConverter {
 	            instanceList.add(instance);
             }
 	    }
-	    
 	    return instanceList;
     }
-
 }


[3/5] stratos git commit: Renaming PojoConverter to ObjectConverter

Posted by im...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/268db7b6/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
deleted file mode 100644
index a13c26e..0000000
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
+++ /dev/null
@@ -1,1493 +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.rest.endpoint.util.converter;
-
-import org.apache.commons.lang.StringUtils;
-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.policy.ChildPolicy;
-import org.apache.stratos.autoscaler.stub.pojo.*;
-import org.apache.stratos.cloud.controller.stub.domain.*;
-import org.apache.stratos.cloud.controller.stub.domain.ServiceGroup;
-import org.apache.stratos.common.Properties;
-import org.apache.stratos.common.Property;
-import org.apache.stratos.common.beans.ApplicationBean;
-import org.apache.stratos.common.beans.GroupBean;
-import org.apache.stratos.common.beans.autoscaler.partition.ApplicationLevelNetworkPartition;
-import org.apache.stratos.common.beans.autoscaler.partition.Partition;
-import org.apache.stratos.common.beans.autoscaler.policy.autoscale.*;
-import org.apache.stratos.common.beans.autoscaler.policy.deployment.ApplicationPolicy;
-import org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy;
-import org.apache.stratos.common.beans.cartridge.definition.*;
-import org.apache.stratos.common.beans.cartridge.definition.PropertyBean;
-import org.apache.stratos.common.beans.kubernetes.KubernetesGroup;
-import org.apache.stratos.common.beans.kubernetes.KubernetesHost;
-import org.apache.stratos.common.beans.kubernetes.KubernetesMaster;
-import org.apache.stratos.common.beans.kubernetes.PortRange;
-import org.apache.stratos.common.beans.subscription.domain.SubscriptionDomainBean;
-import org.apache.stratos.common.beans.topology.Instance;
-import org.apache.stratos.common.beans.topology.Member;
-import org.apache.stratos.common.util.CommonUtil;
-import org.apache.stratos.manager.composite.application.beans.*;
-import org.apache.stratos.manager.deploy.service.Service;
-import org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
-import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
-import org.apache.stratos.manager.subscription.SubscriptionDomain;
-import org.apache.stratos.messaging.domain.applications.Application;
-import org.apache.stratos.messaging.domain.applications.Group;
-import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
-import org.apache.stratos.messaging.domain.instance.ClusterInstance;
-import org.apache.stratos.messaging.domain.instance.GroupInstance;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.List;
-
-public class PojoConverter {
-
-    public static CartridgeConfig populateCartridgeConfigPojo(CartridgeDefinitionBean cartridgeDefinitionBean) {
-
-        CartridgeConfig cartridgeConfig = new CartridgeConfig();
-
-	    cartridgeConfig.setType(cartridgeDefinitionBean.getType());
-	    cartridgeConfig.setHostName(cartridgeDefinitionBean.getHost());
-	    cartridgeConfig.setProvider(cartridgeDefinitionBean.getProvider());
-	    cartridgeConfig.setCategory(cartridgeDefinitionBean.getCategory());
-	    cartridgeConfig.setVersion(cartridgeDefinitionBean.getVersion());
-	    cartridgeConfig.setMultiTenant(cartridgeDefinitionBean.isMultiTenant());
-	    cartridgeConfig.setIsPublic(cartridgeDefinitionBean.isPublic());
-	    cartridgeConfig.setDisplayName(cartridgeDefinitionBean.getDisplayName());
-	    cartridgeConfig.setDescription(cartridgeDefinitionBean.getDescription());
-	    cartridgeConfig.setDefaultAutoscalingPolicy(cartridgeDefinitionBean.getDefaultAutoscalingPolicy());
-	    cartridgeConfig.setDefaultDeploymentPolicy(cartridgeDefinitionBean.getDefaultDeploymentPolicy());
-	    cartridgeConfig.setServiceGroup(cartridgeDefinitionBean.getServiceGroup());
-	    cartridgeConfig.setDeployerType(cartridgeDefinitionBean.getDeployerType());
-
-
-        //deployment information
-        if (cartridgeDefinitionBean.getDeployment() != null) {
-            cartridgeConfig.setBaseDir(cartridgeDefinitionBean.getDeployment().getBaseDir());
-            if (cartridgeDefinitionBean.getDeployment().getDir() != null && !cartridgeDefinitionBean.getDeployment().getDir().isEmpty()) {
-                cartridgeConfig.setDeploymentDirs(cartridgeDefinitionBean.getDeployment().getDir().
-                        toArray(new String[cartridgeDefinitionBean.getDeployment().getDir().size()]));
-            }
-        }
-        //port mapping
-        if (cartridgeDefinitionBean.getPortMapping() != null && !cartridgeDefinitionBean.getPortMapping().isEmpty()) {
-            cartridgeConfig.setPortMappings(getPortMappingsAsArray(cartridgeDefinitionBean.getPortMapping()));
-        }
-
-        //persistance mapping
-        if (cartridgeDefinitionBean.getPersistence() != null) {
-            cartridgeConfig.setPersistence(getPersistence(cartridgeDefinitionBean.getPersistence()));
-        }
-
-        //IaaS
-        if (cartridgeDefinitionBean.getIaasProvider() != null && !cartridgeDefinitionBean.getIaasProvider().isEmpty()) {
-            cartridgeConfig.setIaasConfigs(getIaasConfigsAsArray(cartridgeDefinitionBean.getIaasProvider()));
-        }
-        //Properties
-        if (cartridgeDefinitionBean.getProperty() != null && !cartridgeDefinitionBean.getProperty().isEmpty()) {
-            cartridgeConfig.setProperties(getCCProperties(cartridgeDefinitionBean.getProperty()));
-        }
-
-        if (cartridgeDefinitionBean.getExportingProperties() != null) {
-            List<String> propertiesList = cartridgeDefinitionBean.getExportingProperties();
-            String[] propertiesArray = propertiesList.toArray(new String[propertiesList.size()]);
-            cartridgeConfig.setExportingProperties(propertiesArray);
-        }
-
-        if (cartridgeDefinitionBean.getContainer() != null) {
-            cartridgeConfig.setContainer(getContainer(cartridgeDefinitionBean.getContainer()));
-        }
-
-        return cartridgeConfig;
-    }
-
-    public static ServiceGroup populateServiceGroupPojo(ServiceGroupDefinition serviceGroupDefinition) {
-        ServiceGroup servicegroup = new ServiceGroup();
-
-        return servicegroup;
-    }
-
-    private static Container getContainer(ContainerBean container) {
-        Container cn = new Container();
-        cn.setDockerFileRepo(container.getDockerfileRepo());
-        cn.setImageName(container.getImageName());
-        //cn.setProperties(getProperties(container.property));
-        return cn;
-    }
-
-    private static LoadbalancerConfig getLBConfig(LoadBalancerBean loadBalancer) {
-        LoadbalancerConfig lbConfig = new LoadbalancerConfig();
-        lbConfig.setType(loadBalancer.getType());
-        if (loadBalancer.getProperty() != null && !loadBalancer.getProperty().isEmpty()) {
-            lbConfig.setProperties(getCCProperties(loadBalancer.getProperty()));
-        }
-        return lbConfig;
-    }
-
-    private static PortMapping[] getPortMappingsAsArray(List<PortMappingBean> portMappingBeans) {
-
-        //convert to an array
-        PortMappingBean[] portMappingBeanArray = new PortMappingBean[portMappingBeans.size()];
-        portMappingBeans.toArray(portMappingBeanArray);
-        PortMapping[] portMappingArray = new PortMapping[portMappingBeanArray.length];
-
-        for (int i = 0; i < portMappingBeanArray.length; i++) {
-            PortMapping portMapping = new PortMapping();
-            portMapping.setProtocol(portMappingBeanArray[i].getProtocol());
-            portMapping.setPort(Integer.toString(portMappingBeanArray[i].getPort()));
-            portMapping.setProxyPort(Integer.toString(portMappingBeanArray[i].getProxyPort()));
-            portMappingArray[i] = portMapping;
-        }
-
-        return portMappingArray;
-    }
-
-    private static IaasConfig[] getIaasConfigsAsArray(List<IaasProviderBean> iaasProviderBeans) {
-
-        //convert to an array
-        IaasProviderBean[] iaasProviderBeansArray = new IaasProviderBean[iaasProviderBeans.size()];
-        iaasProviderBeans.toArray(iaasProviderBeansArray);
-        IaasConfig[] iaasConfigsArray = new IaasConfig[iaasProviderBeansArray.length];
-
-        for (int i = 0; i < iaasProviderBeansArray.length; i++) {
-            IaasConfig iaasConfig = new IaasConfig();
-            iaasConfig.setType(iaasProviderBeansArray[i].getType());
-            iaasConfig.setImageId(iaasProviderBeansArray[i].getImageId());
-            iaasConfig.setMaxInstanceLimit(iaasProviderBeansArray[i].getMaxInstanceLimit());
-            iaasConfig.setName(iaasProviderBeansArray[i].getName());
-            iaasConfig.setClassName(iaasProviderBeansArray[i].getClassName());
-            iaasConfig.setCredential(iaasProviderBeansArray[i].getCredential());
-            iaasConfig.setIdentity(iaasProviderBeansArray[i].getIdentity());
-            iaasConfig.setProvider(iaasProviderBeansArray[i].getProvider());
-
-            if (iaasProviderBeansArray[i].getProperty() != null && !iaasProviderBeansArray[i].getProperty().isEmpty()) {
-                //set the Properties instance to IaasConfig instance
-                iaasConfig.setProperties(getCCProperties(iaasProviderBeansArray[i].getProperty()));
-            }
-
-            if (iaasProviderBeansArray[i].getNetworkInterfaces() != null && !iaasProviderBeansArray[i].getNetworkInterfaces().isEmpty()) {
-                iaasConfig.setNetworkInterfaces(PojoConverter.getNetworkInterfaces(iaasProviderBeansArray[i].getNetworkInterfaces()));
-            }
-
-            iaasConfigsArray[i] = iaasConfig;
-        }
-        return iaasConfigsArray;
-    }
-
-    public static Persistence getPersistence(PersistenceBean persistenceBean) {
-        Persistence persistence = new Persistence();
-        persistence.setPersistanceRequired(persistenceBean.isRequired());
-        VolumeBean[] volumeBean = new VolumeBean[persistenceBean.getVolume().size()];
-        persistenceBean.getVolume().toArray(volumeBean);
-        Volume[] volumes = new Volume[persistenceBean.getVolume().size()];
-        for (int i = 0; i < volumes.length; i++) {
-            Volume volume = new Volume();
-            volume.setId(volumeBean[i].getId());
-            volume.setVolumeId(volumeBean[i].getVolumeId());
-            if (StringUtils.isEmpty(volume.getVolumeId())) {
-                volume.setSize(Integer.parseInt(volumeBean[i].getSize()));
-            }
-
-            volume.setDevice(volumeBean[i].getDevice());
-            volume.setRemoveOntermination(volumeBean[i].isRemoveOnTermination());
-            volume.setMappingPath(volumeBean[i].getMappingPath());
-            volume.setSnapshotId(volumeBean[i].getSnapshotId());
-
-            volumes[i] = volume;
-        }
-        persistence.setVolumes(volumes);
-        return persistence;
-
-    }
-
-    public static Properties getProperties(List<PropertyBean> propertyBeans) {
-
-        //convert to an array
-        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
-        propertyBeans.toArray(propertyBeansArray);
-        Property[] propertyArray = new Property[propertyBeansArray.length];
-
-        for (int j = 0; j < propertyBeansArray.length; j++) {
-            Property property = new Property();
-            property.setName(propertyBeansArray[j].getName());
-            property.setValue(propertyBeansArray[j].getValue());
-            propertyArray[j] = property;
-        }
-
-        Properties properties = new Properties();
-        properties.setProperties(propertyArray);
-        return properties;
-    }
-    
-    public static org.apache.stratos.cloud.controller.stub.Properties getCCProperties(List<PropertyBean> propertyBeans) {
-
-        //convert to an array
-        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
-        propertyBeans.toArray(propertyBeansArray);
-        org.apache.stratos.cloud.controller.stub.Property[] propertyArray = new org.apache.stratos.cloud.controller.stub.Property[propertyBeansArray.length];
-
-        for (int j = 0; j < propertyBeansArray.length; j++) {
-            org.apache.stratos.cloud.controller.stub.Property property = new org.apache.stratos.cloud.controller.stub.Property();
-            property.setName(propertyBeansArray[j].getName());
-            property.setValue(propertyBeansArray[j].getValue());
-            propertyArray[j] = property;
-        }
-
-        org.apache.stratos.cloud.controller.stub.Properties properties = new org.apache.stratos.cloud.controller.stub.Properties();
-        properties.setProperties(propertyArray);
-        return properties;
-    }
-
-
-    public static org.apache.stratos.autoscaler.stub.Properties getASProperties(List<PropertyBean> propertyBeans) {
-        if (propertyBeans == null || propertyBeans.isEmpty()) {
-            return null;
-        }
-
-        //convert to an array
-        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
-        propertyBeans.toArray(propertyBeansArray);
-        org.apache.stratos.autoscaler.stub.Property[] propertyArray = new org.apache.stratos.autoscaler.stub.Property[propertyBeansArray.length];
-
-        for (int j = 0; j < propertyBeansArray.length; j++) {
-            org.apache.stratos.autoscaler.stub.Property property = new org.apache.stratos.autoscaler.stub.Property();
-            property.setName(propertyBeansArray[j].getName());
-            property.setValue(propertyBeansArray[j].getValue());
-            propertyArray[j] = property;
-        }
-
-        org.apache.stratos.autoscaler.stub.Properties properties = new org.apache.stratos.autoscaler.stub.Properties();
-        properties.setProperties(propertyArray);
-        return properties;
-    }
-
-    private static NetworkInterfaces getNetworkInterfaces(List<NetworkInterfaceBean> networkInterfaceBeans) {
-        NetworkInterface[] networkInterfacesArray = new NetworkInterface[networkInterfaceBeans.size()];
-
-        int i = 0;
-        for (NetworkInterfaceBean nib : networkInterfaceBeans) {
-            NetworkInterface networkInterface = new NetworkInterface();
-            networkInterface.setNetworkUuid(nib.getNetworkUuid());
-            networkInterface.setFixedIp(nib.getFixedIp());
-            networkInterface.setPortUuid(nib.getPortUuid());
-            if (nib.getFloatingNetworks() != null && !nib.getFloatingNetworks().isEmpty()) {
-            	networkInterface.setFloatingNetworks(PojoConverter.getFloatingNetworks(nib.getFloatingNetworks()));
-            }
-
-            networkInterfacesArray[i++] = networkInterface;
-        }
-
-        NetworkInterfaces networkInterfaces = new NetworkInterfaces();
-        networkInterfaces.setNetworkInterfaces(networkInterfacesArray);
-        return networkInterfaces;
-    }
-    
-    private static FloatingNetworks getFloatingNetworks(List<FloatingNetworkBean> floatingNetworkBeans) {
-    	
-    	FloatingNetwork[] floatingNetworksArray = new FloatingNetwork[floatingNetworkBeans.size()];
-    	
-    	int i =0;
-    	for (FloatingNetworkBean floatingNetworkBean : floatingNetworkBeans) {
-    	FloatingNetwork floatingNetwork = new FloatingNetwork();
-    	floatingNetwork.setName(floatingNetworkBean.getName());
-    	floatingNetwork.setNetworkUuid(floatingNetworkBean.getNetworkUuid());
-    	floatingNetwork.setFloatingIP(floatingNetworkBean.getFloatingIP());
-    	floatingNetworksArray[i++] = floatingNetwork;
-    	}
-    	
-    	FloatingNetworks floatingNetworks = new FloatingNetworks();
-    	floatingNetworks.setFloatingNetworks(floatingNetworksArray);
-    	return floatingNetworks;
-    	}
-
-    public static org.apache.stratos.autoscaler.stub.deployment.partition.Partition convertToCCPartitionPojo
-            (Partition 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 org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy convertToCCAutoscalerPojo(AutoscalePolicy
-                                                                                                                        autoscalePolicyBean) {
-
-        org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = new
-                org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy();
-
-        autoscalePolicy.setId(autoscalePolicyBean.getId());
-        autoscalePolicy.setDescription(autoscalePolicyBean.getDescription());
-        autoscalePolicy.setIsPublic(autoscalePolicyBean.getIsPublic());
-        autoscalePolicy.setDisplayName(autoscalePolicyBean.getDisplayName());
-        autoscalePolicy.setInstanceRoundingFactor(autoscalePolicyBean.getInstanceRoundingFactor());
-
-        if (autoscalePolicyBean.getLoadThresholds() != null) {
-
-            org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds loadThresholds = new
-                    org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds();
-
-            if (autoscalePolicyBean.getLoadThresholds().getLoadAverage() != null) {
-
-                //set load average information
-                org.apache.stratos.autoscaler.stub.autoscale.policy.LoadAverageThresholds loadAverage = new
-                        org.apache.stratos.autoscaler.stub.autoscale.policy.LoadAverageThresholds();
-                loadAverage.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getLoadAverage().getThreshold());
-                loadAverage.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getLoadAverage().getLowerLimit());
-                //set load average
-                loadThresholds.setLoadAverage(loadAverage);
-            }
-            if (autoscalePolicyBean.getLoadThresholds().getRequestsInFlight() != null) {
-
-                org.apache.stratos.autoscaler.stub.autoscale.policy.RequestsInFlightThresholds requestsInFlight = new
-                        org.apache.stratos.autoscaler.stub.autoscale.policy.RequestsInFlightThresholds();
-                //set request in flight information
-                requestsInFlight.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getRequestsInFlight().getThreshold());
-                requestsInFlight.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getRequestsInFlight().getLowerLimit());
-                //set request in flight
-                loadThresholds.setRequestsInFlight(requestsInFlight);
-            }
-            if (autoscalePolicyBean.getLoadThresholds().getMemoryConsumption() != null) {
-
-                org.apache.stratos.autoscaler.stub.autoscale.policy.MemoryConsumptionThresholds memoryConsumption = new
-                        org.apache.stratos.autoscaler.stub.autoscale.policy.MemoryConsumptionThresholds();
-
-                //set memory consumption information
-                memoryConsumption.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getMemoryConsumption().getThreshold());
-                memoryConsumption.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getMemoryConsumption().getLowerLimit());
-                //set memory consumption
-                loadThresholds.setMemoryConsumption(memoryConsumption);
-            }
-
-            autoscalePolicy.setLoadThresholds(loadThresholds);
-        }
-
-        return autoscalePolicy;
-    }
-
-    public static org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy convetToASDeploymentPolicyPojo(
-            DeploymentPolicy deploymentPolicyBean) {
-
-        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
-                new org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy();
-
-        deploymentPolicy.setApplicationId(deploymentPolicyBean.getApplicationId());
-        deploymentPolicy.setDescription(deploymentPolicyBean.getDescription());
-        deploymentPolicy.setIsPublic(deploymentPolicyBean.isPublic());
-        if (deploymentPolicyBean.getApplicationPolicy() != null
-                && deploymentPolicyBean.getApplicationPolicy().getNetworkPartition() != null
-                && !deploymentPolicyBean.getApplicationPolicy().getNetworkPartition().isEmpty()) {
-            deploymentPolicy
-                    .setApplicationLevelNetworkPartitions(convertToCCPartitionGroup(deploymentPolicyBean.getApplicationPolicy().getNetworkPartition()));
-        }
-
-        if (deploymentPolicyBean.getChildPolicies() != null && !deploymentPolicyBean.getChildPolicies().isEmpty()) {
-            deploymentPolicy.setChildPolicies(convertToCCChildPolicy(deploymentPolicyBean.getChildPolicies()));
-        }
-
-        return deploymentPolicy;
-    }
-
-    public static DeploymentPolicy convertStubDeploymentPolicyToDeploymentPolicy(
-            org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy) {
-
-        DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
-
-        deploymentPolicy.setApplicationId(stubDeploymentPolicy.getApplicationId());
-        deploymentPolicy.setDescription(stubDeploymentPolicy.getDescription());
-        deploymentPolicy.setPublic(stubDeploymentPolicy.getIsPublic());
-        if (stubDeploymentPolicy.getApplicationLevelNetworkPartitions() != null) {
-            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
-                    networkPartitions = stubDeploymentPolicy.getApplicationLevelNetworkPartitions();
-            if(networkPartitions != null) {
-                deploymentPolicy.setApplicationPolicy(new ApplicationPolicy());
-                List<ApplicationLevelNetworkPartition> networkPartitionList = new ArrayList<ApplicationLevelNetworkPartition>();
-                for(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
-                        networkPartition : networkPartitions) {
-                    if(networkPartition != null) {
-                        networkPartitionList.add(convertStubNetworkPartitionToNetworkPartition(networkPartition));
-                    }
-                }
-                deploymentPolicy.getApplicationPolicy().setNetworkPartition(networkPartitionList);
-            }
-        }
-
-        if (stubDeploymentPolicy.getChildPolicies() != null) {
-            List<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy> childPolicyList =
-                    new ArrayList<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy>();
-            for(org.apache.stratos.autoscaler.stub.deployment.policy.ChildPolicy stubChildDeploymentPolicy :
-                    stubDeploymentPolicy.getChildPolicies()) {
-                if(stubChildDeploymentPolicy != null) {
-                    childPolicyList.add(convertStubChildPolicyToChildPolicy(stubChildDeploymentPolicy));
-                }
-            }
-            deploymentPolicy.setChildPolicies(childPolicyList);
-        }
-        return deploymentPolicy;
-    }
-
-    private static org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy
-    convertStubChildPolicyToChildPolicy(ChildPolicy stubChildDeploymentPolicy) {
-        if(stubChildDeploymentPolicy == null) {
-            return null;
-        }
-        org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy childPolicy = new
-                org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy();
-        childPolicy.setChildId(stubChildDeploymentPolicy.getId());
-        if(stubChildDeploymentPolicy.getChildLevelNetworkPartitions() != null) {
-            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition> networkPartitionList
-                    = new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition
-                    stubChildLevelNetworkPartition : stubChildDeploymentPolicy.getChildLevelNetworkPartitions()) {
-                networkPartitionList.add(convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(stubChildLevelNetworkPartition));
-            }
-            childPolicy.setNetworkPartition(networkPartitionList);
-        }
-        return childPolicy;
-    }
-
-    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition
-    convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(
-            ChildLevelNetworkPartition stubChildLevelNetworkPartition) {
-        if(stubChildLevelNetworkPartition == null) {
-            return null;
-        }
-        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition childLevelNetworkPartition =
-                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition();
-        childLevelNetworkPartition.setId(stubChildLevelNetworkPartition.getId());
-        childLevelNetworkPartition.setPartitionAlgo(stubChildLevelNetworkPartition.getPartitionAlgo());
-        if(stubChildLevelNetworkPartition.getChildLevelPartitions() != null) {
-            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition> partitionList =
-                    new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition stubChildLevelPartition : stubChildLevelNetworkPartition.getChildLevelPartitions()) {
-                partitionList.add(convertStubChildLevelPartitionToChildLevelPartition(stubChildLevelPartition));
-            }
-            childLevelNetworkPartition.setPartitions(partitionList);
-        }
-        return childLevelNetworkPartition;
-    }
-
-    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition
-    convertStubChildLevelPartitionToChildLevelPartition(ChildLevelPartition stubChildLevelPartition) {
-        if(stubChildLevelPartition == null) {
-            return null;
-        }
-        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition childLevelPartition =
-                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition();
-        childLevelPartition.setId(stubChildLevelPartition.getPartitionId());
-        childLevelPartition.setMax(stubChildLevelPartition.getMax());
-        return childLevelPartition;
-    }
-
-    private static ApplicationLevelNetworkPartition convertStubNetworkPartitionToNetworkPartition(
-            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition stubNetworkPartition) {
-        if(stubNetworkPartition == null) {
-            return null;
-        }
-
-        ApplicationLevelNetworkPartition networkPartition = new ApplicationLevelNetworkPartition();
-        networkPartition.setId(stubNetworkPartition.getId());
-        networkPartition.setActiveByDefault(stubNetworkPartition.getActiveByDefault());
-        if(stubNetworkPartition.getPartitions() != null) {
-            List<Partition> partitionList = new ArrayList<Partition>();
-            for(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition :
-                    stubNetworkPartition.getPartitions()) {
-                if(stubPartition != null) {
-                    partitionList.add(convertStubPartitionToPartition(stubPartition));
-                }
-            }
-            networkPartition.setPartitions(partitionList);
-        }
-        return networkPartition;
-    }
-
-    private static Partition convertStubPartitionToPartition(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition) {
-        if(stubPartition == null) {
-            return null;
-        }
-        Partition partition = new Partition();
-        partition.setId(stubPartition.getId());
-        partition.setPublic(stubPartition.getIsPublic());
-        partition.setDescription(stubPartition.getDescription());
-        partition.setProvider(stubPartition.getProvider());
-        if(stubPartition.getProperties() != null) {
-            List<PropertyBean> propertyBeanList = new ArrayList<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 PropertyBean convertStubPropertyToPropertyBean(org.apache.stratos.autoscaler.stub.Property stubProperty) {
-        if(stubProperty == null) {
-            return null;
-        }
-
-        PropertyBean propertyBean = new PropertyBean();
-        propertyBean.setName(stubProperty.getName());
-        propertyBean.setValue(stubProperty.getValue());
-        return propertyBean;
-    }
-
-    private static org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] convertToCCPartitionGroup(List<ApplicationLevelNetworkPartition> networkPartitionBeans) {
-
-        org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
-                appNWPartitions = new
-                org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
-                [networkPartitionBeans.size()];
-
-        for (int i = 0; i < networkPartitionBeans.size(); i++) {
-            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition appNWPartition = new
-                    org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition();
-            appNWPartition.setId(networkPartitionBeans.get(i).getId());
-            appNWPartition.setActiveByDefault(networkPartitionBeans.get(i).isActiveByDefault());
-            if (networkPartitionBeans.get(i).getPartitions() != null && !networkPartitionBeans.get(i).getPartitions().isEmpty()) {
-                appNWPartition.setPartitions(convertToCCPartitionPojos(networkPartitionBeans.get(i).getPartitions()));
-            }
-
-            appNWPartitions[i] = appNWPartition;
-        }
-
-        return appNWPartitions;
-    }
-
-    private static ChildPolicy[] convertToCCChildPolicy(List<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy> childPolicies) {
-
-        ChildPolicy[] childPolicies1 = new ChildPolicy[childPolicies.size()];
-
-        for (int i = 0; i < childPolicies.size(); i++) {
-            ChildPolicy childPolicy = new ChildPolicy();
-            childPolicy.setId(childPolicies.get(i).getChildId());
-            childPolicy.setChildLevelNetworkPartitions(convertToCCChildNetworkPartition(childPolicies.get(i).getNetworkPartition()));
-
-
-            childPolicies1[i] = childPolicy;
-        }
-
-        return childPolicies1;
-    }
-
-    private static ChildLevelNetworkPartition[] convertToCCChildNetworkPartition(List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition> 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 org.apache.stratos.common.beans.topology.Cluster populateClusterPojos(Cluster cluster, String alias) {
-        org.apache.stratos.common.beans.topology.Cluster cluster1 = new
-                org.apache.stratos.common.beans.topology.Cluster();
-        cluster1.setAlias(alias);
-        cluster1.setServiceName(cluster.getServiceName());
-        cluster1.setClusterId(cluster.getClusterId());
-        cluster1.setLbCluster(cluster.isLbCluster());
-        cluster1.setTenantRange(cluster.getTenantRange());
-        cluster1.setProperty(getPropertyBeans(cluster.getProperties()));
-        cluster1.setMember(new ArrayList<Member>());
-        cluster1.setHostNames(new ArrayList<String>());
-        Collection<ClusterInstance> clusterInstances = cluster.getClusterInstances();
-        List<org.apache.stratos.common.beans.topology.Instance> instancesList =
-        		new ArrayList<org.apache.stratos.common.beans.topology.Instance>();
-		if (clusterInstances != null) {
-			for (ClusterInstance clusterInstance : clusterInstances) {
-				org.apache.stratos.common.beans.topology.Instance instance =
-						new org.apache.stratos.common.beans.topology.Instance();
-				instance.setInstanceId(clusterInstance.getInstanceId());
-				instance.setStatus(clusterInstance.getStatus().toString());
-				instancesList.add(instance);
-			}
-			cluster1.setInstances(instancesList);
-		}
-
-        for (org.apache.stratos.messaging.domain.topology.Member tmp : cluster.getMembers()) {
-            Member member = new Member();
-            member.setClusterId(tmp.getClusterId());
-            member.setLbClusterId(tmp.getLbClusterId());
-            member.setNetworkPartitionId(tmp.getNetworkPartitionId());
-            member.setPartitionId(tmp.getPartitionId());
-            member.setMemberId(tmp.getMemberId());
-            if (tmp.getMemberIp() == null) {
-                member.setMemberIp("NULL");
-            } else {
-                member.setMemberIp(tmp.getMemberIp());
-            }
-            if (tmp.getMemberPublicIp() == null) {
-                member.setMemberPublicIp("NULL");
-            } else {
-                member.setMemberPublicIp(tmp.getMemberPublicIp());
-            }
-            member.setServiceName(tmp.getServiceName());
-            member.setStatus(tmp.getStatus().toString());
-            member.setProperty(getPropertyBeans(tmp.getProperties()));
-            cluster1.getMember().add(member);
-        }
-
-        for (String tmp1 : cluster.getHostNames()) {
-            cluster1.getHostNames().add(tmp1);
-        }
-
-        return cluster1;
-    }
-
-    private static org.apache.stratos.autoscaler.stub.deployment.partition.Partition[] convertToCCPartitionPojos
-            (List<Partition> partitionList) {
-
-        org.apache.stratos.autoscaler.stub.deployment.partition.Partition[] partitions =
-                new org.apache.stratos.autoscaler.stub.deployment.partition.Partition[partitionList.size()];
-        for (int i = 0; i < partitionList.size(); i++) {
-            partitions[i] = convertToCCPartitionPojo(partitionList.get(i));
-        }
-
-        return partitions;
-    }
-
-    private static ChildLevelPartition[] convertToCCChildPartitionPojos
-            (List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition> 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 Partition[] populatePartitionPojos(org.apache.stratos.cloud.controller.stub.domain.Partition[]
-                                                             partitions) {
-
-        Partition[] partitionBeans;
-        if (partitions == null) {
-            partitionBeans = new Partition[0];
-            return partitionBeans;
-        }
-
-        partitionBeans = new Partition[partitions.length];
-        for (int i = 0; i < partitions.length; i++) {
-            partitionBeans[i] = populatePartitionPojo(partitions[i]);
-        }
-        return partitionBeans;
-    }
-
-    public static Partition populatePartitionPojo(org.apache.stratos.cloud.controller.stub.domain.Partition
-                                                          partition) {
-
-        Partition partitionBeans = new Partition();
-        if (partition == null) {
-            return partitionBeans;
-        }
-
-        partitionBeans.setId(partition.getId());
-        partitionBeans.setDescription(partition.getDescription());
-        partitionBeans.setPublic(partition.getIsPublic());
-        partitionBeans.setProvider(partition.getProvider());
-        /*partitionBeans.partitionMin = partition.getPartitionMin();
-        partitionBeans.partitionMax = partition.getPartitionMax();*/
-        //properties 
-        if (partition.getProperties() != null) {
-            List<PropertyBean> propertyBeans = getPropertyBeans(partition.getProperties());
-            partitionBeans.setProperty(propertyBeans);
-        }
-
-        return partitionBeans;
-    }
-
-    public static List<SubscriptionDomainBean> populateSubscriptionDomainPojos(List<SubscriptionDomain> subscriptionDomains) {
-
-        List<SubscriptionDomainBean> subscriptionDomainBeans = new ArrayList<SubscriptionDomainBean>();
-
-        if (subscriptionDomains == null) {
-            return subscriptionDomainBeans;
-        }
-
-        for (SubscriptionDomain subscriptionDomain : subscriptionDomains) {
-            subscriptionDomainBeans.add(populateSubscriptionDomainPojo(subscriptionDomain));
-        }
-
-        return subscriptionDomainBeans;
-    }
-
-    public static SubscriptionDomainBean populateSubscriptionDomainPojo(SubscriptionDomain subscriptionDomain) {
-
-        SubscriptionDomainBean subscriptionDomainBean = new SubscriptionDomainBean();
-
-        if (subscriptionDomain == null) {
-            return subscriptionDomainBean;
-        }
-        subscriptionDomainBean.setDomainName(subscriptionDomain.getDomainName());
-        subscriptionDomainBean.setApplicationContext(subscriptionDomain.getApplicationContext());
-
-        return subscriptionDomainBean;
-    }
-
-    private static List<PropertyBean> getPropertyBeans(Properties properties) {
-
-        List<PropertyBean> propertyBeans = null;
-        if (properties.getProperties() != null && properties.getProperties().length != 0) {
-            Property[] propertyArr = properties.getProperties();
-            propertyBeans = new ArrayList<PropertyBean>();
-            for (int i = 0; i < propertyArr.length; i++) {
-                PropertyBean propertyBean = new PropertyBean();
-                propertyBean.setName(propertyArr[i].getName());
-                propertyBean.setValue(propertyArr[i].getValue());
-                propertyBeans.add(propertyBean);
-            }
-        }
-        return propertyBeans;
-    }
-    
-    private static List<PropertyBean> getPropertyBeans(org.apache.stratos.cloud.controller.stub.Properties properties) {
-
-        List<PropertyBean> propertyBeans = null;
-        if (properties.getProperties() != null && properties.getProperties().length != 0) {
-            org.apache.stratos.cloud.controller.stub.Property[] propertyArr = properties.getProperties();
-            propertyBeans = new ArrayList<PropertyBean>();
-            for (int i = 0; i < propertyArr.length; i++) {
-                PropertyBean propertyBean = new PropertyBean();
-                propertyBean.setName(propertyArr[i].getName());
-                propertyBean.setValue(propertyArr[i].getValue());
-                propertyBeans.add(propertyBean);
-            }
-        }
-        return propertyBeans;
-    }
-
-    private static List<PropertyBean> getPropertyBeans(java.util.Properties properties) {
-
-        List<PropertyBean> propertyBeans = null;
-        if (properties != null && !properties.isEmpty()) {
-            Enumeration<?> e = properties.propertyNames();
-            propertyBeans = new ArrayList<PropertyBean>();
-
-            while (e.hasMoreElements()) {
-                String key = (String) e.nextElement();
-                String value = properties.getProperty(key);
-                PropertyBean propertyBean = new PropertyBean();
-                propertyBean.setName(key);
-                propertyBean.setValue(value);
-                propertyBeans.add(propertyBean);
-            }
-        }
-        return propertyBeans;
-    }
-
-    public static AutoscalePolicy[] populateAutoscalePojos(org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy[]
-                                                                   autoscalePolicies) {
-
-        AutoscalePolicy[] autoscalePolicyBeans;
-        if (autoscalePolicies == null) {
-            autoscalePolicyBeans = new AutoscalePolicy[0];
-            return autoscalePolicyBeans;
-        }
-
-        autoscalePolicyBeans = new AutoscalePolicy[autoscalePolicies.length];
-        for (int i = 0; i < autoscalePolicies.length; i++) {
-            autoscalePolicyBeans[i] = populateAutoscalePojo(autoscalePolicies[i]);
-        }
-        return autoscalePolicyBeans;
-    }
-
-    public static AutoscalePolicy populateAutoscalePojo(org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy
-                                                                autoscalePolicy) {
-        if (autoscalePolicy == null) {
-            return null;
-        }
-
-        AutoscalePolicy autoscalePolicyBean = new AutoscalePolicy();
-        autoscalePolicyBean.setId(autoscalePolicy.getId());
-        autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
-        autoscalePolicyBean.setIsPublic(autoscalePolicy.getIsPublic());
-        autoscalePolicyBean.setDisplayName(autoscalePolicy.getDisplayName());
-        autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
-        autoscalePolicyBean.setInstanceRoundingFactor(autoscalePolicy.getInstanceRoundingFactor());
-        if (autoscalePolicy.getLoadThresholds() != null) {
-            autoscalePolicyBean.setLoadThresholds(populateLoadThresholds(autoscalePolicy.getLoadThresholds()));
-        }
-
-        return autoscalePolicyBean;
-    }
-
-    private static LoadThresholds populateLoadThresholds(org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds
-                                                                 loadThresholds) {
-
-        LoadThresholds loadThresholdBean = new LoadThresholds();
-        if (loadThresholds.getLoadAverage() != null) {
-            LoadAverageThresholds loadAverage = new LoadAverageThresholds();
-            loadAverage.setThreshold(loadThresholds.getLoadAverage().getUpperLimit());
-            loadAverage.setLowerLimit(loadThresholds.getLoadAverage().getLowerLimit());
-            loadThresholdBean.setLoadAverage(loadAverage);
-        }
-        if (loadThresholds.getMemoryConsumption() != null) {
-            MemoryConsumptionThresholds memoryConsumption = new MemoryConsumptionThresholds();
-            memoryConsumption.setThreshold(loadThresholds.getMemoryConsumption().getUpperLimit());
-            memoryConsumption.setLowerLimit(loadThresholds.getMemoryConsumption().getLowerLimit());
-            loadThresholdBean.setMemoryConsumption(memoryConsumption);
-        }
-        if (loadThresholds.getRequestsInFlight() != null) {
-            RequestsInFlightThresholds requestsInFlight = new RequestsInFlightThresholds();
-            requestsInFlight.setThreshold(loadThresholds.getRequestsInFlight().getUpperLimit());
-            requestsInFlight.setLowerLimit(loadThresholds.getRequestsInFlight().getLowerLimit());
-            loadThresholdBean.setRequestsInFlight(requestsInFlight);
-        }
-
-        return loadThresholdBean;
-    }
-
-    public static DeploymentPolicy[] populateDeploymentPolicyPojos(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[]
-                                                                           deploymentPolicies) {
-        DeploymentPolicy[] deploymentPolicyBeans;
-        if (deploymentPolicies == null) {
-            return null;
-        }
-
-        deploymentPolicyBeans = new DeploymentPolicy[deploymentPolicies.length];
-        for (int i = 0; i < deploymentPolicies.length; i++) {
-            deploymentPolicyBeans[i] = populateDeploymentPolicyPojo(deploymentPolicies[i]);
-        }
-
-        return deploymentPolicyBeans;
-    }
-
-    public static DeploymentPolicy populateDeploymentPolicyPojo(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy
-                                                                        deploymentPolicy) {
-
-        if (deploymentPolicy == null) {
-            return null;
-        }
-
-        DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
-        deploymentPolicyBean.setDescription(deploymentPolicy.getDescription());
-        deploymentPolicyBean.setPublic(deploymentPolicy.getIsPublic());
-        deploymentPolicyBean.setApplicationId(deploymentPolicy.getApplicationId());
-        return deploymentPolicyBean;
-    }
-
-    public static ApplicationLevelNetworkPartition populatePartitionGroupPojo(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
-                                                                                      partitionGroup) {
-
-        ApplicationLevelNetworkPartition networkPartitionBean = new ApplicationLevelNetworkPartition();
-        if (partitionGroup == null) {
-            return networkPartitionBean;
-        }
-
-        networkPartitionBean.setId(partitionGroup.getId());
-        //FIXME update with new deployment policy pattern
-//        networkPartitionBean.partitionAlgo = partitionGroup.getPartitionAlgo();
-//        if (partitionGroup.getPartitions() != null && partitionGroup.getPartitions().length > 0) {
-//            partitionGroupBean.partition = getPartitionList(partitionGroup.getPartitions());
-//        }
-
-        return networkPartitionBean;
-    }
-
-    public static ApplicationLevelNetworkPartition[] populatePartitionGroupPojos(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups) {
-
-        ApplicationLevelNetworkPartition[] networkPartitionGroupsBeans;
-        if (partitionGroups == null) {
-            networkPartitionGroupsBeans = new ApplicationLevelNetworkPartition[0];
-            return networkPartitionGroupsBeans;
-        }
-
-        networkPartitionGroupsBeans = new ApplicationLevelNetworkPartition[partitionGroups.length];
-
-        for (int i = 0; i < partitionGroups.length; i++) {
-            networkPartitionGroupsBeans[i] = populatePartitionGroupPojo(partitionGroups[i]);
-        }
-
-        return networkPartitionGroupsBeans;
-    }
-
-    private static List<Partition> getPartitionList(org.apache.stratos.cloud.controller.stub.domain.Partition[]
-                                                            partitions) {
-
-        List<Partition> partitionList = new ArrayList<Partition>();
-        for (int i = 0; i < partitions.length; i++) {
-            Partition partition = new Partition();
-            partition.setId(partitions[i].getId());
-            partition.setProvider(partitions[i].getProvider());
-            /*partition.partitionMin = partitions[i].getPartitionMin();
-            partition.partitionMax = partitions[i].getPartitionMax();*/
-            if (partitions[i].getProperties() != null) {
-                partition.setProperty(getPropertyBeans(partitions[i].getProperties()));
-            }
-            partitionList.add(partition);
-        }
-
-        return partitionList;
-    }
-
-    public static ServiceDefinitionBean convertToServiceDefinitionBean(Service service) {
-
-        ServiceDefinitionBean serviceDefinitionBean = new ServiceDefinitionBean();
-        serviceDefinitionBean.setCartridgeType(service.getType());
-        serviceDefinitionBean.setTenantRange(service.getTenantRange());
-        serviceDefinitionBean.setClusterDomain(service.getClusterId());
-        serviceDefinitionBean.setIsPublic(service.getIsPublic());
-        serviceDefinitionBean.setAutoscalingPolicyName(service.getAutoscalingPolicyName());
-        serviceDefinitionBean.setDeploymentPolicyName(service.getDeploymentPolicyName());
-
-        return serviceDefinitionBean;
-    }
-
-    public static List<ServiceDefinitionBean> convertToServiceDefinitionBeans(Collection<Service> services) {
-
-        List<ServiceDefinitionBean> serviceDefinitionBeans = new ArrayList<ServiceDefinitionBean>();
-
-        for (Service service : services) {
-            serviceDefinitionBeans.add(convertToServiceDefinitionBean(service));
-        }
-        return serviceDefinitionBeans;
-    }
-
-    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup convertToCCKubernetesGroupPojo(KubernetesGroup kubernetesGroupBean) {
-
-        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup = new
-                org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup();
-
-        kubernetesGroup.setGroupId(kubernetesGroupBean.getGroupId());
-        kubernetesGroup.setDescription(kubernetesGroupBean.getDescription());
-        kubernetesGroup.setKubernetesMaster(convertToCCKubernetesMasterPojo(kubernetesGroupBean.getKubernetesMaster()));
-        kubernetesGroup.setPortRange(convertToASPortRange(kubernetesGroupBean.getPortRange()));
-        kubernetesGroup.setKubernetesHosts(convertToASKubernetesHostsPojo(kubernetesGroupBean.getKubernetesHosts()));
-        kubernetesGroup.setProperties((getCCProperties(kubernetesGroupBean.getProperty())));
-
-        return kubernetesGroup;
-    }
-
-    private static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[] convertToASKubernetesHostsPojo(List<KubernetesHost> kubernetesHosts) {
-        if (kubernetesHosts == null || kubernetesHosts.isEmpty()) {
-            return null;
-        }
-        int kubernetesHostCount = kubernetesHosts.size();
-        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[]
-                kubernetesHostsArr = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[kubernetesHostCount];
-        for (int i = 0; i < kubernetesHostCount; i++) {
-            KubernetesHost kubernetesHostBean = kubernetesHosts.get(i);
-            kubernetesHostsArr[i] = convertToCCKubernetesHostPojo(kubernetesHostBean);
-        }
-        return kubernetesHostsArr;
-    }
-
-
-    private static org.apache.stratos.cloud.controller.stub.kubernetes.PortRange convertToASPortRange(PortRange portRangeBean) {
-        if (portRangeBean == null) {
-            return null;
-        }
-        org.apache.stratos.cloud.controller.stub.kubernetes.PortRange
-                portRange = new org.apache.stratos.cloud.controller.stub.kubernetes.PortRange();
-        portRange.setLower(portRangeBean.getLower());
-        portRange.setUpper(portRangeBean.getUpper());
-        return portRange;
-    }
-
-    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost convertToCCKubernetesHostPojo(KubernetesHost kubernetesHostBean) {
-        if (kubernetesHostBean == null) {
-            return null;
-        }
-
-        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost
-                kubernetesHost = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost();
-        kubernetesHost.setHostId(kubernetesHostBean.getHostId());
-        kubernetesHost.setHostIpAddress(kubernetesHostBean.getHostIpAddress());
-        kubernetesHost.setHostname(kubernetesHostBean.getHostname());
-        kubernetesHost.setProperties(getCCProperties(kubernetesHostBean.getProperty()));
-
-        return kubernetesHost;
-    }
-
-    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster convertToCCKubernetesMasterPojo(KubernetesMaster kubernetesMasterBean) {
-        if (kubernetesMasterBean == null) {
-            return null;
-        }
-
-        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster
-                kubernetesMaster = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster();
-        kubernetesMaster.setHostId(kubernetesMasterBean.getHostId());
-        kubernetesMaster.setHostIpAddress(kubernetesMasterBean.getHostIpAddress());
-        kubernetesMaster.setHostname(kubernetesMasterBean.getHostname());
-        kubernetesMaster.setEndpoint(kubernetesMasterBean.getEndpoint());
-        kubernetesMaster.setProperties(getCCProperties(kubernetesMasterBean.getProperty()));
-
-        return kubernetesMaster;
-    }
-
-    public static KubernetesGroup[] populateKubernetesGroupsPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup[] kubernetesGroups) {
-
-        if (kubernetesGroups == null) {
-            return null;
-        }
-        KubernetesGroup[] kubernetesGroupsBean = new KubernetesGroup[kubernetesGroups.length];
-        for (int i = 0; i < kubernetesGroups.length; i++) {
-            kubernetesGroupsBean[i] = populateKubernetesGroupPojo(kubernetesGroups[i]);
-        }
-        return kubernetesGroupsBean;
-    }
-
-    public static KubernetesGroup populateKubernetesGroupPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup) {
-        if (kubernetesGroup == null) {
-            return null;
-        }
-        KubernetesGroup kubernetesGroupBean = new KubernetesGroup();
-        kubernetesGroupBean.setGroupId(kubernetesGroup.getGroupId());
-        kubernetesGroupBean.setDescription(kubernetesGroup.getDescription());
-        kubernetesGroupBean.setPortRange(populatePortRangePojo(kubernetesGroup.getPortRange()));
-        kubernetesGroupBean.setKubernetesHosts(populateKubernetesHostsPojo(kubernetesGroup.getKubernetesHosts()));
-        kubernetesGroupBean.setKubernetesMaster(populateKubernetesMasterPojo(kubernetesGroup.getKubernetesMaster()));
-        kubernetesGroupBean.setProperty(populateCCProperties(kubernetesGroup.getProperties()));
-        return kubernetesGroupBean;
-    }
-
-    public static KubernetesMaster populateKubernetesMasterPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster kubernetesMaster) {
-        if (kubernetesMaster == null) {
-            return null;
-        }
-        KubernetesMaster kubernetesMasterBean = new KubernetesMaster();
-        kubernetesMasterBean.setHostId(kubernetesMaster.getHostId());
-        kubernetesMasterBean.setHostname(kubernetesMaster.getHostname());
-        kubernetesMasterBean.setHostIpAddress(kubernetesMaster.getHostIpAddress());
-        kubernetesMasterBean.setProperty(populateCCProperties(kubernetesMaster.getProperties()));
-        kubernetesMasterBean.setEndpoint(kubernetesMaster.getEndpoint());
-        return kubernetesMasterBean;
-    }
-
-    public static List<KubernetesHost> populateKubernetesHostsPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[] kubernetesHosts) {
-        if (kubernetesHosts == null) {
-            return null;
-        }
-        List<KubernetesHost> kubernetesHostList = new ArrayList<KubernetesHost>();
-        for (int i = 0; i < kubernetesHosts.length; i++) {
-            kubernetesHostList.add(populateKubernetesHostPojo(kubernetesHosts[i]));
-        }
-        return kubernetesHostList;
-    }
-
-    private static KubernetesHost populateKubernetesHostPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost) {
-        if (kubernetesHost == null) {
-            return null;
-        }
-        KubernetesHost kubernetesHostBean = new KubernetesHost();
-        kubernetesHostBean.setHostId(kubernetesHost.getHostId());
-        kubernetesHostBean.setHostname(kubernetesHost.getHostname());
-        kubernetesHostBean.setHostIpAddress(kubernetesHost.getHostIpAddress());
-        kubernetesHostBean.setProperty(populateCCProperties(kubernetesHost.getProperties()));
-        return kubernetesHostBean;
-    }
-
-    private static List<PropertyBean> populateASProperties(org.apache.stratos.autoscaler.stub.Properties properties) {
-        if (properties == null || properties.getProperties() == null) {
-            return null;
-        }
-        List<PropertyBean> propertyBeanList = new ArrayList<PropertyBean>();
-        for (int i = 0; i < properties.getProperties().length; i++) {
-            propertyBeanList.add(populateASProperty(properties.getProperties()[i]));
-        }
-        return propertyBeanList;
-    }
-    
-    private static List<PropertyBean> populateCCProperties(org.apache.stratos.cloud.controller.stub.Properties properties) {
-        if (properties == null || properties.getProperties() == null) {
-            return null;
-        }
-        List<PropertyBean> propertyBeanList = new ArrayList<PropertyBean>();
-        for (int i = 0; i < properties.getProperties().length; i++) {
-            propertyBeanList.add(populateCCProperty(properties.getProperties()[i]));
-        }
-        return propertyBeanList;
-    }
-
-    private static PropertyBean populateASProperty(org.apache.stratos.autoscaler.stub.Property propertyE) {
-        if (propertyE == null) {
-            return null;
-        }
-        PropertyBean propertyBean = new PropertyBean();
-        propertyBean.setName(propertyE.getName());
-        propertyBean.setValue(propertyE.getValue());
-        return propertyBean;
-    }
-    
-    private static PropertyBean populateCCProperty(org.apache.stratos.cloud.controller.stub.Property propertyE) {
-        if (propertyE == null) {
-            return null;
-        }
-        PropertyBean propertyBean = new PropertyBean();
-        propertyBean.setName(propertyE.getName());
-        propertyBean.setValue(propertyE.getValue());
-        return propertyBean;
-    }
-
-    private static PortRange populatePortRangePojo(org.apache.stratos.cloud.controller.stub.kubernetes.PortRange portRange) {
-        if (portRange == null) {
-            return null;
-        }
-        PortRange portRangeBean = new PortRange();
-        portRangeBean.setUpper(portRange.getUpper());
-        portRangeBean.setLower(portRange.getLower());
-        return portRangeBean;
-    }
-
-    public static ApplicationContext convertApplicationDefinitionToApplicationContext(ApplicationDefinition applicationDefinition) {
-
-        org.apache.stratos.autoscaler.stub.pojo.ApplicationContext applicationContext =
-                new org.apache.stratos.autoscaler.stub.pojo.ApplicationContext();
-        applicationContext.setApplicationId(applicationDefinition.getApplicationId());
-        applicationContext.setName(applicationDefinition.getName());
-        applicationContext.setDescription(applicationDefinition.getDescription());
-        applicationContext.setAlias(applicationDefinition.getAlias());
-        applicationContext.setStatus(applicationDefinition.getStatus());
-
-        // convert and set components
-        if (applicationDefinition.getComponents() != null) {
-            org.apache.stratos.autoscaler.stub.pojo.ComponentContext componentContext =
-                    new org.apache.stratos.autoscaler.stub.pojo.ComponentContext();
-                      
-            // top level Groups
-            if (applicationDefinition.getComponents().getGroups() != null) {
-                componentContext.setGroupContexts(
-                        convertGroupDefinitionsToStubGroupContexts(applicationDefinition.getComponents().getGroups()));
-            }
-            // top level dependency information
-            if (applicationDefinition.getComponents().getDependencies() != null) {
-                componentContext.setDependencyContext(
-                        convertDependencyDefinitionsToDependencyContexts(applicationDefinition.getComponents().getDependencies()));
-            }
-            // top level cartridge context information
-            if (applicationDefinition.getComponents().getCartridges() != null) {
-                componentContext.setCartridgeContexts(
-                        convertCartridgeDefinitionsToCartridgeContexts(applicationDefinition.getComponents().getCartridges()));
-            }
-            applicationContext.setComponents(componentContext);
-        }
-        return applicationContext;
-    }
-
-    public static ApplicationDefinition convertApplicationContextToApplicationDefinition(
-            ApplicationContext applicationContext) {
-        if(applicationContext == null) {
-            return null;
-        }
-
-        ApplicationDefinition applicationDefinition = new ApplicationDefinition();
-        applicationDefinition.setApplicationId(applicationContext.getApplicationId());
-        applicationDefinition.setName(applicationContext.getName());
-        applicationDefinition.setDescription(applicationContext.getDescription());
-        applicationDefinition.setStatus(applicationContext.getStatus());
-        applicationDefinition.setAlias(applicationContext.getAlias());
-
-        // convert and set components
-        if (applicationContext.getComponents() != null) {
-            applicationDefinition.setComponents(new ComponentDefinition());
-            // top level Groups
-            if (applicationContext.getComponents().getGroupContexts() != null) {
-                applicationDefinition.getComponents().setGroups(
-                        convertGroupContextsToGroupDefinitions(applicationContext.getComponents().getGroupContexts()));
-            }
-            // top level dependency information
-            if (applicationContext.getComponents().getDependencyContext() != null) {
-                applicationDefinition.getComponents().setDependencies(
-                        convertDependencyContextsToDependencyDefinitions(applicationContext.getComponents().getDependencyContext()));
-            }
-            // top level cartridge context information
-            if (applicationContext.getComponents().getCartridgeContexts() != null) {
-                applicationDefinition.getComponents().setCartridges(
-                        convertCartridgeContextsToCartridgeDefinitions(applicationContext.getComponents().getCartridgeContexts()));
-            }
-        }
-        return applicationDefinition;
-    }
-
-    private static List<GroupDefinition> convertGroupContextsToGroupDefinitions(GroupContext[] groupContexts) {
-        List<GroupDefinition> groupDefinitions = new ArrayList<GroupDefinition>();
-        if(groupContexts != null) {
-            for (GroupContext groupContext : groupContexts) {
-                if(groupContext != null) {
-                    GroupDefinition groupDefinition = new GroupDefinition();
-                    groupDefinition.setAlias(groupContext.getAlias());
-                    groupDefinition.setGroupMaxInstances(groupContext.getGroupMaxInstances());
-                    groupDefinition.setGroupMinInstances(groupContext.getGroupMinInstances());
-                    groupDefinition.setGroupScalingEnabled(groupContext.getGroupScalingEnabled());
-                    groupDefinition.setName(groupContext.getName());
-                    groupDefinition.setGroups(convertGroupContextsToGroupDefinitions(groupContext.getGroupContexts()));
-                    groupDefinition.setCartridges(convertCartridgeContextsToCartridgeDefinitions(
-                            groupContext.getCartridgeContexts()));
-                    groupDefinitions.add(groupDefinition);
-                }
-            }
-        }
-        return groupDefinitions;
-    }
-
-    private static DependencyDefinitions convertDependencyContextsToDependencyDefinitions(DependencyContext dependencyContext) {
-        DependencyDefinitions dependencyDefinitions = new DependencyDefinitions();
-        dependencyDefinitions.setTerminationBehaviour(dependencyContext.getTerminationBehaviour());
-
-            if(dependencyContext.getStartupOrdersContexts() != null) {
-                List<String> startupOrders = new ArrayList<String>();
-                for(String item : dependencyContext.getStartupOrdersContexts()) {
-                    startupOrders.add(item);
-                }
-                dependencyDefinitions.setStartupOrders(startupOrders);
-            }
-            if (dependencyContext.getScalingDependents() != null) {
-                List<String> scalingDependents = new ArrayList<String>();
-                for(String item : dependencyContext.getScalingDependents()) {
-                    scalingDependents.add(item);
-                }
-                dependencyDefinitions.setScalingDependants(scalingDependents);
-            }
-        return dependencyDefinitions;
-    }
-
-    private static List<CartridgeDefinition> convertCartridgeContextsToCartridgeDefinitions(CartridgeContext[] cartridgeContexts) {
-        List<CartridgeDefinition> cartridgeDefinitions = new ArrayList<CartridgeDefinition>();
-        if(cartridgeContexts != null) {
-            for (CartridgeContext cartridgeContext : cartridgeContexts) {
-                if(cartridgeContext != null) {
-                    CartridgeDefinition cartridgeDefinition = new CartridgeDefinition();
-                    cartridgeDefinition.setType(cartridgeContext.getType());
-                    cartridgeDefinition.setCartridgeMin(cartridgeContext.getCartridgeMin());
-                    cartridgeDefinition.setCartridgeMax(cartridgeContext.getCartridgeMax());
-                    cartridgeDefinition.setSubscribableInfo(convertSubscribableInfoContextToSubscribableInfo(cartridgeContext.getSubscribableInfoContext()));
-                    cartridgeDefinitions.add(cartridgeDefinition);
-                }
-            }
-        }
-        return cartridgeDefinitions;
-    }
-
-    private static SubscribableInfo convertSubscribableInfoContextToSubscribableInfo(
-            SubscribableInfoContext subscribableInfoContext) {
-        SubscribableInfo subscribableInfo = new SubscribableInfo();
-        subscribableInfo.setAlias(subscribableInfoContext.getAlias());
-        subscribableInfo.setAutoscalingPolicy(subscribableInfoContext.getAutoscalingPolicy());
-        if(!CommonUtil.isEmptyArray(subscribableInfoContext.getDependencyAliases())) {
-            subscribableInfo.setDependencyAliases(subscribableInfoContext.getDependencyAliases());
-        }
-        subscribableInfo.setDeploymentPolicy(subscribableInfoContext.getDeploymentPolicy());
-        subscribableInfo.setMinMembers(subscribableInfoContext.getMinMembers());
-        subscribableInfo.setMaxMembers(subscribableInfoContext.getMaxMembers());
-        subscribableInfo.setPrivateRepo(subscribableInfoContext.getPrivateRepo());
-        subscribableInfo.setProperty(convertStubPropertiesToPropertyBeanList(subscribableInfoContext.getProperties()));
-        subscribableInfo.setRepoPassword(subscribableInfoContext.getRepoPassword());
-        subscribableInfo.setRepoUsername(subscribableInfoContext.getRepoUsername());
-        subscribableInfo.setRepoUrl(subscribableInfoContext.getRepoUrl());
-        return subscribableInfo;
-    }
-
-    private static List<org.apache.stratos.manager.composite.application.beans.PropertyBean>
-        convertStubPropertiesToPropertyBeanList(org.apache.stratos.autoscaler.stub.Properties properties) {
-
-        List<org.apache.stratos.manager.composite.application.beans.PropertyBean> propertyBeanList =
-                new ArrayList<org.apache.stratos.manager.composite.application.beans.PropertyBean>();
-        if((properties != null) && (properties.getProperties() != null)) {
-            for (org.apache.stratos.autoscaler.stub.Property property : properties.getProperties()) {
-                if(property != null) {
-                    org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean =
-                            new org.apache.stratos.manager.composite.application.beans.PropertyBean();
-                    propertyBean.setName(property.getName());
-                    propertyBean.setValue(property.getValue());
-                    propertyBeanList.add(propertyBean);
-                }
-            }
-        }
-        return propertyBeanList;
-    }
-
-    private static CartridgeContext[] convertCartridgeDefinitionsToCartridgeContexts(
-            List<CartridgeDefinition> cartridges) {
-
-    	CartridgeContext[] cartridgeContextArray = new CartridgeContext[cartridges.size()];
-    	int i = 0;
-    	for (CartridgeDefinition cartridgeDefinition : cartridges) {
-    		CartridgeContext context = new CartridgeContext();
-    		context.setCartridgeMax(cartridgeDefinition.getCartridgeMax());
-    		context.setCartridgeMin(cartridgeDefinition.getCartridgeMin());
-    		context.setType(cartridgeDefinition.getType());
-    		context.setSubscribableInfoContext(convertSubscribableInfo(cartridgeDefinition.getSubscribableInfo()));  
-    		cartridgeContextArray[i++] = context;
-        }
-    	
-	    return cartridgeContextArray;
-    }
-
-	private static SubscribableInfoContext convertSubscribableInfo(
-            SubscribableInfo subscribableInfo) {
-		SubscribableInfoContext infoContext = new SubscribableInfoContext();
-		infoContext.setAlias(subscribableInfo.getAlias());
-		infoContext.setAutoscalingPolicy(subscribableInfo.getAutoscalingPolicy());
-		infoContext.setDependencyAliases(subscribableInfo.getDependencyAliases());
-		infoContext.setDeploymentPolicy(subscribableInfo.getDeploymentPolicy());
-		infoContext.setMaxMembers(subscribableInfo.getMaxMembers());
-		infoContext.setMinMembers(subscribableInfo.getMinMembers());
-		infoContext.setRepoPassword(subscribableInfo.getRepoPassword());
-		infoContext.setRepoUrl(subscribableInfo.getRepoUrl());
-		infoContext.setRepoUsername(subscribableInfo.getRepoUsername());
-		infoContext.setProperties(convertPropertyBeansToStubProperties(subscribableInfo.getProperty()));
-		
-	    return infoContext;
-    }
-
-	private static org.apache.stratos.autoscaler.stub.Properties convertPropertyBeansToStubProperties(
-            List<org.apache.stratos.manager.composite.application.beans.PropertyBean> property) {
-		org.apache.stratos.autoscaler.stub.Properties prop = new org.apache.stratos.autoscaler.stub.Properties();
-		if (property != null) {
-			for (org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean : property) {
-				org.apache.stratos.autoscaler.stub.Property p = new org.apache.stratos.autoscaler.stub.Property();
-				p.setName(propertyBean.getName());
-				p.setValue(propertyBean.getValue());
-				prop.addProperties(p);
-			}
-		}
-	    return prop;
-    }
-
-	
-    private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyDefinitions dependencyDefinitions) {
-        DependencyContext dependencyContext = new DependencyContext();
-        dependencyContext.setTerminationBehaviour(dependencyDefinitions.getTerminationBehaviour());
-
-        if (dependencyDefinitions != null){
-            if(dependencyDefinitions.getStartupOrders() != null) {
-                String[] startupOrders = new String[dependencyDefinitions.getStartupOrders().size()];
-                startupOrders = dependencyDefinitions.getStartupOrders().toArray(startupOrders);
-                dependencyContext.setStartupOrdersContexts(startupOrders);
-            }
-            if (dependencyDefinitions.getScalingDependants() != null) {
-                String[] scalingDependents = new String[dependencyDefinitions.getScalingDependants().size()];
-                scalingDependents = dependencyDefinitions.getScalingDependants().toArray(scalingDependents);
-                dependencyContext.setScalingDependents(scalingDependents);
-            }
-        }
-        return dependencyContext;
-    }
-
-    private static org.apache.stratos.autoscaler.stub.pojo.GroupContext[]
-        convertGroupDefinitionsToStubGroupContexts(List<GroupDefinition> groupDefinitions) {
-
-        GroupContext[] groupContexts = new GroupContext[groupDefinitions.size()];
-        int i = 0;
-        for (GroupDefinition groupDefinition : groupDefinitions) {
-            GroupContext groupContext = new GroupContext();
-            groupContext.setName(groupDefinition.getName());
-            groupContext.setAlias(groupDefinition.getAlias());
-            groupContext.setGroupMaxInstances(groupDefinition.getGroupMaxInstances());
-            groupContext.setGroupMinInstances(groupDefinition.getGroupMinInstances());
-            groupContext.setGroupScalingEnabled(groupDefinition.isGroupScalingEnabled);
-           
-            // Groups
-            if (groupDefinition.getGroups() != null) {
-                groupContext.setGroupContexts(convertGroupDefinitionsToStubGroupContexts(groupDefinition.getGroups()));
-            }
-            
-            groupContext.setCartridgeContexts(convertCartridgeDefinitionsToCartridgeContexts(groupDefinition.getCartridges()));
-            groupContexts[i++] = groupContext;
-        }
-
-        return groupContexts;
-    }
-
-
-    public static ApplicationBean applicationToBean(Application application) {
-        if (application == null) {
-            return null;
-        }
-
-        ApplicationBean applicationBean = new ApplicationBean();
-        applicationBean.setId(application.getUniqueIdentifier());
-        applicationBean.setName(application.getName());
-        applicationBean.setDescription(application.getDescription());
-        applicationBean.setTenantDomain(application.getTenantDomain());
-        applicationBean.setTenantAdminUsername(application.getTenantAdminUserName());
-        applicationBean.setInstances(setApplicationInstances(application));
-        return applicationBean;
-    }
-
-    private static List<Instance> setApplicationInstances(
-            Application application) {
-    	List<Instance> applicationInstanceList = new ArrayList<Instance>();
-    	Collection<ApplicationInstance> applicationInstancesInTopology = 
-    			application.getInstanceIdToInstanceContextMap().values();
-    	
-    	if(applicationInstancesInTopology != null) {
-    		for (ApplicationInstance applicationInstance : applicationInstancesInTopology) {
-    			Instance instance = new Instance();
-    			instance.setInstanceId(applicationInstance.getInstanceId());
-    			instance.setStatus(applicationInstance.getStatus().toString());
-    			applicationInstanceList.add(instance);
-            }
-    	}
-    	
-	    return applicationInstanceList;
-    }
-
-	public static GroupBean toGroupBean(Group group) {
-        if (group == null) {
-            return null;
-        }
-
-        GroupBean groupBean = new GroupBean();
-        groupBean.setInstances(setGroupInstances(group));
-        groupBean.setAlias(group.getUniqueIdentifier());
-        groupBean.setAutoScalingPolicy(group.getAutoscalingPolicy());
-        return groupBean;
-    }
-
-	private static List<Instance> setGroupInstances(Group group) {
-	    List<Instance> instanceList = new ArrayList<Instance>();
-	    Collection<GroupInstance> instancesInTopology = group.getInstanceIdToInstanceContextMap().values();
-	    if(instancesInTopology != null) {
-	    	for (GroupInstance groupInstance : instancesInTopology) {
-	            Instance instance = new Instance();
-	            instance.setStatus(groupInstance.getStatus().toString());
-	            instance.setInstanceId(groupInstance.getInstanceId());
-	            instanceList.add(instance);
-            }
-	    }
-	    return instanceList;
-    }
-}


[5/5] stratos git commit: Renaming PojoConverter to ObjectConverter

Posted by im...@apache.org.
Renaming PojoConverter to ObjectConverter


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

Branch: refs/heads/4.1.0-test
Commit: 268db7b6341690701ca13dc250ddb171aff94f0f
Parents: 38eed54
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed Dec 17 14:30:37 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed Dec 17 14:30:37 2014 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV40Utils.java   |   40 +-
 .../rest/endpoint/api/StratosApiV41Utils.java   |   58 +-
 .../stratos/rest/endpoint/mock/MockContext.java |    6 +-
 .../util/converter/ObjectConverter.java         | 1493 ++++++++++++++++++
 .../endpoint/util/converter/PojoConverter.java  | 1493 ------------------
 5 files changed, 1545 insertions(+), 1545 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/268db7b6/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 d129da0..a837514 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
@@ -56,7 +56,7 @@ import org.apache.stratos.common.beans.cartridge.definition.CartridgeDefinitionB
 import org.apache.stratos.common.beans.cartridge.definition.ServiceDefinitionBean;
 import org.apache.stratos.common.beans.repositoryNotificationInfoBean.Payload;
 import org.apache.stratos.common.beans.subscription.domain.SubscriptionDomainBean;
-import org.apache.stratos.rest.endpoint.util.converter.PojoConverter;
+import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 
 import javax.ws.rs.core.Response;
@@ -91,7 +91,7 @@ public class StratosApiV40Utils {
 
         if (cloudControllerServiceClient != null) {
 
-            CartridgeConfig cartridgeConfig = PojoConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
+            CartridgeConfig cartridgeConfig = ObjectConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
 
             if(cartridgeConfig == null) {
                 throw new RestAPIException("Populated CartridgeConfig instance is null, cartridge deployment aborted");
@@ -202,7 +202,7 @@ public class StratosApiV40Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
+            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = ObjectConverter.
                     convertToCCAutoscalerPojo(autoscalePolicyBean);
 
             try {
@@ -253,7 +253,7 @@ public class StratosApiV40Utils {
 //            }
         }
 
-        return PojoConverter.populatePartitionPojos(partitions);
+        return ObjectConverter.populatePartitionPojos(partitions);
     }
 
     public static Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId)
@@ -274,7 +274,7 @@ public class StratosApiV40Utils {
 //            }
 //        }
 
-        return PojoConverter.populatePartitionPojos(partitions);
+        return ObjectConverter.populatePartitionPojos(partitions);
     }
 
     public static Partition[]
@@ -295,7 +295,7 @@ public class StratosApiV40Utils {
 //            }
 //        }
 
-        return PojoConverter.populatePartitionPojos(partitions);
+        return ObjectConverter.populatePartitionPojos(partitions);
     }
 
     public static Partition getPartition (String partitionId) throws RestAPIException {
@@ -313,7 +313,7 @@ public class StratosApiV40Utils {
 //            }
 //        }
 
-        return PojoConverter.populatePartitionPojo(partition);
+        return ObjectConverter.populatePartitionPojo(partition);
     }
 
     private static AutoscalerServiceClient getAutoscalerServiceClient () throws RestAPIException {
@@ -343,7 +343,7 @@ public class StratosApiV40Utils {
                 throw new RestAPIException(errorMsg, e);
             }
         }
-        return PojoConverter.populateAutoscalePojos(autoscalePolicies);
+        return ObjectConverter.populateAutoscalePojos(autoscalePolicies);
     }
 
     public static AutoscalePolicy getAutoScalePolicy (String autoscalePolicyId) throws RestAPIException {
@@ -362,7 +362,7 @@ public class StratosApiV40Utils {
             }
         }
 
-        return PojoConverter.populateAutoscalePojo(autoscalePolicy);
+        return ObjectConverter.populateAutoscalePojo(autoscalePolicy);
     }
 
     public static org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy
@@ -388,7 +388,7 @@ public class StratosApiV40Utils {
             throw new RestAPIException(errorMsg);
         }
 
-        return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
+        return ObjectConverter.populateDeploymentPolicyPojo(deploymentPolicy);
     }
 
     public static ApplicationLevelNetworkPartition[] getPartitionGroups (String deploymentPolicyId)
@@ -408,7 +408,7 @@ public class StratosApiV40Utils {
             }
         }
 
-        return PojoConverter.populatePartitionGroupPojos(applicationLevelNetworkPartitions);
+        return ObjectConverter.populatePartitionGroupPojos(applicationLevelNetworkPartitions);
     }
 
     static Cartridge getAvailableCartridgeInfo(String cartridgeType, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
@@ -572,7 +572,7 @@ public class StratosApiV40Utils {
         }
 
         if (services != null && !services.isEmpty()) {
-            return PojoConverter.convertToServiceDefinitionBeans(services);
+            return ObjectConverter.convertToServiceDefinitionBeans(services);
         }
 
         return null;
@@ -592,7 +592,7 @@ public class StratosApiV40Utils {
         }
 
         if (service != null) {
-            return PojoConverter.convertToServiceDefinitionBean(service);
+            return ObjectConverter.convertToServiceDefinitionBean(service);
         }
 
         return new ServiceDefinitionBean();
@@ -901,7 +901,7 @@ public class StratosApiV40Utils {
         if(cluster == null) {
             throw new RestAPIException("No matching cluster found for [cartridge type]: "+cartridgeType+ " [alias] "+subscriptionAlias);
         } else{
-            return PojoConverter.populateClusterPojos(cluster, null);
+            return ObjectConverter.populateClusterPojos(cluster, null);
         }
     }
 
@@ -912,7 +912,7 @@ public class StratosApiV40Utils {
         ArrayList<org.apache.stratos.common.beans.topology.Cluster> clusters =
                 new ArrayList<org.apache.stratos.common.beans.topology.Cluster>();
         for(Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster, null));
+            clusters.add(ObjectConverter.populateClusterPojos(cluster, null));
         }
         org.apache.stratos.common.beans.topology.Cluster[] arrCluster =
                 new org.apache.stratos.common.beans.topology.Cluster[clusters.size()];
@@ -929,7 +929,7 @@ public class StratosApiV40Utils {
         List<org.apache.stratos.common.beans.topology.Cluster> clusters =
                 new ArrayList<org.apache.stratos.common.beans.topology.Cluster>();
         for(Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster, null));
+            clusters.add(ObjectConverter.populateClusterPojos(cluster, null));
         }
         org.apache.stratos.common.beans.topology.Cluster[] arrCluster =
                 new org.apache.stratos.common.beans.topology.Cluster[clusters.size()];
@@ -945,7 +945,7 @@ public class StratosApiV40Utils {
                 .getClusters(cartridgeType);
         List<org.apache.stratos.common.beans.topology.Cluster> clusters = new ArrayList<org.apache.stratos.common.beans.topology.Cluster>();
         for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster, null));
+            clusters.add(ObjectConverter.populateClusterPojos(cluster, null));
         }
         org.apache.stratos.common.beans.topology.Cluster[] arrCluster = new org.apache.stratos.common.beans.topology.Cluster[clusters
                 .size()];
@@ -1117,7 +1117,7 @@ public class StratosApiV40Utils {
                                                      String subscriptionAlias, String domain) throws RestAPIException {
         try {
             int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
-            SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(cartridgeSubsciptionManager.getSubscriptionDomain(tenantId,
+            SubscriptionDomainBean subscriptionDomain = ObjectConverter.populateSubscriptionDomainPojo(cartridgeSubsciptionManager.getSubscriptionDomain(tenantId,
                     subscriptionAlias, domain));
 
             if (subscriptionDomain.getDomainName() != null) {
@@ -1136,7 +1136,7 @@ public class StratosApiV40Utils {
                                                                       String subscriptionAlias) throws RestAPIException {
         try {
             int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
-            return PojoConverter.populateSubscriptionDomainPojos(cartridgeSubsciptionManager.getSubscriptionDomains(tenantId, subscriptionAlias));
+            return ObjectConverter.populateSubscriptionDomainPojos(cartridgeSubsciptionManager.getSubscriptionDomains(tenantId, subscriptionAlias));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             throw new RestAPIException(e.getMessage(), e);
@@ -1148,7 +1148,7 @@ public class StratosApiV40Utils {
         try {
             int tenantId = ApplicationManagementUtil
                     .getTenantId(configurationContext);
-            SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(cartridgeSubsciptionManager.getSubscriptionDomain(tenantId,
+            SubscriptionDomainBean subscriptionDomain = ObjectConverter.populateSubscriptionDomainPojo(cartridgeSubsciptionManager.getSubscriptionDomain(tenantId,
                     subscriptionAlias, domain));
 
             if (subscriptionDomain == null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/268db7b6/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 66c5af4..09aaa60 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
@@ -68,7 +68,7 @@ import org.apache.stratos.common.beans.kubernetes.KubernetesGroup;
 import org.apache.stratos.common.beans.kubernetes.KubernetesHost;
 import org.apache.stratos.common.beans.kubernetes.KubernetesMaster;
 import org.apache.stratos.common.beans.repositoryNotificationInfoBean.Payload;
-import org.apache.stratos.rest.endpoint.util.converter.PojoConverter;
+import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 
 import java.rmi.RemoteException;
@@ -95,7 +95,7 @@ public class StratosApiV41Utils {
 
         log.info("Starting to deploy a cartridge: [type] " + cartridgeDefinitionBean.getType());
 
-        CartridgeConfig cartridgeConfig = PojoConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
+        CartridgeConfig cartridgeConfig = ObjectConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
         if (cartridgeConfig == null) {
             throw new RestAPIException("Could not read cartridge definition, cartridge deployment failed");
         }
@@ -528,7 +528,7 @@ public class StratosApiV41Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
+            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = ObjectConverter.
                     convertToCCAutoscalerPojo(autoscalePolicyBean);
 
             try {
@@ -553,7 +553,7 @@ public class StratosApiV41Utils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
+            org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = ObjectConverter.
                     convertToCCAutoscalerPojo(autoscalePolicyBean);
 
             try {
@@ -583,7 +583,7 @@ public class StratosApiV41Utils {
                 throw new RestAPIException(errorMsg, e);
             }
         }
-        return PojoConverter.populateAutoscalePojos(autoscalePolicies);
+        return ObjectConverter.populateAutoscalePojos(autoscalePolicies);
     }
 
     public static AutoscalePolicy getAutoScalePolicy(String autoscalePolicyId) throws RestAPIException {
@@ -602,7 +602,7 @@ public class StratosApiV41Utils {
             }
         }
 
-        return PojoConverter.populateAutoscalePojo(autoscalePolicy);
+        return ObjectConverter.populateAutoscalePojo(autoscalePolicy);
     }
 
     public static org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy
@@ -611,7 +611,7 @@ public class StratosApiV41Utils {
         try {
             AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
             DeploymentPolicy deploymentPolicy = autoscalerServiceClient.getDeploymentPolicy(applicationId);
-            return PojoConverter.convertStubDeploymentPolicyToDeploymentPolicy(deploymentPolicy);
+            return ObjectConverter.convertStubDeploymentPolicyToDeploymentPolicy(deploymentPolicy);
         } catch (RemoteException e) {
             String errorMsg = "Could not read deployment policy: [application-id] " + applicationId;
             log.error(errorMsg, e);
@@ -636,7 +636,7 @@ public class StratosApiV41Utils {
             }
         }
 
-        return PojoConverter.populatePartitionGroupPojos(partitionGroups);
+        return ObjectConverter.populatePartitionGroupPojos(partitionGroups);
     }
 
     // Util methods for services and subscriptions
@@ -795,7 +795,7 @@ public class StratosApiV41Utils {
         ArrayList<org.apache.stratos.common.beans.topology.Cluster> clusters =
                 new ArrayList<org.apache.stratos.common.beans.topology.Cluster>();
         for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster, null));
+            clusters.add(ObjectConverter.populateClusterPojos(cluster, null));
         }
         org.apache.stratos.common.beans.topology.Cluster[] arrCluster =
                 new org.apache.stratos.common.beans.topology.Cluster[clusters.size()];
@@ -812,7 +812,7 @@ public class StratosApiV41Utils {
         List<org.apache.stratos.common.beans.topology.Cluster> clusters =
                 new ArrayList<org.apache.stratos.common.beans.topology.Cluster>();
         for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster, null));
+            clusters.add(ObjectConverter.populateClusterPojos(cluster, null));
         }
         org.apache.stratos.common.beans.topology.Cluster[] arrCluster =
                 new org.apache.stratos.common.beans.topology.Cluster[clusters.size()];
@@ -927,7 +927,7 @@ public class StratosApiV41Utils {
             throw new RestAPIException("Could not read application", e);
         }
 
-        ApplicationContext applicationContext = PojoConverter.convertApplicationDefinitionToApplicationContext(appDefinition);
+        ApplicationContext applicationContext = ObjectConverter.convertApplicationDefinitionToApplicationContext(appDefinition);
         applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
         applicationContext.setTenantDomain(tenantDomain);
         applicationContext.setTeantAdminUsername(userName);
@@ -990,7 +990,7 @@ public class StratosApiV41Utils {
             }
 
             org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy =
-                    PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicy);
+                    ObjectConverter.convetToASDeploymentPolicyPojo(deploymentPolicy);
 
             autoscalerServiceClient.deployApplication(applicationId, stubDeploymentPolicy);
             if (log.isInfoEnabled()) {
@@ -1032,7 +1032,7 @@ public class StratosApiV41Utils {
 
     public static ApplicationDefinition getApplication(String applicationId) throws RestAPIException {
         try {
-            return PojoConverter.convertApplicationContextToApplicationDefinition(
+            return ObjectConverter.convertApplicationContextToApplicationDefinition(
                     AutoscalerServiceClient.getServiceClient().getApplication(applicationId));
         } catch (RemoteException e) {
             String message = "Could not read application: [application-id] " + applicationId;
@@ -1049,7 +1049,7 @@ public class StratosApiV41Utils {
                 for (ApplicationContext applicationContext : applicationContexts) {
                     if(applicationContext != null) {
                         ApplicationDefinition applicationDefinition =
-                                PojoConverter.convertApplicationContextToApplicationDefinition(applicationContext);
+                                ObjectConverter.convertApplicationContextToApplicationDefinition(applicationContext);
                         applicationDefinitions.add(applicationDefinition);
                     }
                 }
@@ -1085,7 +1085,7 @@ public class StratosApiV41Utils {
             ApplicationManager.acquireReadLockForApplications();
             ApplicationBean applicationBean;
             for (Application application : ApplicationManager.getApplications().getApplications().values()) {
-                applicationBean = PojoConverter.applicationToBean(application);
+                applicationBean = ObjectConverter.applicationToBean(application);
                 addClustersToApplicationBean(applicationBean, application);
                 addGroupsToApplicationBean(applicationBean, application);
                 applicationBeanList.add(applicationBean);
@@ -1105,7 +1105,7 @@ public class StratosApiV41Utils {
             if (application == null) {
                 return null;
             }
-            applicationBean = PojoConverter.applicationToBean(application);
+            applicationBean = ObjectConverter.applicationToBean(application);
             addClustersToApplicationBean(applicationBean, application);
             addGroupsToApplicationBean(applicationBean, application);
         } finally {
@@ -1117,7 +1117,7 @@ public class StratosApiV41Utils {
     private static void addGroupsToApplicationBean(ApplicationBean applicationBean, Application application) {
         Collection<Group> groups = application.getGroups();
         for (Group group : groups) {
-            GroupBean groupBean = PojoConverter.toGroupBean(group);
+            GroupBean groupBean = ObjectConverter.toGroupBean(group);
             setSubGroups(group, groupBean);
             applicationBean.addGroup(groupBean);
         }
@@ -1131,7 +1131,7 @@ public class StratosApiV41Utils {
             String serviceType = clusterDataHolder.getServiceType();
             TopologyManager.acquireReadLockForCluster(serviceType, clusterId);
             Cluster topLevelCluster = TopologyManager.getTopology().getService(serviceType).getCluster(clusterId);
-            applicationBean.getClusters().add(PojoConverter.populateClusterPojos(topLevelCluster, entry.getKey()));
+            applicationBean.getClusters().add(ObjectConverter.populateClusterPojos(topLevelCluster, entry.getKey()));
         }
     }
 
@@ -1139,7 +1139,7 @@ public class StratosApiV41Utils {
         Collection<Group> subgroups = group.getGroups();
         addClustersToGroupBean(group, groupBean);
         for (Group subGroup : subgroups) {
-            GroupBean subGroupBean = PojoConverter.toGroupBean(subGroup);
+            GroupBean subGroupBean = ObjectConverter.toGroupBean(subGroup);
 
             setSubGroups(subGroup, subGroupBean);
             groupBean.addGroup(subGroupBean);
@@ -1151,7 +1151,7 @@ public class StratosApiV41Utils {
         for (Map.Entry<String, ClusterDataHolder> x : clustersDatamap.entrySet()) {
             ClusterDataHolder clusterHolder = x.getValue();
             Cluster topLevelCluster = TopologyManager.getTopology().getService(clusterHolder.getServiceType()).getCluster(clusterHolder.getClusterId());
-            groupBean.addCluster(PojoConverter.populateClusterPojos(topLevelCluster, null));
+            groupBean.addCluster(ObjectConverter.populateClusterPojos(topLevelCluster, null));
         }
     }
 
@@ -1162,7 +1162,7 @@ public class StratosApiV41Utils {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup =
-                    PojoConverter.convertToCCKubernetesGroupPojo(kubernetesGroupBean);
+                    ObjectConverter.convertToCCKubernetesGroupPojo(kubernetesGroupBean);
 
             try {
                 return cloudControllerServiceClient.deployKubernetesGroup(kubernetesGroup);
@@ -1184,7 +1184,7 @@ public class StratosApiV41Utils {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost =
-                    PojoConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
+                    ObjectConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
 
             try {
                 return cloudControllerServiceClient.deployKubernetesHost(kubernetesGroupId, kubernetesHost);
@@ -1209,7 +1209,7 @@ public class StratosApiV41Utils {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster kubernetesMaster =
-                    PojoConverter.convertToCCKubernetesMasterPojo(kubernetesMasterBean);
+                    ObjectConverter.convertToCCKubernetesMasterPojo(kubernetesMasterBean);
 
             try {
                 return cloudControllerServiceClient.updateKubernetesMaster(kubernetesMaster);
@@ -1236,7 +1236,7 @@ public class StratosApiV41Utils {
             try {
                 org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup[]
                         kubernetesGroups = cloudControllerServiceClient.getAvailableKubernetesGroups();
-                return PojoConverter.populateKubernetesGroupsPojo(kubernetesGroups);
+                return ObjectConverter.populateKubernetesGroupsPojo(kubernetesGroups);
 
             } catch (RemoteException e) {
                 log.error(e.getMessage(), e);
@@ -1253,7 +1253,7 @@ public class StratosApiV41Utils {
             try {
                 org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup
                         kubernetesGroup = cloudControllerServiceClient.getKubernetesGroup(kubernetesGroupId);
-                return PojoConverter.populateKubernetesGroupPojo(kubernetesGroup);
+                return ObjectConverter.populateKubernetesGroupPojo(kubernetesGroup);
 
             } catch (RemoteException e) {
                 log.error(e.getMessage(), e);
@@ -1313,7 +1313,7 @@ public class StratosApiV41Utils {
                 org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[]
                         kubernetesHosts = cloudControllerServiceClient.getKubernetesHosts(kubernetesGroupId);
 
-                List<KubernetesHost> arrayList = PojoConverter.populateKubernetesHostsPojo(kubernetesHosts);
+                List<KubernetesHost> arrayList = ObjectConverter.populateKubernetesHostsPojo(kubernetesHosts);
                 KubernetesHost[] array = new KubernetesHost[arrayList.size()];
                 array = arrayList.toArray(array);
                 return array;
@@ -1335,7 +1335,7 @@ public class StratosApiV41Utils {
             try {
                 org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster
                         kubernetesMaster = cloudControllerServiceClient.getKubernetesMaster(kubernetesGroupId);
-                return PojoConverter.populateKubernetesMasterPojo(kubernetesMaster);
+                return ObjectConverter.populateKubernetesMasterPojo(kubernetesMaster);
 
             } catch (RemoteException e) {
                 log.error(e.getMessage(), e);
@@ -1353,7 +1353,7 @@ public class StratosApiV41Utils {
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost =
-                    PojoConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
+                    ObjectConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
             try {
                 return cloudControllerServiceClient.updateKubernetesHost(kubernetesHost);
             } catch (RemoteException e) {
@@ -1382,7 +1382,7 @@ public class StratosApiV41Utils {
                     throw new RestAPIException("No matching cluster found for [alias] " + alias);
                 }
                 if (property != null) {
-                    autoscalerServiceClient.updateClusterMonitor(cluster.getClusterId(), PojoConverter.getProperties(property));
+                    autoscalerServiceClient.updateClusterMonitor(cluster.getClusterId(), ObjectConverter.getProperties(property));
                 }
             } catch (AutoScalerServiceInvalidArgumentExceptionException e) {
                 String message = e.getFaultMessage().getInvalidArgumentException().getMessage();

http://git-wip-us.apache.org/repos/asf/stratos/blob/268db7b6/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
index cbf4bb7..dfa6aa2 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
@@ -34,7 +34,7 @@ import org.apache.stratos.common.beans.cartridge.definition.CartridgeDefinitionB
 import org.apache.stratos.common.beans.cartridge.definition.ServiceDefinitionBean;
 import org.apache.stratos.common.beans.subscription.domain.SubscriptionDomainBean;
 import org.apache.stratos.common.beans.topology.Cluster;
-import org.apache.stratos.rest.endpoint.util.converter.PojoConverter;
+import org.apache.stratos.rest.endpoint.util.converter.ObjectConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 import org.wso2.carbon.context.CarbonContext;
 import java.util.*;
@@ -878,7 +878,7 @@ public class MockContext {
 		List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
 		if(tenantAliases != null && tenantAliases.contains(alias)) {
 			
-			return PojoConverter.populateSubscriptionDomainPojos(subscriptionAliasToDomainMap.get(alias));
+			return ObjectConverter.populateSubscriptionDomainPojos(subscriptionAliasToDomainMap.get(alias));
 		}
         return new ArrayList<SubscriptionDomainBean>();
 	}
@@ -890,7 +890,7 @@ public class MockContext {
 			for (SubscriptionDomain subscriptionDomain : subscriptionAliasToDomainMap.get(subscriptionAlias)) {
 				if(subscriptionDomain.getDomainName().equals(domainName)) {
 					
-					return PojoConverter.populateSubscriptionDomainPojo(subscriptionDomain);
+					return ObjectConverter.populateSubscriptionDomainPojo(subscriptionDomain);
 				}
 			}
 		}


[4/5] stratos git commit: Renaming PojoConverter to ObjectConverter

Posted by im...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/268db7b6/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
new file mode 100644
index 0000000..9b0b5d5
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -0,0 +1,1493 @@
+/*
+ * 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.rest.endpoint.util.converter;
+
+import org.apache.commons.lang.StringUtils;
+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.policy.ChildPolicy;
+import org.apache.stratos.autoscaler.stub.pojo.*;
+import org.apache.stratos.cloud.controller.stub.domain.*;
+import org.apache.stratos.cloud.controller.stub.domain.ServiceGroup;
+import org.apache.stratos.common.Properties;
+import org.apache.stratos.common.Property;
+import org.apache.stratos.common.beans.ApplicationBean;
+import org.apache.stratos.common.beans.GroupBean;
+import org.apache.stratos.common.beans.autoscaler.partition.ApplicationLevelNetworkPartition;
+import org.apache.stratos.common.beans.autoscaler.partition.Partition;
+import org.apache.stratos.common.beans.autoscaler.policy.autoscale.*;
+import org.apache.stratos.common.beans.autoscaler.policy.deployment.ApplicationPolicy;
+import org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy;
+import org.apache.stratos.common.beans.cartridge.definition.*;
+import org.apache.stratos.common.beans.cartridge.definition.PropertyBean;
+import org.apache.stratos.common.beans.kubernetes.KubernetesGroup;
+import org.apache.stratos.common.beans.kubernetes.KubernetesHost;
+import org.apache.stratos.common.beans.kubernetes.KubernetesMaster;
+import org.apache.stratos.common.beans.kubernetes.PortRange;
+import org.apache.stratos.common.beans.subscription.domain.SubscriptionDomainBean;
+import org.apache.stratos.common.beans.topology.Instance;
+import org.apache.stratos.common.beans.topology.Member;
+import org.apache.stratos.common.util.CommonUtil;
+import org.apache.stratos.manager.composite.application.beans.*;
+import org.apache.stratos.manager.deploy.service.Service;
+import org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
+import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
+import org.apache.stratos.messaging.domain.applications.Application;
+import org.apache.stratos.messaging.domain.applications.Group;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.List;
+
+public class ObjectConverter {
+
+    public static CartridgeConfig populateCartridgeConfigPojo(CartridgeDefinitionBean cartridgeDefinitionBean) {
+
+        CartridgeConfig cartridgeConfig = new CartridgeConfig();
+
+	    cartridgeConfig.setType(cartridgeDefinitionBean.getType());
+	    cartridgeConfig.setHostName(cartridgeDefinitionBean.getHost());
+	    cartridgeConfig.setProvider(cartridgeDefinitionBean.getProvider());
+	    cartridgeConfig.setCategory(cartridgeDefinitionBean.getCategory());
+	    cartridgeConfig.setVersion(cartridgeDefinitionBean.getVersion());
+	    cartridgeConfig.setMultiTenant(cartridgeDefinitionBean.isMultiTenant());
+	    cartridgeConfig.setIsPublic(cartridgeDefinitionBean.isPublic());
+	    cartridgeConfig.setDisplayName(cartridgeDefinitionBean.getDisplayName());
+	    cartridgeConfig.setDescription(cartridgeDefinitionBean.getDescription());
+	    cartridgeConfig.setDefaultAutoscalingPolicy(cartridgeDefinitionBean.getDefaultAutoscalingPolicy());
+	    cartridgeConfig.setDefaultDeploymentPolicy(cartridgeDefinitionBean.getDefaultDeploymentPolicy());
+	    cartridgeConfig.setServiceGroup(cartridgeDefinitionBean.getServiceGroup());
+	    cartridgeConfig.setDeployerType(cartridgeDefinitionBean.getDeployerType());
+
+
+        //deployment information
+        if (cartridgeDefinitionBean.getDeployment() != null) {
+            cartridgeConfig.setBaseDir(cartridgeDefinitionBean.getDeployment().getBaseDir());
+            if (cartridgeDefinitionBean.getDeployment().getDir() != null && !cartridgeDefinitionBean.getDeployment().getDir().isEmpty()) {
+                cartridgeConfig.setDeploymentDirs(cartridgeDefinitionBean.getDeployment().getDir().
+                        toArray(new String[cartridgeDefinitionBean.getDeployment().getDir().size()]));
+            }
+        }
+        //port mapping
+        if (cartridgeDefinitionBean.getPortMapping() != null && !cartridgeDefinitionBean.getPortMapping().isEmpty()) {
+            cartridgeConfig.setPortMappings(getPortMappingsAsArray(cartridgeDefinitionBean.getPortMapping()));
+        }
+
+        //persistance mapping
+        if (cartridgeDefinitionBean.getPersistence() != null) {
+            cartridgeConfig.setPersistence(getPersistence(cartridgeDefinitionBean.getPersistence()));
+        }
+
+        //IaaS
+        if (cartridgeDefinitionBean.getIaasProvider() != null && !cartridgeDefinitionBean.getIaasProvider().isEmpty()) {
+            cartridgeConfig.setIaasConfigs(getIaasConfigsAsArray(cartridgeDefinitionBean.getIaasProvider()));
+        }
+        //Properties
+        if (cartridgeDefinitionBean.getProperty() != null && !cartridgeDefinitionBean.getProperty().isEmpty()) {
+            cartridgeConfig.setProperties(getCCProperties(cartridgeDefinitionBean.getProperty()));
+        }
+
+        if (cartridgeDefinitionBean.getExportingProperties() != null) {
+            List<String> propertiesList = cartridgeDefinitionBean.getExportingProperties();
+            String[] propertiesArray = propertiesList.toArray(new String[propertiesList.size()]);
+            cartridgeConfig.setExportingProperties(propertiesArray);
+        }
+
+        if (cartridgeDefinitionBean.getContainer() != null) {
+            cartridgeConfig.setContainer(getContainer(cartridgeDefinitionBean.getContainer()));
+        }
+
+        return cartridgeConfig;
+    }
+
+    public static ServiceGroup populateServiceGroupPojo(ServiceGroupDefinition serviceGroupDefinition) {
+        ServiceGroup servicegroup = new ServiceGroup();
+
+        return servicegroup;
+    }
+
+    private static Container getContainer(ContainerBean container) {
+        Container cn = new Container();
+        cn.setDockerFileRepo(container.getDockerfileRepo());
+        cn.setImageName(container.getImageName());
+        //cn.setProperties(getProperties(container.property));
+        return cn;
+    }
+
+    private static LoadbalancerConfig getLBConfig(LoadBalancerBean loadBalancer) {
+        LoadbalancerConfig lbConfig = new LoadbalancerConfig();
+        lbConfig.setType(loadBalancer.getType());
+        if (loadBalancer.getProperty() != null && !loadBalancer.getProperty().isEmpty()) {
+            lbConfig.setProperties(getCCProperties(loadBalancer.getProperty()));
+        }
+        return lbConfig;
+    }
+
+    private static PortMapping[] getPortMappingsAsArray(List<PortMappingBean> portMappingBeans) {
+
+        //convert to an array
+        PortMappingBean[] portMappingBeanArray = new PortMappingBean[portMappingBeans.size()];
+        portMappingBeans.toArray(portMappingBeanArray);
+        PortMapping[] portMappingArray = new PortMapping[portMappingBeanArray.length];
+
+        for (int i = 0; i < portMappingBeanArray.length; i++) {
+            PortMapping portMapping = new PortMapping();
+            portMapping.setProtocol(portMappingBeanArray[i].getProtocol());
+            portMapping.setPort(Integer.toString(portMappingBeanArray[i].getPort()));
+            portMapping.setProxyPort(Integer.toString(portMappingBeanArray[i].getProxyPort()));
+            portMappingArray[i] = portMapping;
+        }
+
+        return portMappingArray;
+    }
+
+    private static IaasConfig[] getIaasConfigsAsArray(List<IaasProviderBean> iaasProviderBeans) {
+
+        //convert to an array
+        IaasProviderBean[] iaasProviderBeansArray = new IaasProviderBean[iaasProviderBeans.size()];
+        iaasProviderBeans.toArray(iaasProviderBeansArray);
+        IaasConfig[] iaasConfigsArray = new IaasConfig[iaasProviderBeansArray.length];
+
+        for (int i = 0; i < iaasProviderBeansArray.length; i++) {
+            IaasConfig iaasConfig = new IaasConfig();
+            iaasConfig.setType(iaasProviderBeansArray[i].getType());
+            iaasConfig.setImageId(iaasProviderBeansArray[i].getImageId());
+            iaasConfig.setMaxInstanceLimit(iaasProviderBeansArray[i].getMaxInstanceLimit());
+            iaasConfig.setName(iaasProviderBeansArray[i].getName());
+            iaasConfig.setClassName(iaasProviderBeansArray[i].getClassName());
+            iaasConfig.setCredential(iaasProviderBeansArray[i].getCredential());
+            iaasConfig.setIdentity(iaasProviderBeansArray[i].getIdentity());
+            iaasConfig.setProvider(iaasProviderBeansArray[i].getProvider());
+
+            if (iaasProviderBeansArray[i].getProperty() != null && !iaasProviderBeansArray[i].getProperty().isEmpty()) {
+                //set the Properties instance to IaasConfig instance
+                iaasConfig.setProperties(getCCProperties(iaasProviderBeansArray[i].getProperty()));
+            }
+
+            if (iaasProviderBeansArray[i].getNetworkInterfaces() != null && !iaasProviderBeansArray[i].getNetworkInterfaces().isEmpty()) {
+                iaasConfig.setNetworkInterfaces(ObjectConverter.getNetworkInterfaces(iaasProviderBeansArray[i].getNetworkInterfaces()));
+            }
+
+            iaasConfigsArray[i] = iaasConfig;
+        }
+        return iaasConfigsArray;
+    }
+
+    public static Persistence getPersistence(PersistenceBean persistenceBean) {
+        Persistence persistence = new Persistence();
+        persistence.setPersistanceRequired(persistenceBean.isRequired());
+        VolumeBean[] volumeBean = new VolumeBean[persistenceBean.getVolume().size()];
+        persistenceBean.getVolume().toArray(volumeBean);
+        Volume[] volumes = new Volume[persistenceBean.getVolume().size()];
+        for (int i = 0; i < volumes.length; i++) {
+            Volume volume = new Volume();
+            volume.setId(volumeBean[i].getId());
+            volume.setVolumeId(volumeBean[i].getVolumeId());
+            if (StringUtils.isEmpty(volume.getVolumeId())) {
+                volume.setSize(Integer.parseInt(volumeBean[i].getSize()));
+            }
+
+            volume.setDevice(volumeBean[i].getDevice());
+            volume.setRemoveOntermination(volumeBean[i].isRemoveOnTermination());
+            volume.setMappingPath(volumeBean[i].getMappingPath());
+            volume.setSnapshotId(volumeBean[i].getSnapshotId());
+
+            volumes[i] = volume;
+        }
+        persistence.setVolumes(volumes);
+        return persistence;
+
+    }
+
+    public static Properties getProperties(List<PropertyBean> propertyBeans) {
+
+        //convert to an array
+        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
+        propertyBeans.toArray(propertyBeansArray);
+        Property[] propertyArray = new Property[propertyBeansArray.length];
+
+        for (int j = 0; j < propertyBeansArray.length; j++) {
+            Property property = new Property();
+            property.setName(propertyBeansArray[j].getName());
+            property.setValue(propertyBeansArray[j].getValue());
+            propertyArray[j] = property;
+        }
+
+        Properties properties = new Properties();
+        properties.setProperties(propertyArray);
+        return properties;
+    }
+    
+    public static org.apache.stratos.cloud.controller.stub.Properties getCCProperties(List<PropertyBean> propertyBeans) {
+
+        //convert to an array
+        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
+        propertyBeans.toArray(propertyBeansArray);
+        org.apache.stratos.cloud.controller.stub.Property[] propertyArray = new org.apache.stratos.cloud.controller.stub.Property[propertyBeansArray.length];
+
+        for (int j = 0; j < propertyBeansArray.length; j++) {
+            org.apache.stratos.cloud.controller.stub.Property property = new org.apache.stratos.cloud.controller.stub.Property();
+            property.setName(propertyBeansArray[j].getName());
+            property.setValue(propertyBeansArray[j].getValue());
+            propertyArray[j] = property;
+        }
+
+        org.apache.stratos.cloud.controller.stub.Properties properties = new org.apache.stratos.cloud.controller.stub.Properties();
+        properties.setProperties(propertyArray);
+        return properties;
+    }
+
+
+    public static org.apache.stratos.autoscaler.stub.Properties getASProperties(List<PropertyBean> propertyBeans) {
+        if (propertyBeans == null || propertyBeans.isEmpty()) {
+            return null;
+        }
+
+        //convert to an array
+        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
+        propertyBeans.toArray(propertyBeansArray);
+        org.apache.stratos.autoscaler.stub.Property[] propertyArray = new org.apache.stratos.autoscaler.stub.Property[propertyBeansArray.length];
+
+        for (int j = 0; j < propertyBeansArray.length; j++) {
+            org.apache.stratos.autoscaler.stub.Property property = new org.apache.stratos.autoscaler.stub.Property();
+            property.setName(propertyBeansArray[j].getName());
+            property.setValue(propertyBeansArray[j].getValue());
+            propertyArray[j] = property;
+        }
+
+        org.apache.stratos.autoscaler.stub.Properties properties = new org.apache.stratos.autoscaler.stub.Properties();
+        properties.setProperties(propertyArray);
+        return properties;
+    }
+
+    private static NetworkInterfaces getNetworkInterfaces(List<NetworkInterfaceBean> networkInterfaceBeans) {
+        NetworkInterface[] networkInterfacesArray = new NetworkInterface[networkInterfaceBeans.size()];
+
+        int i = 0;
+        for (NetworkInterfaceBean nib : networkInterfaceBeans) {
+            NetworkInterface networkInterface = new NetworkInterface();
+            networkInterface.setNetworkUuid(nib.getNetworkUuid());
+            networkInterface.setFixedIp(nib.getFixedIp());
+            networkInterface.setPortUuid(nib.getPortUuid());
+            if (nib.getFloatingNetworks() != null && !nib.getFloatingNetworks().isEmpty()) {
+            	networkInterface.setFloatingNetworks(ObjectConverter.getFloatingNetworks(nib.getFloatingNetworks()));
+            }
+
+            networkInterfacesArray[i++] = networkInterface;
+        }
+
+        NetworkInterfaces networkInterfaces = new NetworkInterfaces();
+        networkInterfaces.setNetworkInterfaces(networkInterfacesArray);
+        return networkInterfaces;
+    }
+    
+    private static FloatingNetworks getFloatingNetworks(List<FloatingNetworkBean> floatingNetworkBeans) {
+    	
+    	FloatingNetwork[] floatingNetworksArray = new FloatingNetwork[floatingNetworkBeans.size()];
+    	
+    	int i =0;
+    	for (FloatingNetworkBean floatingNetworkBean : floatingNetworkBeans) {
+    	FloatingNetwork floatingNetwork = new FloatingNetwork();
+    	floatingNetwork.setName(floatingNetworkBean.getName());
+    	floatingNetwork.setNetworkUuid(floatingNetworkBean.getNetworkUuid());
+    	floatingNetwork.setFloatingIP(floatingNetworkBean.getFloatingIP());
+    	floatingNetworksArray[i++] = floatingNetwork;
+    	}
+    	
+    	FloatingNetworks floatingNetworks = new FloatingNetworks();
+    	floatingNetworks.setFloatingNetworks(floatingNetworksArray);
+    	return floatingNetworks;
+    	}
+
+    public static org.apache.stratos.autoscaler.stub.deployment.partition.Partition convertToCCPartitionPojo
+            (Partition 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 org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy convertToCCAutoscalerPojo(AutoscalePolicy
+                                                                                                                        autoscalePolicyBean) {
+
+        org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = new
+                org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy();
+
+        autoscalePolicy.setId(autoscalePolicyBean.getId());
+        autoscalePolicy.setDescription(autoscalePolicyBean.getDescription());
+        autoscalePolicy.setIsPublic(autoscalePolicyBean.getIsPublic());
+        autoscalePolicy.setDisplayName(autoscalePolicyBean.getDisplayName());
+        autoscalePolicy.setInstanceRoundingFactor(autoscalePolicyBean.getInstanceRoundingFactor());
+
+        if (autoscalePolicyBean.getLoadThresholds() != null) {
+
+            org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds loadThresholds = new
+                    org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds();
+
+            if (autoscalePolicyBean.getLoadThresholds().getLoadAverage() != null) {
+
+                //set load average information
+                org.apache.stratos.autoscaler.stub.autoscale.policy.LoadAverageThresholds loadAverage = new
+                        org.apache.stratos.autoscaler.stub.autoscale.policy.LoadAverageThresholds();
+                loadAverage.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getLoadAverage().getThreshold());
+                loadAverage.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getLoadAverage().getLowerLimit());
+                //set load average
+                loadThresholds.setLoadAverage(loadAverage);
+            }
+            if (autoscalePolicyBean.getLoadThresholds().getRequestsInFlight() != null) {
+
+                org.apache.stratos.autoscaler.stub.autoscale.policy.RequestsInFlightThresholds requestsInFlight = new
+                        org.apache.stratos.autoscaler.stub.autoscale.policy.RequestsInFlightThresholds();
+                //set request in flight information
+                requestsInFlight.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getRequestsInFlight().getThreshold());
+                requestsInFlight.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getRequestsInFlight().getLowerLimit());
+                //set request in flight
+                loadThresholds.setRequestsInFlight(requestsInFlight);
+            }
+            if (autoscalePolicyBean.getLoadThresholds().getMemoryConsumption() != null) {
+
+                org.apache.stratos.autoscaler.stub.autoscale.policy.MemoryConsumptionThresholds memoryConsumption = new
+                        org.apache.stratos.autoscaler.stub.autoscale.policy.MemoryConsumptionThresholds();
+
+                //set memory consumption information
+                memoryConsumption.setUpperLimit(autoscalePolicyBean.getLoadThresholds().getMemoryConsumption().getThreshold());
+                memoryConsumption.setLowerLimit(autoscalePolicyBean.getLoadThresholds().getMemoryConsumption().getLowerLimit());
+                //set memory consumption
+                loadThresholds.setMemoryConsumption(memoryConsumption);
+            }
+
+            autoscalePolicy.setLoadThresholds(loadThresholds);
+        }
+
+        return autoscalePolicy;
+    }
+
+    public static org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy convetToASDeploymentPolicyPojo(
+            DeploymentPolicy deploymentPolicyBean) {
+
+        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
+                new org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy();
+
+        deploymentPolicy.setApplicationId(deploymentPolicyBean.getApplicationId());
+        deploymentPolicy.setDescription(deploymentPolicyBean.getDescription());
+        deploymentPolicy.setIsPublic(deploymentPolicyBean.isPublic());
+        if (deploymentPolicyBean.getApplicationPolicy() != null
+                && deploymentPolicyBean.getApplicationPolicy().getNetworkPartition() != null
+                && !deploymentPolicyBean.getApplicationPolicy().getNetworkPartition().isEmpty()) {
+            deploymentPolicy
+                    .setApplicationLevelNetworkPartitions(convertToCCPartitionGroup(deploymentPolicyBean.getApplicationPolicy().getNetworkPartition()));
+        }
+
+        if (deploymentPolicyBean.getChildPolicies() != null && !deploymentPolicyBean.getChildPolicies().isEmpty()) {
+            deploymentPolicy.setChildPolicies(convertToCCChildPolicy(deploymentPolicyBean.getChildPolicies()));
+        }
+
+        return deploymentPolicy;
+    }
+
+    public static DeploymentPolicy convertStubDeploymentPolicyToDeploymentPolicy(
+            org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy) {
+
+        DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
+
+        deploymentPolicy.setApplicationId(stubDeploymentPolicy.getApplicationId());
+        deploymentPolicy.setDescription(stubDeploymentPolicy.getDescription());
+        deploymentPolicy.setPublic(stubDeploymentPolicy.getIsPublic());
+        if (stubDeploymentPolicy.getApplicationLevelNetworkPartitions() != null) {
+            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
+                    networkPartitions = stubDeploymentPolicy.getApplicationLevelNetworkPartitions();
+            if(networkPartitions != null) {
+                deploymentPolicy.setApplicationPolicy(new ApplicationPolicy());
+                List<ApplicationLevelNetworkPartition> networkPartitionList = new ArrayList<ApplicationLevelNetworkPartition>();
+                for(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
+                        networkPartition : networkPartitions) {
+                    if(networkPartition != null) {
+                        networkPartitionList.add(convertStubNetworkPartitionToNetworkPartition(networkPartition));
+                    }
+                }
+                deploymentPolicy.getApplicationPolicy().setNetworkPartition(networkPartitionList);
+            }
+        }
+
+        if (stubDeploymentPolicy.getChildPolicies() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy> childPolicyList =
+                    new ArrayList<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy>();
+            for(org.apache.stratos.autoscaler.stub.deployment.policy.ChildPolicy stubChildDeploymentPolicy :
+                    stubDeploymentPolicy.getChildPolicies()) {
+                if(stubChildDeploymentPolicy != null) {
+                    childPolicyList.add(convertStubChildPolicyToChildPolicy(stubChildDeploymentPolicy));
+                }
+            }
+            deploymentPolicy.setChildPolicies(childPolicyList);
+        }
+        return deploymentPolicy;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy
+    convertStubChildPolicyToChildPolicy(ChildPolicy stubChildDeploymentPolicy) {
+        if(stubChildDeploymentPolicy == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy childPolicy = new
+                org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy();
+        childPolicy.setChildId(stubChildDeploymentPolicy.getId());
+        if(stubChildDeploymentPolicy.getChildLevelNetworkPartitions() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition> networkPartitionList
+                    = new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelNetworkPartition
+                    stubChildLevelNetworkPartition : stubChildDeploymentPolicy.getChildLevelNetworkPartitions()) {
+                networkPartitionList.add(convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(stubChildLevelNetworkPartition));
+            }
+            childPolicy.setNetworkPartition(networkPartitionList);
+        }
+        return childPolicy;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition
+    convertStubChildLevelNetworkPartitionToChildLevelNetworkPartition(
+            ChildLevelNetworkPartition stubChildLevelNetworkPartition) {
+        if(stubChildLevelNetworkPartition == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition childLevelNetworkPartition =
+                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition();
+        childLevelNetworkPartition.setId(stubChildLevelNetworkPartition.getId());
+        childLevelNetworkPartition.setPartitionAlgo(stubChildLevelNetworkPartition.getPartitionAlgo());
+        if(stubChildLevelNetworkPartition.getChildLevelPartitions() != null) {
+            List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition> partitionList =
+                    new ArrayList<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.ChildLevelPartition stubChildLevelPartition : stubChildLevelNetworkPartition.getChildLevelPartitions()) {
+                partitionList.add(convertStubChildLevelPartitionToChildLevelPartition(stubChildLevelPartition));
+            }
+            childLevelNetworkPartition.setPartitions(partitionList);
+        }
+        return childLevelNetworkPartition;
+    }
+
+    private static org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition
+    convertStubChildLevelPartitionToChildLevelPartition(ChildLevelPartition stubChildLevelPartition) {
+        if(stubChildLevelPartition == null) {
+            return null;
+        }
+        org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition childLevelPartition =
+                new org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition();
+        childLevelPartition.setId(stubChildLevelPartition.getPartitionId());
+        childLevelPartition.setMax(stubChildLevelPartition.getMax());
+        return childLevelPartition;
+    }
+
+    private static ApplicationLevelNetworkPartition convertStubNetworkPartitionToNetworkPartition(
+            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition stubNetworkPartition) {
+        if(stubNetworkPartition == null) {
+            return null;
+        }
+
+        ApplicationLevelNetworkPartition networkPartition = new ApplicationLevelNetworkPartition();
+        networkPartition.setId(stubNetworkPartition.getId());
+        networkPartition.setActiveByDefault(stubNetworkPartition.getActiveByDefault());
+        if(stubNetworkPartition.getPartitions() != null) {
+            List<Partition> partitionList = new ArrayList<Partition>();
+            for(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition :
+                    stubNetworkPartition.getPartitions()) {
+                if(stubPartition != null) {
+                    partitionList.add(convertStubPartitionToPartition(stubPartition));
+                }
+            }
+            networkPartition.setPartitions(partitionList);
+        }
+        return networkPartition;
+    }
+
+    private static Partition convertStubPartitionToPartition(org.apache.stratos.autoscaler.stub.deployment.partition.Partition stubPartition) {
+        if(stubPartition == null) {
+            return null;
+        }
+        Partition partition = new Partition();
+        partition.setId(stubPartition.getId());
+        partition.setPublic(stubPartition.getIsPublic());
+        partition.setDescription(stubPartition.getDescription());
+        partition.setProvider(stubPartition.getProvider());
+        if(stubPartition.getProperties() != null) {
+            List<PropertyBean> propertyBeanList = new ArrayList<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 PropertyBean convertStubPropertyToPropertyBean(org.apache.stratos.autoscaler.stub.Property stubProperty) {
+        if(stubProperty == null) {
+            return null;
+        }
+
+        PropertyBean propertyBean = new PropertyBean();
+        propertyBean.setName(stubProperty.getName());
+        propertyBean.setValue(stubProperty.getValue());
+        return propertyBean;
+    }
+
+    private static org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] convertToCCPartitionGroup(List<ApplicationLevelNetworkPartition> networkPartitionBeans) {
+
+        org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[]
+                appNWPartitions = new
+                org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
+                [networkPartitionBeans.size()];
+
+        for (int i = 0; i < networkPartitionBeans.size(); i++) {
+            org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition appNWPartition = new
+                    org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition();
+            appNWPartition.setId(networkPartitionBeans.get(i).getId());
+            appNWPartition.setActiveByDefault(networkPartitionBeans.get(i).isActiveByDefault());
+            if (networkPartitionBeans.get(i).getPartitions() != null && !networkPartitionBeans.get(i).getPartitions().isEmpty()) {
+                appNWPartition.setPartitions(convertToCCPartitionPojos(networkPartitionBeans.get(i).getPartitions()));
+            }
+
+            appNWPartitions[i] = appNWPartition;
+        }
+
+        return appNWPartitions;
+    }
+
+    private static ChildPolicy[] convertToCCChildPolicy(List<org.apache.stratos.common.beans.autoscaler.policy.deployment.ChildPolicy> childPolicies) {
+
+        ChildPolicy[] childPolicies1 = new ChildPolicy[childPolicies.size()];
+
+        for (int i = 0; i < childPolicies.size(); i++) {
+            ChildPolicy childPolicy = new ChildPolicy();
+            childPolicy.setId(childPolicies.get(i).getChildId());
+            childPolicy.setChildLevelNetworkPartitions(convertToCCChildNetworkPartition(childPolicies.get(i).getNetworkPartition()));
+
+
+            childPolicies1[i] = childPolicy;
+        }
+
+        return childPolicies1;
+    }
+
+    private static ChildLevelNetworkPartition[] convertToCCChildNetworkPartition(List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelNetworkPartition> 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 org.apache.stratos.common.beans.topology.Cluster populateClusterPojos(Cluster cluster, String alias) {
+        org.apache.stratos.common.beans.topology.Cluster cluster1 = new
+                org.apache.stratos.common.beans.topology.Cluster();
+        cluster1.setAlias(alias);
+        cluster1.setServiceName(cluster.getServiceName());
+        cluster1.setClusterId(cluster.getClusterId());
+        cluster1.setLbCluster(cluster.isLbCluster());
+        cluster1.setTenantRange(cluster.getTenantRange());
+        cluster1.setProperty(getPropertyBeans(cluster.getProperties()));
+        cluster1.setMember(new ArrayList<Member>());
+        cluster1.setHostNames(new ArrayList<String>());
+        Collection<ClusterInstance> clusterInstances = cluster.getClusterInstances();
+        List<org.apache.stratos.common.beans.topology.Instance> instancesList =
+        		new ArrayList<org.apache.stratos.common.beans.topology.Instance>();
+		if (clusterInstances != null) {
+			for (ClusterInstance clusterInstance : clusterInstances) {
+				org.apache.stratos.common.beans.topology.Instance instance =
+						new org.apache.stratos.common.beans.topology.Instance();
+				instance.setInstanceId(clusterInstance.getInstanceId());
+				instance.setStatus(clusterInstance.getStatus().toString());
+				instancesList.add(instance);
+			}
+			cluster1.setInstances(instancesList);
+		}
+
+        for (org.apache.stratos.messaging.domain.topology.Member tmp : cluster.getMembers()) {
+            Member member = new Member();
+            member.setClusterId(tmp.getClusterId());
+            member.setLbClusterId(tmp.getLbClusterId());
+            member.setNetworkPartitionId(tmp.getNetworkPartitionId());
+            member.setPartitionId(tmp.getPartitionId());
+            member.setMemberId(tmp.getMemberId());
+            if (tmp.getMemberIp() == null) {
+                member.setMemberIp("NULL");
+            } else {
+                member.setMemberIp(tmp.getMemberIp());
+            }
+            if (tmp.getMemberPublicIp() == null) {
+                member.setMemberPublicIp("NULL");
+            } else {
+                member.setMemberPublicIp(tmp.getMemberPublicIp());
+            }
+            member.setServiceName(tmp.getServiceName());
+            member.setStatus(tmp.getStatus().toString());
+            member.setProperty(getPropertyBeans(tmp.getProperties()));
+            cluster1.getMember().add(member);
+        }
+
+        for (String tmp1 : cluster.getHostNames()) {
+            cluster1.getHostNames().add(tmp1);
+        }
+
+        return cluster1;
+    }
+
+    private static org.apache.stratos.autoscaler.stub.deployment.partition.Partition[] convertToCCPartitionPojos
+            (List<Partition> partitionList) {
+
+        org.apache.stratos.autoscaler.stub.deployment.partition.Partition[] partitions =
+                new org.apache.stratos.autoscaler.stub.deployment.partition.Partition[partitionList.size()];
+        for (int i = 0; i < partitionList.size(); i++) {
+            partitions[i] = convertToCCPartitionPojo(partitionList.get(i));
+        }
+
+        return partitions;
+    }
+
+    private static ChildLevelPartition[] convertToCCChildPartitionPojos
+            (List<org.apache.stratos.common.beans.autoscaler.partition.ChildLevelPartition> 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 Partition[] populatePartitionPojos(org.apache.stratos.cloud.controller.stub.domain.Partition[]
+                                                             partitions) {
+
+        Partition[] partitionBeans;
+        if (partitions == null) {
+            partitionBeans = new Partition[0];
+            return partitionBeans;
+        }
+
+        partitionBeans = new Partition[partitions.length];
+        for (int i = 0; i < partitions.length; i++) {
+            partitionBeans[i] = populatePartitionPojo(partitions[i]);
+        }
+        return partitionBeans;
+    }
+
+    public static Partition populatePartitionPojo(org.apache.stratos.cloud.controller.stub.domain.Partition
+                                                          partition) {
+
+        Partition partitionBeans = new Partition();
+        if (partition == null) {
+            return partitionBeans;
+        }
+
+        partitionBeans.setId(partition.getId());
+        partitionBeans.setDescription(partition.getDescription());
+        partitionBeans.setPublic(partition.getIsPublic());
+        partitionBeans.setProvider(partition.getProvider());
+        /*partitionBeans.partitionMin = partition.getPartitionMin();
+        partitionBeans.partitionMax = partition.getPartitionMax();*/
+        //properties 
+        if (partition.getProperties() != null) {
+            List<PropertyBean> propertyBeans = getPropertyBeans(partition.getProperties());
+            partitionBeans.setProperty(propertyBeans);
+        }
+
+        return partitionBeans;
+    }
+
+    public static List<SubscriptionDomainBean> populateSubscriptionDomainPojos(List<SubscriptionDomain> subscriptionDomains) {
+
+        List<SubscriptionDomainBean> subscriptionDomainBeans = new ArrayList<SubscriptionDomainBean>();
+
+        if (subscriptionDomains == null) {
+            return subscriptionDomainBeans;
+        }
+
+        for (SubscriptionDomain subscriptionDomain : subscriptionDomains) {
+            subscriptionDomainBeans.add(populateSubscriptionDomainPojo(subscriptionDomain));
+        }
+
+        return subscriptionDomainBeans;
+    }
+
+    public static SubscriptionDomainBean populateSubscriptionDomainPojo(SubscriptionDomain subscriptionDomain) {
+
+        SubscriptionDomainBean subscriptionDomainBean = new SubscriptionDomainBean();
+
+        if (subscriptionDomain == null) {
+            return subscriptionDomainBean;
+        }
+        subscriptionDomainBean.setDomainName(subscriptionDomain.getDomainName());
+        subscriptionDomainBean.setApplicationContext(subscriptionDomain.getApplicationContext());
+
+        return subscriptionDomainBean;
+    }
+
+    private static List<PropertyBean> getPropertyBeans(Properties properties) {
+
+        List<PropertyBean> propertyBeans = null;
+        if (properties.getProperties() != null && properties.getProperties().length != 0) {
+            Property[] propertyArr = properties.getProperties();
+            propertyBeans = new ArrayList<PropertyBean>();
+            for (int i = 0; i < propertyArr.length; i++) {
+                PropertyBean propertyBean = new PropertyBean();
+                propertyBean.setName(propertyArr[i].getName());
+                propertyBean.setValue(propertyArr[i].getValue());
+                propertyBeans.add(propertyBean);
+            }
+        }
+        return propertyBeans;
+    }
+    
+    private static List<PropertyBean> getPropertyBeans(org.apache.stratos.cloud.controller.stub.Properties properties) {
+
+        List<PropertyBean> propertyBeans = null;
+        if (properties.getProperties() != null && properties.getProperties().length != 0) {
+            org.apache.stratos.cloud.controller.stub.Property[] propertyArr = properties.getProperties();
+            propertyBeans = new ArrayList<PropertyBean>();
+            for (int i = 0; i < propertyArr.length; i++) {
+                PropertyBean propertyBean = new PropertyBean();
+                propertyBean.setName(propertyArr[i].getName());
+                propertyBean.setValue(propertyArr[i].getValue());
+                propertyBeans.add(propertyBean);
+            }
+        }
+        return propertyBeans;
+    }
+
+    private static List<PropertyBean> getPropertyBeans(java.util.Properties properties) {
+
+        List<PropertyBean> propertyBeans = null;
+        if (properties != null && !properties.isEmpty()) {
+            Enumeration<?> e = properties.propertyNames();
+            propertyBeans = new ArrayList<PropertyBean>();
+
+            while (e.hasMoreElements()) {
+                String key = (String) e.nextElement();
+                String value = properties.getProperty(key);
+                PropertyBean propertyBean = new PropertyBean();
+                propertyBean.setName(key);
+                propertyBean.setValue(value);
+                propertyBeans.add(propertyBean);
+            }
+        }
+        return propertyBeans;
+    }
+
+    public static AutoscalePolicy[] populateAutoscalePojos(org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy[]
+                                                                   autoscalePolicies) {
+
+        AutoscalePolicy[] autoscalePolicyBeans;
+        if (autoscalePolicies == null) {
+            autoscalePolicyBeans = new AutoscalePolicy[0];
+            return autoscalePolicyBeans;
+        }
+
+        autoscalePolicyBeans = new AutoscalePolicy[autoscalePolicies.length];
+        for (int i = 0; i < autoscalePolicies.length; i++) {
+            autoscalePolicyBeans[i] = populateAutoscalePojo(autoscalePolicies[i]);
+        }
+        return autoscalePolicyBeans;
+    }
+
+    public static AutoscalePolicy populateAutoscalePojo(org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy
+                                                                autoscalePolicy) {
+        if (autoscalePolicy == null) {
+            return null;
+        }
+
+        AutoscalePolicy autoscalePolicyBean = new AutoscalePolicy();
+        autoscalePolicyBean.setId(autoscalePolicy.getId());
+        autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
+        autoscalePolicyBean.setIsPublic(autoscalePolicy.getIsPublic());
+        autoscalePolicyBean.setDisplayName(autoscalePolicy.getDisplayName());
+        autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
+        autoscalePolicyBean.setInstanceRoundingFactor(autoscalePolicy.getInstanceRoundingFactor());
+        if (autoscalePolicy.getLoadThresholds() != null) {
+            autoscalePolicyBean.setLoadThresholds(populateLoadThresholds(autoscalePolicy.getLoadThresholds()));
+        }
+
+        return autoscalePolicyBean;
+    }
+
+    private static LoadThresholds populateLoadThresholds(org.apache.stratos.autoscaler.stub.autoscale.policy.LoadThresholds
+                                                                 loadThresholds) {
+
+        LoadThresholds loadThresholdBean = new LoadThresholds();
+        if (loadThresholds.getLoadAverage() != null) {
+            LoadAverageThresholds loadAverage = new LoadAverageThresholds();
+            loadAverage.setThreshold(loadThresholds.getLoadAverage().getUpperLimit());
+            loadAverage.setLowerLimit(loadThresholds.getLoadAverage().getLowerLimit());
+            loadThresholdBean.setLoadAverage(loadAverage);
+        }
+        if (loadThresholds.getMemoryConsumption() != null) {
+            MemoryConsumptionThresholds memoryConsumption = new MemoryConsumptionThresholds();
+            memoryConsumption.setThreshold(loadThresholds.getMemoryConsumption().getUpperLimit());
+            memoryConsumption.setLowerLimit(loadThresholds.getMemoryConsumption().getLowerLimit());
+            loadThresholdBean.setMemoryConsumption(memoryConsumption);
+        }
+        if (loadThresholds.getRequestsInFlight() != null) {
+            RequestsInFlightThresholds requestsInFlight = new RequestsInFlightThresholds();
+            requestsInFlight.setThreshold(loadThresholds.getRequestsInFlight().getUpperLimit());
+            requestsInFlight.setLowerLimit(loadThresholds.getRequestsInFlight().getLowerLimit());
+            loadThresholdBean.setRequestsInFlight(requestsInFlight);
+        }
+
+        return loadThresholdBean;
+    }
+
+    public static DeploymentPolicy[] populateDeploymentPolicyPojos(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[]
+                                                                           deploymentPolicies) {
+        DeploymentPolicy[] deploymentPolicyBeans;
+        if (deploymentPolicies == null) {
+            return null;
+        }
+
+        deploymentPolicyBeans = new DeploymentPolicy[deploymentPolicies.length];
+        for (int i = 0; i < deploymentPolicies.length; i++) {
+            deploymentPolicyBeans[i] = populateDeploymentPolicyPojo(deploymentPolicies[i]);
+        }
+
+        return deploymentPolicyBeans;
+    }
+
+    public static DeploymentPolicy populateDeploymentPolicyPojo(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy
+                                                                        deploymentPolicy) {
+
+        if (deploymentPolicy == null) {
+            return null;
+        }
+
+        DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
+        deploymentPolicyBean.setDescription(deploymentPolicy.getDescription());
+        deploymentPolicyBean.setPublic(deploymentPolicy.getIsPublic());
+        deploymentPolicyBean.setApplicationId(deploymentPolicy.getApplicationId());
+        return deploymentPolicyBean;
+    }
+
+    public static ApplicationLevelNetworkPartition populatePartitionGroupPojo(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition
+                                                                                      partitionGroup) {
+
+        ApplicationLevelNetworkPartition networkPartitionBean = new ApplicationLevelNetworkPartition();
+        if (partitionGroup == null) {
+            return networkPartitionBean;
+        }
+
+        networkPartitionBean.setId(partitionGroup.getId());
+        //FIXME update with new deployment policy pattern
+//        networkPartitionBean.partitionAlgo = partitionGroup.getPartitionAlgo();
+//        if (partitionGroup.getPartitions() != null && partitionGroup.getPartitions().length > 0) {
+//            partitionGroupBean.partition = getPartitionList(partitionGroup.getPartitions());
+//        }
+
+        return networkPartitionBean;
+    }
+
+    public static ApplicationLevelNetworkPartition[] populatePartitionGroupPojos(org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups) {
+
+        ApplicationLevelNetworkPartition[] networkPartitionGroupsBeans;
+        if (partitionGroups == null) {
+            networkPartitionGroupsBeans = new ApplicationLevelNetworkPartition[0];
+            return networkPartitionGroupsBeans;
+        }
+
+        networkPartitionGroupsBeans = new ApplicationLevelNetworkPartition[partitionGroups.length];
+
+        for (int i = 0; i < partitionGroups.length; i++) {
+            networkPartitionGroupsBeans[i] = populatePartitionGroupPojo(partitionGroups[i]);
+        }
+
+        return networkPartitionGroupsBeans;
+    }
+
+    private static List<Partition> getPartitionList(org.apache.stratos.cloud.controller.stub.domain.Partition[]
+                                                            partitions) {
+
+        List<Partition> partitionList = new ArrayList<Partition>();
+        for (int i = 0; i < partitions.length; i++) {
+            Partition partition = new Partition();
+            partition.setId(partitions[i].getId());
+            partition.setProvider(partitions[i].getProvider());
+            /*partition.partitionMin = partitions[i].getPartitionMin();
+            partition.partitionMax = partitions[i].getPartitionMax();*/
+            if (partitions[i].getProperties() != null) {
+                partition.setProperty(getPropertyBeans(partitions[i].getProperties()));
+            }
+            partitionList.add(partition);
+        }
+
+        return partitionList;
+    }
+
+    public static ServiceDefinitionBean convertToServiceDefinitionBean(Service service) {
+
+        ServiceDefinitionBean serviceDefinitionBean = new ServiceDefinitionBean();
+        serviceDefinitionBean.setCartridgeType(service.getType());
+        serviceDefinitionBean.setTenantRange(service.getTenantRange());
+        serviceDefinitionBean.setClusterDomain(service.getClusterId());
+        serviceDefinitionBean.setIsPublic(service.getIsPublic());
+        serviceDefinitionBean.setAutoscalingPolicyName(service.getAutoscalingPolicyName());
+        serviceDefinitionBean.setDeploymentPolicyName(service.getDeploymentPolicyName());
+
+        return serviceDefinitionBean;
+    }
+
+    public static List<ServiceDefinitionBean> convertToServiceDefinitionBeans(Collection<Service> services) {
+
+        List<ServiceDefinitionBean> serviceDefinitionBeans = new ArrayList<ServiceDefinitionBean>();
+
+        for (Service service : services) {
+            serviceDefinitionBeans.add(convertToServiceDefinitionBean(service));
+        }
+        return serviceDefinitionBeans;
+    }
+
+    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup convertToCCKubernetesGroupPojo(KubernetesGroup kubernetesGroupBean) {
+
+        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup = new
+                org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup();
+
+        kubernetesGroup.setGroupId(kubernetesGroupBean.getGroupId());
+        kubernetesGroup.setDescription(kubernetesGroupBean.getDescription());
+        kubernetesGroup.setKubernetesMaster(convertToCCKubernetesMasterPojo(kubernetesGroupBean.getKubernetesMaster()));
+        kubernetesGroup.setPortRange(convertToASPortRange(kubernetesGroupBean.getPortRange()));
+        kubernetesGroup.setKubernetesHosts(convertToASKubernetesHostsPojo(kubernetesGroupBean.getKubernetesHosts()));
+        kubernetesGroup.setProperties((getCCProperties(kubernetesGroupBean.getProperty())));
+
+        return kubernetesGroup;
+    }
+
+    private static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[] convertToASKubernetesHostsPojo(List<KubernetesHost> kubernetesHosts) {
+        if (kubernetesHosts == null || kubernetesHosts.isEmpty()) {
+            return null;
+        }
+        int kubernetesHostCount = kubernetesHosts.size();
+        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[]
+                kubernetesHostsArr = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[kubernetesHostCount];
+        for (int i = 0; i < kubernetesHostCount; i++) {
+            KubernetesHost kubernetesHostBean = kubernetesHosts.get(i);
+            kubernetesHostsArr[i] = convertToCCKubernetesHostPojo(kubernetesHostBean);
+        }
+        return kubernetesHostsArr;
+    }
+
+
+    private static org.apache.stratos.cloud.controller.stub.kubernetes.PortRange convertToASPortRange(PortRange portRangeBean) {
+        if (portRangeBean == null) {
+            return null;
+        }
+        org.apache.stratos.cloud.controller.stub.kubernetes.PortRange
+                portRange = new org.apache.stratos.cloud.controller.stub.kubernetes.PortRange();
+        portRange.setLower(portRangeBean.getLower());
+        portRange.setUpper(portRangeBean.getUpper());
+        return portRange;
+    }
+
+    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost convertToCCKubernetesHostPojo(KubernetesHost kubernetesHostBean) {
+        if (kubernetesHostBean == null) {
+            return null;
+        }
+
+        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost
+                kubernetesHost = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost();
+        kubernetesHost.setHostId(kubernetesHostBean.getHostId());
+        kubernetesHost.setHostIpAddress(kubernetesHostBean.getHostIpAddress());
+        kubernetesHost.setHostname(kubernetesHostBean.getHostname());
+        kubernetesHost.setProperties(getCCProperties(kubernetesHostBean.getProperty()));
+
+        return kubernetesHost;
+    }
+
+    public static org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster convertToCCKubernetesMasterPojo(KubernetesMaster kubernetesMasterBean) {
+        if (kubernetesMasterBean == null) {
+            return null;
+        }
+
+        org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster
+                kubernetesMaster = new org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster();
+        kubernetesMaster.setHostId(kubernetesMasterBean.getHostId());
+        kubernetesMaster.setHostIpAddress(kubernetesMasterBean.getHostIpAddress());
+        kubernetesMaster.setHostname(kubernetesMasterBean.getHostname());
+        kubernetesMaster.setEndpoint(kubernetesMasterBean.getEndpoint());
+        kubernetesMaster.setProperties(getCCProperties(kubernetesMasterBean.getProperty()));
+
+        return kubernetesMaster;
+    }
+
+    public static KubernetesGroup[] populateKubernetesGroupsPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup[] kubernetesGroups) {
+
+        if (kubernetesGroups == null) {
+            return null;
+        }
+        KubernetesGroup[] kubernetesGroupsBean = new KubernetesGroup[kubernetesGroups.length];
+        for (int i = 0; i < kubernetesGroups.length; i++) {
+            kubernetesGroupsBean[i] = populateKubernetesGroupPojo(kubernetesGroups[i]);
+        }
+        return kubernetesGroupsBean;
+    }
+
+    public static KubernetesGroup populateKubernetesGroupPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup) {
+        if (kubernetesGroup == null) {
+            return null;
+        }
+        KubernetesGroup kubernetesGroupBean = new KubernetesGroup();
+        kubernetesGroupBean.setGroupId(kubernetesGroup.getGroupId());
+        kubernetesGroupBean.setDescription(kubernetesGroup.getDescription());
+        kubernetesGroupBean.setPortRange(populatePortRangePojo(kubernetesGroup.getPortRange()));
+        kubernetesGroupBean.setKubernetesHosts(populateKubernetesHostsPojo(kubernetesGroup.getKubernetesHosts()));
+        kubernetesGroupBean.setKubernetesMaster(populateKubernetesMasterPojo(kubernetesGroup.getKubernetesMaster()));
+        kubernetesGroupBean.setProperty(populateCCProperties(kubernetesGroup.getProperties()));
+        return kubernetesGroupBean;
+    }
+
+    public static KubernetesMaster populateKubernetesMasterPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster kubernetesMaster) {
+        if (kubernetesMaster == null) {
+            return null;
+        }
+        KubernetesMaster kubernetesMasterBean = new KubernetesMaster();
+        kubernetesMasterBean.setHostId(kubernetesMaster.getHostId());
+        kubernetesMasterBean.setHostname(kubernetesMaster.getHostname());
+        kubernetesMasterBean.setHostIpAddress(kubernetesMaster.getHostIpAddress());
+        kubernetesMasterBean.setProperty(populateCCProperties(kubernetesMaster.getProperties()));
+        kubernetesMasterBean.setEndpoint(kubernetesMaster.getEndpoint());
+        return kubernetesMasterBean;
+    }
+
+    public static List<KubernetesHost> populateKubernetesHostsPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[] kubernetesHosts) {
+        if (kubernetesHosts == null) {
+            return null;
+        }
+        List<KubernetesHost> kubernetesHostList = new ArrayList<KubernetesHost>();
+        for (int i = 0; i < kubernetesHosts.length; i++) {
+            kubernetesHostList.add(populateKubernetesHostPojo(kubernetesHosts[i]));
+        }
+        return kubernetesHostList;
+    }
+
+    private static KubernetesHost populateKubernetesHostPojo(org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost) {
+        if (kubernetesHost == null) {
+            return null;
+        }
+        KubernetesHost kubernetesHostBean = new KubernetesHost();
+        kubernetesHostBean.setHostId(kubernetesHost.getHostId());
+        kubernetesHostBean.setHostname(kubernetesHost.getHostname());
+        kubernetesHostBean.setHostIpAddress(kubernetesHost.getHostIpAddress());
+        kubernetesHostBean.setProperty(populateCCProperties(kubernetesHost.getProperties()));
+        return kubernetesHostBean;
+    }
+
+    private static List<PropertyBean> populateASProperties(org.apache.stratos.autoscaler.stub.Properties properties) {
+        if (properties == null || properties.getProperties() == null) {
+            return null;
+        }
+        List<PropertyBean> propertyBeanList = new ArrayList<PropertyBean>();
+        for (int i = 0; i < properties.getProperties().length; i++) {
+            propertyBeanList.add(populateASProperty(properties.getProperties()[i]));
+        }
+        return propertyBeanList;
+    }
+    
+    private static List<PropertyBean> populateCCProperties(org.apache.stratos.cloud.controller.stub.Properties properties) {
+        if (properties == null || properties.getProperties() == null) {
+            return null;
+        }
+        List<PropertyBean> propertyBeanList = new ArrayList<PropertyBean>();
+        for (int i = 0; i < properties.getProperties().length; i++) {
+            propertyBeanList.add(populateCCProperty(properties.getProperties()[i]));
+        }
+        return propertyBeanList;
+    }
+
+    private static PropertyBean populateASProperty(org.apache.stratos.autoscaler.stub.Property propertyE) {
+        if (propertyE == null) {
+            return null;
+        }
+        PropertyBean propertyBean = new PropertyBean();
+        propertyBean.setName(propertyE.getName());
+        propertyBean.setValue(propertyE.getValue());
+        return propertyBean;
+    }
+    
+    private static PropertyBean populateCCProperty(org.apache.stratos.cloud.controller.stub.Property propertyE) {
+        if (propertyE == null) {
+            return null;
+        }
+        PropertyBean propertyBean = new PropertyBean();
+        propertyBean.setName(propertyE.getName());
+        propertyBean.setValue(propertyE.getValue());
+        return propertyBean;
+    }
+
+    private static PortRange populatePortRangePojo(org.apache.stratos.cloud.controller.stub.kubernetes.PortRange portRange) {
+        if (portRange == null) {
+            return null;
+        }
+        PortRange portRangeBean = new PortRange();
+        portRangeBean.setUpper(portRange.getUpper());
+        portRangeBean.setLower(portRange.getLower());
+        return portRangeBean;
+    }
+
+    public static ApplicationContext convertApplicationDefinitionToApplicationContext(ApplicationDefinition applicationDefinition) {
+
+        org.apache.stratos.autoscaler.stub.pojo.ApplicationContext applicationContext =
+                new org.apache.stratos.autoscaler.stub.pojo.ApplicationContext();
+        applicationContext.setApplicationId(applicationDefinition.getApplicationId());
+        applicationContext.setName(applicationDefinition.getName());
+        applicationContext.setDescription(applicationDefinition.getDescription());
+        applicationContext.setAlias(applicationDefinition.getAlias());
+        applicationContext.setStatus(applicationDefinition.getStatus());
+
+        // convert and set components
+        if (applicationDefinition.getComponents() != null) {
+            org.apache.stratos.autoscaler.stub.pojo.ComponentContext componentContext =
+                    new org.apache.stratos.autoscaler.stub.pojo.ComponentContext();
+                      
+            // top level Groups
+            if (applicationDefinition.getComponents().getGroups() != null) {
+                componentContext.setGroupContexts(
+                        convertGroupDefinitionsToStubGroupContexts(applicationDefinition.getComponents().getGroups()));
+            }
+            // top level dependency information
+            if (applicationDefinition.getComponents().getDependencies() != null) {
+                componentContext.setDependencyContext(
+                        convertDependencyDefinitionsToDependencyContexts(applicationDefinition.getComponents().getDependencies()));
+            }
+            // top level cartridge context information
+            if (applicationDefinition.getComponents().getCartridges() != null) {
+                componentContext.setCartridgeContexts(
+                        convertCartridgeDefinitionsToCartridgeContexts(applicationDefinition.getComponents().getCartridges()));
+            }
+            applicationContext.setComponents(componentContext);
+        }
+        return applicationContext;
+    }
+
+    public static ApplicationDefinition convertApplicationContextToApplicationDefinition(
+            ApplicationContext applicationContext) {
+        if(applicationContext == null) {
+            return null;
+        }
+
+        ApplicationDefinition applicationDefinition = new ApplicationDefinition();
+        applicationDefinition.setApplicationId(applicationContext.getApplicationId());
+        applicationDefinition.setName(applicationContext.getName());
+        applicationDefinition.setDescription(applicationContext.getDescription());
+        applicationDefinition.setStatus(applicationContext.getStatus());
+        applicationDefinition.setAlias(applicationContext.getAlias());
+
+        // convert and set components
+        if (applicationContext.getComponents() != null) {
+            applicationDefinition.setComponents(new ComponentDefinition());
+            // top level Groups
+            if (applicationContext.getComponents().getGroupContexts() != null) {
+                applicationDefinition.getComponents().setGroups(
+                        convertGroupContextsToGroupDefinitions(applicationContext.getComponents().getGroupContexts()));
+            }
+            // top level dependency information
+            if (applicationContext.getComponents().getDependencyContext() != null) {
+                applicationDefinition.getComponents().setDependencies(
+                        convertDependencyContextsToDependencyDefinitions(applicationContext.getComponents().getDependencyContext()));
+            }
+            // top level cartridge context information
+            if (applicationContext.getComponents().getCartridgeContexts() != null) {
+                applicationDefinition.getComponents().setCartridges(
+                        convertCartridgeContextsToCartridgeDefinitions(applicationContext.getComponents().getCartridgeContexts()));
+            }
+        }
+        return applicationDefinition;
+    }
+
+    private static List<GroupDefinition> convertGroupContextsToGroupDefinitions(GroupContext[] groupContexts) {
+        List<GroupDefinition> groupDefinitions = new ArrayList<GroupDefinition>();
+        if(groupContexts != null) {
+            for (GroupContext groupContext : groupContexts) {
+                if(groupContext != null) {
+                    GroupDefinition groupDefinition = new GroupDefinition();
+                    groupDefinition.setAlias(groupContext.getAlias());
+                    groupDefinition.setGroupMaxInstances(groupContext.getGroupMaxInstances());
+                    groupDefinition.setGroupMinInstances(groupContext.getGroupMinInstances());
+                    groupDefinition.setGroupScalingEnabled(groupContext.getGroupScalingEnabled());
+                    groupDefinition.setName(groupContext.getName());
+                    groupDefinition.setGroups(convertGroupContextsToGroupDefinitions(groupContext.getGroupContexts()));
+                    groupDefinition.setCartridges(convertCartridgeContextsToCartridgeDefinitions(
+                            groupContext.getCartridgeContexts()));
+                    groupDefinitions.add(groupDefinition);
+                }
+            }
+        }
+        return groupDefinitions;
+    }
+
+    private static DependencyDefinitions convertDependencyContextsToDependencyDefinitions(DependencyContext dependencyContext) {
+        DependencyDefinitions dependencyDefinitions = new DependencyDefinitions();
+        dependencyDefinitions.setTerminationBehaviour(dependencyContext.getTerminationBehaviour());
+
+            if(dependencyContext.getStartupOrdersContexts() != null) {
+                List<String> startupOrders = new ArrayList<String>();
+                for(String item : dependencyContext.getStartupOrdersContexts()) {
+                    startupOrders.add(item);
+                }
+                dependencyDefinitions.setStartupOrders(startupOrders);
+            }
+            if (dependencyContext.getScalingDependents() != null) {
+                List<String> scalingDependents = new ArrayList<String>();
+                for(String item : dependencyContext.getScalingDependents()) {
+                    scalingDependents.add(item);
+                }
+                dependencyDefinitions.setScalingDependants(scalingDependents);
+            }
+        return dependencyDefinitions;
+    }
+
+    private static List<CartridgeDefinition> convertCartridgeContextsToCartridgeDefinitions(CartridgeContext[] cartridgeContexts) {
+        List<CartridgeDefinition> cartridgeDefinitions = new ArrayList<CartridgeDefinition>();
+        if(cartridgeContexts != null) {
+            for (CartridgeContext cartridgeContext : cartridgeContexts) {
+                if(cartridgeContext != null) {
+                    CartridgeDefinition cartridgeDefinition = new CartridgeDefinition();
+                    cartridgeDefinition.setType(cartridgeContext.getType());
+                    cartridgeDefinition.setCartridgeMin(cartridgeContext.getCartridgeMin());
+                    cartridgeDefinition.setCartridgeMax(cartridgeContext.getCartridgeMax());
+                    cartridgeDefinition.setSubscribableInfo(convertSubscribableInfoContextToSubscribableInfo(cartridgeContext.getSubscribableInfoContext()));
+                    cartridgeDefinitions.add(cartridgeDefinition);
+                }
+            }
+        }
+        return cartridgeDefinitions;
+    }
+
+    private static SubscribableInfo convertSubscribableInfoContextToSubscribableInfo(
+            SubscribableInfoContext subscribableInfoContext) {
+        SubscribableInfo subscribableInfo = new SubscribableInfo();
+        subscribableInfo.setAlias(subscribableInfoContext.getAlias());
+        subscribableInfo.setAutoscalingPolicy(subscribableInfoContext.getAutoscalingPolicy());
+        if(!CommonUtil.isEmptyArray(subscribableInfoContext.getDependencyAliases())) {
+            subscribableInfo.setDependencyAliases(subscribableInfoContext.getDependencyAliases());
+        }
+        subscribableInfo.setDeploymentPolicy(subscribableInfoContext.getDeploymentPolicy());
+        subscribableInfo.setMinMembers(subscribableInfoContext.getMinMembers());
+        subscribableInfo.setMaxMembers(subscribableInfoContext.getMaxMembers());
+        subscribableInfo.setPrivateRepo(subscribableInfoContext.getPrivateRepo());
+        subscribableInfo.setProperty(convertStubPropertiesToPropertyBeanList(subscribableInfoContext.getProperties()));
+        subscribableInfo.setRepoPassword(subscribableInfoContext.getRepoPassword());
+        subscribableInfo.setRepoUsername(subscribableInfoContext.getRepoUsername());
+        subscribableInfo.setRepoUrl(subscribableInfoContext.getRepoUrl());
+        return subscribableInfo;
+    }
+
+    private static List<org.apache.stratos.manager.composite.application.beans.PropertyBean>
+        convertStubPropertiesToPropertyBeanList(org.apache.stratos.autoscaler.stub.Properties properties) {
+
+        List<org.apache.stratos.manager.composite.application.beans.PropertyBean> propertyBeanList =
+                new ArrayList<org.apache.stratos.manager.composite.application.beans.PropertyBean>();
+        if((properties != null) && (properties.getProperties() != null)) {
+            for (org.apache.stratos.autoscaler.stub.Property property : properties.getProperties()) {
+                if(property != null) {
+                    org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean =
+                            new org.apache.stratos.manager.composite.application.beans.PropertyBean();
+                    propertyBean.setName(property.getName());
+                    propertyBean.setValue(property.getValue());
+                    propertyBeanList.add(propertyBean);
+                }
+            }
+        }
+        return propertyBeanList;
+    }
+
+    private static CartridgeContext[] convertCartridgeDefinitionsToCartridgeContexts(
+            List<CartridgeDefinition> cartridges) {
+
+    	CartridgeContext[] cartridgeContextArray = new CartridgeContext[cartridges.size()];
+    	int i = 0;
+    	for (CartridgeDefinition cartridgeDefinition : cartridges) {
+    		CartridgeContext context = new CartridgeContext();
+    		context.setCartridgeMax(cartridgeDefinition.getCartridgeMax());
+    		context.setCartridgeMin(cartridgeDefinition.getCartridgeMin());
+    		context.setType(cartridgeDefinition.getType());
+    		context.setSubscribableInfoContext(convertSubscribableInfo(cartridgeDefinition.getSubscribableInfo()));  
+    		cartridgeContextArray[i++] = context;
+        }
+    	
+	    return cartridgeContextArray;
+    }
+
+	private static SubscribableInfoContext convertSubscribableInfo(
+            SubscribableInfo subscribableInfo) {
+		SubscribableInfoContext infoContext = new SubscribableInfoContext();
+		infoContext.setAlias(subscribableInfo.getAlias());
+		infoContext.setAutoscalingPolicy(subscribableInfo.getAutoscalingPolicy());
+		infoContext.setDependencyAliases(subscribableInfo.getDependencyAliases());
+		infoContext.setDeploymentPolicy(subscribableInfo.getDeploymentPolicy());
+		infoContext.setMaxMembers(subscribableInfo.getMaxMembers());
+		infoContext.setMinMembers(subscribableInfo.getMinMembers());
+		infoContext.setRepoPassword(subscribableInfo.getRepoPassword());
+		infoContext.setRepoUrl(subscribableInfo.getRepoUrl());
+		infoContext.setRepoUsername(subscribableInfo.getRepoUsername());
+		infoContext.setProperties(convertPropertyBeansToStubProperties(subscribableInfo.getProperty()));
+		
+	    return infoContext;
+    }
+
+	private static org.apache.stratos.autoscaler.stub.Properties convertPropertyBeansToStubProperties(
+            List<org.apache.stratos.manager.composite.application.beans.PropertyBean> property) {
+		org.apache.stratos.autoscaler.stub.Properties prop = new org.apache.stratos.autoscaler.stub.Properties();
+		if (property != null) {
+			for (org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean : property) {
+				org.apache.stratos.autoscaler.stub.Property p = new org.apache.stratos.autoscaler.stub.Property();
+				p.setName(propertyBean.getName());
+				p.setValue(propertyBean.getValue());
+				prop.addProperties(p);
+			}
+		}
+	    return prop;
+    }
+
+	
+    private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyDefinitions dependencyDefinitions) {
+        DependencyContext dependencyContext = new DependencyContext();
+        dependencyContext.setTerminationBehaviour(dependencyDefinitions.getTerminationBehaviour());
+
+        if (dependencyDefinitions != null){
+            if(dependencyDefinitions.getStartupOrders() != null) {
+                String[] startupOrders = new String[dependencyDefinitions.getStartupOrders().size()];
+                startupOrders = dependencyDefinitions.getStartupOrders().toArray(startupOrders);
+                dependencyContext.setStartupOrdersContexts(startupOrders);
+            }
+            if (dependencyDefinitions.getScalingDependants() != null) {
+                String[] scalingDependents = new String[dependencyDefinitions.getScalingDependants().size()];
+                scalingDependents = dependencyDefinitions.getScalingDependants().toArray(scalingDependents);
+                dependencyContext.setScalingDependents(scalingDependents);
+            }
+        }
+        return dependencyContext;
+    }
+
+    private static org.apache.stratos.autoscaler.stub.pojo.GroupContext[]
+        convertGroupDefinitionsToStubGroupContexts(List<GroupDefinition> groupDefinitions) {
+
+        GroupContext[] groupContexts = new GroupContext[groupDefinitions.size()];
+        int i = 0;
+        for (GroupDefinition groupDefinition : groupDefinitions) {
+            GroupContext groupContext = new GroupContext();
+            groupContext.setName(groupDefinition.getName());
+            groupContext.setAlias(groupDefinition.getAlias());
+            groupContext.setGroupMaxInstances(groupDefinition.getGroupMaxInstances());
+            groupContext.setGroupMinInstances(groupDefinition.getGroupMinInstances());
+            groupContext.setGroupScalingEnabled(groupDefinition.isGroupScalingEnabled);
+           
+            // Groups
+            if (groupDefinition.getGroups() != null) {
+                groupContext.setGroupContexts(convertGroupDefinitionsToStubGroupContexts(groupDefinition.getGroups()));
+            }
+            
+            groupContext.setCartridgeContexts(convertCartridgeDefinitionsToCartridgeContexts(groupDefinition.getCartridges()));
+            groupContexts[i++] = groupContext;
+        }
+
+        return groupContexts;
+    }
+
+
+    public static ApplicationBean applicationToBean(Application application) {
+        if (application == null) {
+            return null;
+        }
+
+        ApplicationBean applicationBean = new ApplicationBean();
+        applicationBean.setId(application.getUniqueIdentifier());
+        applicationBean.setName(application.getName());
+        applicationBean.setDescription(application.getDescription());
+        applicationBean.setTenantDomain(application.getTenantDomain());
+        applicationBean.setTenantAdminUsername(application.getTenantAdminUserName());
+        applicationBean.setInstances(setApplicationInstances(application));
+        return applicationBean;
+    }
+
+    private static List<Instance> setApplicationInstances(
+            Application application) {
+    	List<Instance> applicationInstanceList = new ArrayList<Instance>();
+    	Collection<ApplicationInstance> applicationInstancesInTopology = 
+    			application.getInstanceIdToInstanceContextMap().values();
+    	
+    	if(applicationInstancesInTopology != null) {
+    		for (ApplicationInstance applicationInstance : applicationInstancesInTopology) {
+    			Instance instance = new Instance();
+    			instance.setInstanceId(applicationInstance.getInstanceId());
+    			instance.setStatus(applicationInstance.getStatus().toString());
+    			applicationInstanceList.add(instance);
+            }
+    	}
+    	
+	    return applicationInstanceList;
+    }
+
+	public static GroupBean toGroupBean(Group group) {
+        if (group == null) {
+            return null;
+        }
+
+        GroupBean groupBean = new GroupBean();
+        groupBean.setInstances(setGroupInstances(group));
+        groupBean.setAlias(group.getUniqueIdentifier());
+        groupBean.setAutoScalingPolicy(group.getAutoscalingPolicy());
+        return groupBean;
+    }
+
+	private static List<Instance> setGroupInstances(Group group) {
+	    List<Instance> instanceList = new ArrayList<Instance>();
+	    Collection<GroupInstance> instancesInTopology = group.getInstanceIdToInstanceContextMap().values();
+	    if(instancesInTopology != null) {
+	    	for (GroupInstance groupInstance : instancesInTopology) {
+	            Instance instance = new Instance();
+	            instance.setStatus(groupInstance.getStatus().toString());
+	            instance.setInstanceId(groupInstance.getInstanceId());
+	            instanceList.add(instance);
+            }
+	    }
+	    return instanceList;
+    }
+}