You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/01 11:58:57 UTC

[03/12] cleaning up CC, find bug amendments, removing deprecated classes

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
deleted file mode 100644
index 540ec2c..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
+++ /dev/null
@@ -1,563 +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.cloud.controller.axiom.parser;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNode;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
-import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
-import org.apache.stratos.cloud.controller.pojo.AppType;
-import org.apache.stratos.cloud.controller.pojo.Cartridge;
-import org.apache.stratos.cloud.controller.pojo.IaasProvider;
-import org.apache.stratos.cloud.controller.pojo.PortMapping;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
-
-/**
- * Parse the cartridge definition files.
- * 
- * @author nirmal
- * 
- */
-public class ServiceConfigParser {
-    private static final Log log = LogFactory.getLog(ServiceConfigParser.class);
-
-    /**
-     * Parse the config file.
-     * 
-     * @param elt
-     *            document element.
-     * @throws MalformedConfigurationFileException
-     */
-    public static List<Cartridge>
-        parse(String file, OMElement elt) throws MalformedConfigurationFileException {
-
-        return extractCartridges(file, elt);
-    }
-
-    public static List<ServiceContext> extractServiceContexts(File file, OMElement elt) {
-
-        String fileName = file.getAbsolutePath();
-        List<ServiceContext> serviceContextList = new ArrayList<ServiceContext>();
-
-        // services can be found from this XPATH
-        String xpath = CloudControllerConstants.SERVICES_ELEMENT_XPATH;
-        List<?> serviceNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-
-        if (serviceNodes == null || serviceNodes.isEmpty()) {
-            // or from this XPATH
-            xpath = CloudControllerConstants.SERVICE_ELEMENT_XPATH;
-            serviceNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-        }
-
-        if (serviceNodes == null || serviceNodes.isEmpty()) {
-            log.warn("No service found in this configuration file : " + fileName);
-            return serviceContextList;
-        }
-
-        for (Object obj : serviceNodes) {
-            ServiceContext serviceCtxt = new ServiceContext();
-
-            // set the definition file
-            serviceCtxt.setFile(file);
-
-            if (obj instanceof OMNode) {
-                OMNode serviceNode = (OMNode) obj;
-
-                if (serviceNode.getType() == OMNode.ELEMENT_NODE) {
-
-                    OMElement node = (OMElement) serviceNode;
-
-                    if (node.getAttribute(new QName(CloudControllerConstants.SERVICE_DOMAIN_ATTR)) == null) {
-                        String msg =
-                                     "Essential '" + CloudControllerConstants.SERVICE_DOMAIN_ATTR +
-                                             "' " + "attribute of '" +
-                                             CloudControllerConstants.SERVICE_ELEMENT +
-                                             "' element cannot be found in " + fileName;
-
-                        handleException(msg);
-                    }
-
-                    // set domain name
-                    serviceCtxt.setClusterId(node.getAttribute(new QName(
-                                                                         CloudControllerConstants.SERVICE_DOMAIN_ATTR))
-                                                 .getAttributeValue());
-                    // set tenant range
-                    serviceCtxt.setTenantRange(node.getAttribute(new QName(
-                                                                           CloudControllerConstants.SERVICE_TENANT_RANGE_ATTR))
-                                                   .getAttributeValue());
-
-                    serviceCtxt.setAutoScalerPolicyName(node.getAttribute(new QName(
-                                                                                    CloudControllerConstants.POLICY_NAME))
-                                                            .getAttributeValue());
-
-                    OMNode cartridgeNode =
-                                           AxiomXpathParserUtil.getFirstMatchingNode(xpath +
-                                                                                             CloudControllerConstants.CARTRIDGE_ELEMENT_XPATH,
-                                                                                     node);
-
-                    if (cartridgeNode != null && cartridgeNode.getType() == OMNode.ELEMENT_NODE) {
-
-                        OMElement cartridgeElt = (OMElement) cartridgeNode;
-
-                        String type =
-                                      cartridgeElt.getAttribute(new QName(
-                                                                          CloudControllerConstants.TYPE_ATTR))
-                                                  .getAttributeValue();
-
-                        if ("".equals(type)) {
-                            String msg =
-                                         "Essential '" + CloudControllerConstants.TYPE_ATTR + "' " +
-                                                 " attribute of '" +
-                                                 CloudControllerConstants.CARTRIDGE_ELEMENT +
-                                                 "' of '" +
-                                                 CloudControllerConstants.SERVICE_ELEMENT +
-                                                 "' element cannot be found in " + fileName;
-
-                            handleException(msg);
-                        }
-
-                        // set Cartridge type
-                        serviceCtxt.setCartridgeType(type);
-
-                    }
-                    if (serviceCtxt.getCartridgeType() == null) {
-                        String msg =
-                                     "Essential '" + CloudControllerConstants.CARTRIDGE_ELEMENT +
-                                             "' element" + " has not specified in " + fileName;
-                        handleException(msg);
-                    }
-
-                    // load payload
-                    loadPayload(AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                              CloudControllerConstants.PAYLOAD_ELEMENT_XPATH,
-                                                                      node), serviceCtxt);
-
-                    // load host name
-                    loadHostName(AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                               CloudControllerConstants.HOST_ELEMENT_XPATH,
-                                                                       node), serviceCtxt);
-
-                    // load properties
-                    IaasProviderConfigParser.loadProperties(fileName, node,
-                                                            serviceCtxt.getProperties());
-
-                }
-            }
-
-            FasterLookUpDataHolder.getInstance().addServiceContext(serviceCtxt);
-            // add each domain specific template to list
-            serviceContextList.add(serviceCtxt);
-        }
-
-        return serviceContextList;
-
-    }
-
-    private static void loadHostName(final List<OMNode> nodes, final ServiceContext serviceCtxt) {
-
-        if (nodes == null || nodes.isEmpty()) {
-            return;
-        }
-
-        // read host element
-        if (nodes.get(0).getType() == OMNode.ELEMENT_NODE) {
-
-            OMElement node = (OMElement) nodes.get(0);
-
-            if (node.getText() != null) {
-                serviceCtxt.setHostName(node.getText());
-            }
-
-        }
-    }
-
-    private static void loadPayload(final List<OMNode> nodes, final ServiceContext serviceCtxt) {
-
-        if (nodes == null || nodes.isEmpty()) {
-            return;
-        }
-
-        // read payload element
-        if (nodes.get(0).getType() == OMNode.ELEMENT_NODE) {
-
-            OMElement node = (OMElement) nodes.get(0);
-
-            if (node.getText() != null) {
-                StringBuilder payload = new StringBuilder(node.getText());
-                serviceCtxt.setPayload(payload);
-
-            }
-
-        }
-
-    }
-
-    private static List<Cartridge>
-        extractCartridges(String file, OMElement elt) throws MalformedConfigurationFileException {
-
-        FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance();
-
-        List<IaasProvider> iaasProviders = dataHolder.getIaasProviders();
-
-        if (iaasProviders == null) {
-            dataHolder.setIaasProviders((iaasProviders = new ArrayList<IaasProvider>()));
-        }
-
-        List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
-        String xpath = CloudControllerConstants.CARTRIDGES_ELEMENT_XPATH;
-
-        // cartridges can be found from this XPATH
-        List<?> cartridgeNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-
-        if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
-            // or from this XPATH
-            xpath = CloudControllerConstants.CARTRIDGE_ELEMENT_XPATH;
-            cartridgeNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-        }
-
-        if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
-            log.warn("No cartridge found in this configuration file : " + file);
-            return cartridges;
-        }
-
-        for (Object obj : cartridgeNodes) {
-
-            if (obj instanceof OMNode) {
-                OMNode cartridgeNode = (OMNode) obj;
-
-                if (cartridgeNode.getType() == OMNode.ELEMENT_NODE) {
-
-                    OMElement cartridgeElement = (OMElement) cartridgeNode;
-
-                    // retrieve Attributes of a Cartridge definition
-                    String type =
-                                  cartridgeElement.getAttributeValue(new QName(
-                                                                               CloudControllerConstants.TYPE_ATTR));
-                    String host =
-                                  cartridgeElement.getAttributeValue(new QName(
-                                                                               CloudControllerConstants.HOST_ATTR));
-                    String provider =
-                                      cartridgeElement.getAttributeValue(new QName(
-                                                                                   CloudControllerConstants.PROVIDER_ATTR));
-
-                    String version =
-                                     cartridgeElement.getAttributeValue(new QName(
-                                                                                  CloudControllerConstants.VERSION_ATTR));
-
-                    boolean multiTenant =
-                                          Boolean.valueOf(cartridgeElement.getAttributeValue(new QName(
-                                                                                                       CloudControllerConstants.MULTI_TENANT_ATTR)));
-
-                    Cartridge aCartridge;
-
-                    if ((aCartridge = dataHolder.getCartridge(type)) == null) {
-
-                        aCartridge = new Cartridge(type, host, provider, version, multiTenant);
-                    }
-
-                    // read displayName
-                    Iterator<?> itName =
-                                         cartridgeElement.getChildrenWithName(new QName(
-                                                                                        CloudControllerConstants.DISPLAY_NAME_ELEMENT));
-
-                    if (itName.hasNext()) {
-                        OMElement name = (OMElement) itName.next();
-
-                        aCartridge.setDisplayName(name.getText());
-                    }
-
-                    // read description
-                    Iterator<?> it =
-                                     cartridgeElement.getChildrenWithName(new QName(
-                                                                                    CloudControllerConstants.DESCRIPTION_ELEMENT));
-
-                    if (it.hasNext()) {
-                        OMElement desc = (OMElement) it.next();
-
-                        aCartridge.setDescription(desc.getText());
-                    }
-
-                    // load properties of this cartridge
-                    IaasProviderConfigParser.loadProperties(file, cartridgeElement,
-                                                            aCartridge.getProperties());
-
-                    // retrieve the list of IaaS providers
-                    List<?> iaasProviderNodes =
-                                                AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                                              CloudControllerConstants.IAAS_PROVIDER_ELEMENT_XPATH,
-                                                                                      cartridgeElement);
-
-                    getIaasProviders(file, elt, iaasProviders, cartridgeElement.toString(),
-                                     aCartridge, iaasProviderNodes);
-
-                    // load dirs
-                    List<?> deploymentNodes =
-                                              AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                                            CloudControllerConstants.DEPLOYMENT_ELEMENT_XPATH,
-                                                                                    cartridgeElement);
-                    setDeploymentDirs(file, cartridgeElement.toString(), aCartridge,
-                                      deploymentNodes);
-
-                    // load port mappings
-                    List<?> portMappingNodes =
-                                               AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                                             CloudControllerConstants.PORT_MAPPING_ELEMENT_XPATH,
-                                                                                     cartridgeElement);
-                    getPortMappings(file, cartridgeElement.toString(), aCartridge, portMappingNodes);
-
-                    // load appTypes
-                    List<?> appTypesNodes =
-                                            AxiomXpathParserUtil.getMatchingNodes(xpath +
-                                                                                          CloudControllerConstants.APP_TYPES_ELEMENT_XPATH,
-                                                                                  cartridgeElement);
-                    getAppTypes(file, cartridgeElement.toString(), aCartridge, appTypesNodes);
-
-                    cartridges.add(aCartridge);
-
-                    if (dataHolder.getCartridge(type) == null) {
-                        dataHolder.addCartridge(aCartridge);
-                    }
-                }
-            }
-        }
-
-        return cartridges;
-    }
-
-    /**
-     * @param iaasProviders
-     * @param cartridgeElementString
-     * @param aCartridge
-     * @param iaasProviderNodes
-     */
-    private static void getIaasProviders(final String fileName, final OMElement elt,
-        List<IaasProvider> iaasProviders, String cartridgeElementString, Cartridge aCartridge,
-        List<?> iaasProviderNodes) {
-        for (Object nodeObj : iaasProviderNodes) {
-            if (nodeObj instanceof OMNode) {
-                OMNode iaasProviderNode = (OMNode) nodeObj;
-
-                if (iaasProviderNode.getType() == OMNode.ELEMENT_NODE) {
-
-                    OMElement iaasElt = (OMElement) iaasProviderNode;
-
-                    // add the IaasProvider to this cartridge
-                    aCartridge.addIaasProvider(IaasProviderConfigParser.getIaasProvider(fileName,
-                                                                                        elt,
-                                                                                        iaasElt,
-                                                                                        iaasProviders));
-
-                } else {
-                    String msg =
-                                 "Essential '" + CloudControllerConstants.IAAS_PROVIDER_ELEMENT +
-                                         "' element cannot" + " be found in " +
-                                         cartridgeElementString + " of " + fileName;
-                    handleException(msg);
-                }
-
-            }
-        }
-    }
-
-    /**
-     * @param cartridgeElementString
-     *            Cartridges section as a {@link String}
-     * @param aCartridge
-     *            {@link Cartridge} instance.
-     * @param deploymentNodes
-     *            list of deployment directory nodes
-     */
-    private static void setDeploymentDirs(String fileName, String cartridgeElementString,
-        Cartridge aCartridge, List<?> deploymentNodes) {
-        Object nodeObj;
-        if ((nodeObj = deploymentNodes.get(0)) instanceof OMNode) {
-            OMNode deploymentNode = (OMNode) nodeObj;
-
-            if (deploymentNode.getType() == OMNode.ELEMENT_NODE) {
-
-                OMElement deployElt = (OMElement) deploymentNode;
-
-                if (deployElt.getAttributeValue(new QName(CloudControllerConstants.BASE_DIR_ATTR)) != null) {
-
-                    aCartridge.setBaseDir(deployElt.getAttributeValue(new QName(
-                                                                                CloudControllerConstants.BASE_DIR_ATTR)));
-                }
-
-                for (Iterator<?> iterator =
-                                            deployElt.getChildrenWithName(new QName(
-                                                                                    CloudControllerConstants.DIRECTORY_ELEMENT)); iterator.hasNext();) {
-                    OMElement dir = (OMElement) iterator.next();
-                    aCartridge.addDeploymentDir(dir.getText());
-                }
-
-            } else {
-                String msg =
-                             "Essential '" + CloudControllerConstants.DEPLOYMENT_ELEMENT +
-                                     "' element cannot" + " be found in " + cartridgeElementString +
-                                     " of " + fileName;
-                handleException(msg);
-            }
-
-        }
-    }
-
-    /**
-     * @param cartridgeElementString
-     *            Cartridges section as a {@link String}
-     * @param aCartridge
-     *            {@link Cartridge} instance.
-     * @param portMappingNodes
-     *            nodes of port mapping elements
-     */
-    private static void getPortMappings(final String fileName, String cartridgeElementString,
-        Cartridge aCartridge, List<?> portMappingNodes) {
-        Object nodeObj;
-        if (!portMappingNodes.isEmpty()) {
-            if ((nodeObj = portMappingNodes.get(0)) instanceof OMNode) {
-                OMNode portMappingNode = (OMNode) nodeObj;
-
-                if (portMappingNode.getType() == OMNode.ELEMENT_NODE) {
-
-                    OMElement portMappingElt = (OMElement) portMappingNode;
-
-                    for (Iterator<?> iterator =
-                                                portMappingElt.getChildrenWithName(new QName(
-                                                                                             CloudControllerConstants.HTTP_ELEMENT)); iterator.hasNext();) {
-                        OMElement httpElt = (OMElement) iterator.next();
-
-                        String port =
-                                      httpElt.getAttributeValue(new QName(
-                                                                          CloudControllerConstants.PORT_ATTR));
-                        String proxyPort =
-                                           httpElt.getAttributeValue(new QName(
-                                                                               CloudControllerConstants.PROXY_PORT_ATTR));
-
-                        PortMapping mapping =
-                                              new PortMapping(
-                                                              CloudControllerConstants.HTTP_ELEMENT,
-                                                              port, proxyPort);
-
-                        aCartridge.addPortMapping(mapping);
-                    }
-
-                    for (Iterator<?> iterator =
-                                                portMappingElt.getChildrenWithName(new QName(
-                                                                                             CloudControllerConstants.HTTPS_ELEMENT)); iterator.hasNext();) {
-                        OMElement httpsElt = (OMElement) iterator.next();
-
-                        String port =
-                                      httpsElt.getAttributeValue(new QName(
-                                                                           CloudControllerConstants.PORT_ATTR));
-                        String proxyPort =
-                                           httpsElt.getAttributeValue(new QName(
-                                                                                CloudControllerConstants.PROXY_PORT_ATTR));
-
-                        PortMapping mapping =
-                                              new PortMapping(
-                                                              CloudControllerConstants.HTTPS_ELEMENT,
-                                                              port, proxyPort);
-
-                        aCartridge.addPortMapping(mapping);
-                    }
-
-                } else {
-                    String msg =
-                                 "Essential '" + CloudControllerConstants.PORT_MAPPING_ELEMENT +
-                                         "' element cannot" + " be found in " +
-                                         cartridgeElementString + " of " + fileName;
-                    handleException(msg);
-                }
-
-            }
-        }
-    }
-
-    /**
-     * @param cartridgeElementString
-     *            Cartridges section as a {@link String}
-     * @param aCartridge
-     *            {@link org.apache.stratos.cloud.controller.pojo.Cartridge} instance.
-     * @param appTypesNodes
-     *            nodes of App types.
-     */
-    private static void getAppTypes(final String fileName, String cartridgeElementString,
-        Cartridge aCartridge, List<?> appTypesNodes) {
-        Object nodeObj;
-        if (!appTypesNodes.isEmpty()) {
-            if ((nodeObj = appTypesNodes.get(0)) instanceof OMNode) {
-                OMNode appTypeNode = (OMNode) nodeObj;
-
-                if (appTypeNode.getType() == OMNode.ELEMENT_NODE) {
-
-                    OMElement appTypesElt = (OMElement) appTypeNode;
-
-                    for (Iterator<?> iterator =
-                                                appTypesElt.getChildrenWithName(new QName(
-                                                                                          CloudControllerConstants.APP_TYPE_ELEMENT)); iterator.hasNext();) {
-                        OMElement appElt = (OMElement) iterator.next();
-
-                        String name =
-                                      appElt.getAttributeValue(new QName(
-                                                                         CloudControllerConstants.NAME_ATTR));
-                        String appSpecificMapping =
-                                                    appElt.getAttributeValue(new QName(
-                                                                                       CloudControllerConstants.APP_SPECIFIC_MAPPING_ATTR));
-
-                        AppType appType;
-
-                        if (appSpecificMapping == null) {
-                            appType = new AppType(name);
-                        } else {
-                            appType = new AppType(name, Boolean.valueOf(appSpecificMapping));
-                        }
-
-                        aCartridge.addAppType(appType);
-                    }
-
-                } else {
-                    String msg =
-                                 "Essential '" + CloudControllerConstants.APP_TYPE_ELEMENT +
-                                         "' element cannot" + " be found in " +
-                                         cartridgeElementString + " of " + fileName;
-                    handleException(msg);
-                }
-
-            }
-        }
-    }
-
-    private static void
-        handleException(final String msg) throws MalformedConfigurationFileException {
-        log.error(msg);
-        throw new MalformedConfigurationFileException(msg);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
index d2c50fa..4e087b6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
@@ -25,7 +25,6 @@ import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
 import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
 import org.apache.stratos.cloud.controller.axiom.parser.CartridgeConfigParser;
 import org.apache.stratos.cloud.controller.concurrent.ThreadExecutor;
@@ -33,13 +32,9 @@ import org.apache.stratos.cloud.controller.exception.CloudControllerException;
 import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
 import org.apache.stratos.cloud.controller.pojo.Cartridge;
-import org.apache.stratos.cloud.controller.pojo.Host;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
-import org.apache.stratos.cloud.controller.pojo.Region;
-import org.apache.stratos.cloud.controller.pojo.Zone;
 import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
-import org.apache.stratos.cloud.controller.util.*;
 import org.wso2.carbon.utils.CarbonUtils;
 
 import java.io.File;
@@ -186,20 +181,20 @@ public class CartridgeDeployer extends AbstractDeployer{
 					Iaas iaas = (Iaas) Class.forName(iaasProvider.getClassName()).newInstance();
 					iaas.buildComputeServiceAndTemplate(iaasProvider);
 					iaasProvider.setIaas(iaas);
-                    if(iaasProvider.getListOfRegions() != null) {
-                        for(Region region : iaasProvider.getListOfRegions()) {
-                            iaas.buildComputeServiceAndTemplate(region);
-                            for(Zone zone : region.getListOfZones()) {
-                                zone.setComputeService(region.getComputeService());
-                                iaas.buildTemplate(zone);
-                                for(Host host: zone.getListOfHosts()) {
-                                    host.setComputeService(region.getComputeService());
-                                    iaas.buildTemplate(host);
-                                }
-                            }
-
-                        }
-                    }
+//                    if(iaasProvider.getListOfRegions() != null) {
+//                        for(Region region : iaasProvider.getListOfRegions()) {
+//                            iaas.buildComputeServiceAndTemplate(region);
+//                            for(Zone zone : region.getListOfZones()) {
+//                                zone.setComputeService(region.getComputeService());
+//                                iaas.buildTemplate(zone);
+//                                for(Host host: zone.getListOfHosts()) {
+//                                    host.setComputeService(region.getComputeService());
+//                                    iaas.buildTemplate(host);
+//                                }
+//                            }
+//
+//                        }
+//                    }
 					
 				} catch (Exception e) {
 					rename();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
index 82ffddb..0b60e97 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
@@ -25,7 +25,6 @@ import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
 import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
 import org.apache.stratos.cloud.controller.axiom.parser.CloudControllerConfigParser;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
deleted file mode 100644
index 2875ce5..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
+++ /dev/null
@@ -1,152 +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.cloud.controller.deployers;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.AbstractDeployer;
-import org.apache.axis2.deployment.DeploymentException;
-import org.apache.axis2.deployment.repository.util.DeploymentFileData;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
-import org.apache.stratos.cloud.controller.axiom.parser.ServiceConfigParser;
-import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
-import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * All the {@link org.apache.stratos.cloud.controller.util.Cartridge}s will get deployed / undeployed / updated via this class.
- */
-//public class ServiceDeployer extends AbstractDeployer{
-    
-//    private static final Log log = LogFactory.getLog(ServiceDeployer.class);
-//    
-//    private FasterLookUpDataHolder serviceContextLookUpStructure;
-//    private Map<String, List<ServiceContext>> fileToServiceContextListMap;
-//    private File servicesSchema, serviceSchema;
-//
-//    @Override
-//    public void init(ConfigurationContext arg0) {
-//        fileToServiceContextListMap = new ConcurrentHashMap<String, List<ServiceContext>>();
-//        String etcDir = CarbonUtils.getCarbonConfigDirPath() + File.separator + "etc" + File.separator;
-//        servicesSchema = new File(etcDir+"services.xsd");
-//        serviceSchema = new File(etcDir+"service.xsd");
-//    }
-//
-//    @Override
-//    public void setDirectory(String arg0) {
-//        // component xml handles this
-//    }
-//
-//    @Override
-//    public void setExtension(String arg0) {
-//        // component xml handles this
-//    }
-//    
-//    public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException {
-//
-//        File file = deploymentFileData.getFile();
-//        log.debug("Started to deploy the deployment artefact: " + file);
-//        serviceContextLookUpStructure = FasterLookUpDataHolder.getInstance();
-//
-//        try {
-//            OMElement docElt = AxiomXpathParserUtil.parse(file);
-//            String fileName = file.getAbsolutePath();
-//            
-//            // validate
-//            validateService(docElt, fileName);
-//
-//            // deploy
-//            List<ServiceContext> services = ServiceConfigParser.extractServiceContexts(file, docElt);
-//
-//            // update map
-//            fileToServiceContextListMap.put(deploymentFileData.getAbsolutePath(),
-//                                            new ArrayList<ServiceContext>(services));
-//
-//            log.info("Successfully deployed the Service definition specified at " +
-//                     deploymentFileData.getAbsolutePath());
-//        } catch (Exception e) {
-//            String msg = "Invalid deployment artefact at " + deploymentFileData.getAbsolutePath();
-//            // back up the file
-//            File f = file;
-//            f.renameTo(new File(deploymentFileData.getAbsolutePath() + ".back"));
-//            log.error(msg, e);
-//            throw new DeploymentException(msg, e);
-//        }
-//    }
-//    
-//    private void validateService(final OMElement elt, final String fileName) throws Exception {
-//        boolean validated = false;
-//        Exception firstException = null;
-//
-//        try{
-//            // first try to validate using services schema
-//            AxiomXpathParserUtil.validate(elt, servicesSchema);
-//            validated = true;
-//            log.debug("Service validation was successful.");
-//            
-//        }catch (Exception e) {
-//            firstException = e;
-//        }
-//        
-//        if(!validated){
-//            try{
-//                // Now try to validate using service schema
-//                AxiomXpathParserUtil.validate(elt, serviceSchema);
-//                validated = true;
-//                log.debug("Service validation was successful.");
-//                
-//            }catch (Exception e) {
-//                String msg = "Service XML validation failed. Invalid Service XML: "+fileName;
-//                log.error(msg, firstException);
-//                throw new MalformedConfigurationFileException(msg, firstException);
-//            }
-//        }
-//        
-//        
-//    }
-//
-//    public void undeploy(String file) throws DeploymentException {
-//
-//        serviceContextLookUpStructure = FasterLookUpDataHolder.getInstance();
-//
-//        // grab the entry from Map
-//        if(fileToServiceContextListMap.containsKey(file)){
-//            // remove 'em all
-//            for (ServiceContext ctxt : fileToServiceContextListMap.get(file)) {
-//                serviceContextLookUpStructure.removeServiceContext(ctxt);
-//                TopologyBuilder.handleClusterRemoved(ctxt);
-//                // remove from the topology
-//            }
-//            log.info("Successfully undeployed the Service definition specified at "+file);
-//        }
-//        
-//    }
-
-//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
index 2a74c0a..18dd0ce 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
@@ -20,8 +20,6 @@
 package org.apache.stratos.cloud.controller.deployment.partition;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * The model class for PartitionGroup definition.

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
index d79c266..92d4cd6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
@@ -45,18 +45,19 @@ import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
 import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.ec2.EC2Api;
 import org.jclouds.ec2.EC2ApiMetadata;
 import org.jclouds.ec2.EC2Client;
 import org.jclouds.ec2.domain.AvailabilityZoneInfo;
 import org.jclouds.ec2.domain.KeyPair;
 import org.jclouds.ec2.domain.PublicIpInstanceIdPair;
 import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.options.DescribeAvailabilityZonesOptions;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Set;
 
+@SuppressWarnings("deprecation")
 public class AWSEC2Iaas extends Iaas {
 
 	private static final Log log = LogFactory.getLog(AWSEC2Iaas.class);
@@ -292,7 +293,7 @@ public class AWSEC2Iaas extends Iaas {
 			log.info("Successfully associated public IP ");
 			return true;
 		} catch (Exception e) {
-			log.error("Exception in associating public IP " + e.getMessage());
+			log.debug("Exception in associating public IP " + e.getMessage());
 			return false;
 		}
 	}
@@ -353,7 +354,7 @@ public class AWSEC2Iaas extends Iaas {
                                                         .get();
         Set<AvailabilityZoneInfo> availabilityZones =
                                                       zoneRegionApi.describeAvailabilityZonesInRegion(region,
-                                                                                                      null);
+                                                                                                      new DescribeAvailabilityZonesOptions[0]);
         for (AvailabilityZoneInfo zoneInfo : availabilityZones) {
             String configuredZone = zoneInfo.getZone();
             if (zone.equalsIgnoreCase(configuredZone)) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
index 6e445a3..070c356 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
@@ -177,7 +177,8 @@ public class OpenstackNovaIaas extends Iaas {
 
 		ComputeServiceContext context = iaasInfo.getComputeService()
 				.getContext();
-		NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+		@SuppressWarnings("deprecation")
+        NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
 
 		KeyPairApi api = novaApi.getKeyPairExtensionForZone(region).get();
 
@@ -204,7 +205,8 @@ public class OpenstackNovaIaas extends Iaas {
 		ComputeServiceContext context = iaasInfo.getComputeService()
 				.getContext();
 
-		NovaApi novaClient = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+		@SuppressWarnings("deprecation")
+        NovaApi novaClient = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
 		String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo);
 
 		FloatingIPApi floatingIp = novaClient.getFloatingIPExtensionForZone(
@@ -273,7 +275,8 @@ public class OpenstackNovaIaas extends Iaas {
 		ComputeServiceContext context = iaasInfo.getComputeService()
 				.getContext();
 
-		NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+		@SuppressWarnings("deprecation")
+        NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
 		String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo);
 
 		FloatingIPApi floatingIPApi = novaApi
@@ -309,6 +312,7 @@ public class OpenstackNovaIaas extends Iaas {
         }
         
         ComputeServiceContext context = iaasInfo.getComputeService().getContext();
+        @SuppressWarnings("deprecation")
         NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
         for (String configuredZone : api.getConfiguredZones()) {
             if (region.equalsIgnoreCase(configuredZone)) {
@@ -342,6 +346,7 @@ public class OpenstackNovaIaas extends Iaas {
             throw new InvalidHostException(msg);
         }
         ComputeServiceContext context = iaasInfo.getComputeService().getContext();
+        @SuppressWarnings("deprecation")
         NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
         HostAggregateApi hostApi = api.getHostAggregateExtensionForZone(zone).get();
         for (HostAggregate hostAggregate : hostApi.list()) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 2785df0..372cc58 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -18,9 +18,6 @@
  */
 package org.apache.stratos.cloud.controller.impl;
 
-import com.google.common.collect.Lists;
-
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.concurrent.ThreadExecutor;
@@ -36,39 +33,27 @@ import org.apache.stratos.cloud.controller.exception.UnregisteredCartridgeExcept
 import org.apache.stratos.cloud.controller.exception.UnregisteredClusterException;
 import org.apache.stratos.cloud.controller.interfaces.CloudControllerService;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
-import org.apache.stratos.cloud.controller.persist.Deserializer;
 import org.apache.stratos.cloud.controller.pojo.Cartridge;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.ClusterContext;
-import org.apache.stratos.cloud.controller.pojo.IaasContext;
 import org.apache.stratos.cloud.controller.pojo.IaasProvider;
 import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.apache.stratos.cloud.controller.pojo.Registrant;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
 import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublisherTask;
-import org.apache.stratos.cloud.controller.registry.RegistryManager;
 import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.topic.TopologySynchronizerTask;
 import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
 import org.apache.stratos.cloud.controller.topology.TopologyEventMessageDelegator;
-import org.apache.stratos.cloud.controller.topology.TopologyManager;
 import org.apache.stratos.cloud.controller.util.*;
 import org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
 import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.ComputeMetadata;
 import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadata.Status;
 import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.internal.NodeMetadataImpl;
 import org.wso2.carbon.ntask.common.TaskException;
 import org.wso2.carbon.ntask.core.TaskInfo;
 import org.wso2.carbon.ntask.core.TaskInfo.TriggerInfo;
 import org.wso2.carbon.ntask.core.TaskManager;
 import org.wso2.carbon.ntask.core.service.TaskService;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-
-import java.io.File;
-import java.io.IOException;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.locks.Lock;
@@ -285,206 +270,194 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 	}
 
     @Override
-	public MemberContext startInstance(MemberContext member) throws IllegalArgumentException, UnregisteredCartridgeException {
+    public MemberContext startInstance(MemberContext member) throws IllegalArgumentException,
+        UnregisteredCartridgeException {
 
         if (member == null) {
             String msg = "Instance start-up failed. Member is null.";
             log.error(msg);
             throw new IllegalArgumentException(msg);
         }
-        
+
         String clusterId = member.getClusterId();
         Partition partition = member.getPartition();
-        
+
         log.info("Starting new instance of cluster : " + clusterId);
 
-		ComputeService computeService = null;
-		Template template = null;
-		
-		if(partition == null) {
-		    String msg = "Instance start-up failed. Specified Partition is null. Cluster id: "+clusterId;
+        ComputeService computeService = null;
+        Template template = null;
+
+        if (partition == null) {
+            String msg =
+                         "Instance start-up failed. Specified Partition is null. Cluster id: " +
+                                 clusterId;
             log.error(msg);
             throw new IllegalArgumentException(msg);
-		}
-		
+        }
+
         String partitionId = partition.getId();
         ClusterContext ctxt = dataHolder.getClusterContext(clusterId);
-        
-        if(ctxt == null) {
-            String msg = "Instance start-up failed. Invalid cluster id: "+clusterId;
+
+        if (ctxt == null) {
+            String msg = "Instance start-up failed. Invalid cluster id: " + clusterId;
             log.error(msg);
             throw new IllegalArgumentException(msg);
         }
-        
+
         String cartridgeType = ctxt.getCartridgeType();
-        
+
         Cartridge cartridge = dataHolder.getCartridge(cartridgeType);
-        
-        if(cartridge == null) {
-            String msg = "Instance start-up failed. No valid Cartridge found for type: "+cartridgeType;
+
+        if (cartridge == null) {
+            String msg =
+                         "Instance start-up failed. No valid Cartridge found for type: " +
+                                 cartridgeType;
             log.error(msg);
             throw new UnregisteredCartridgeException(msg);
         }
-        
+
         member.setCartridgeType(cartridgeType);
-        
-		final Lock lock = new ReentrantLock();
-
-		IaasProvider iaas = cartridge.getIaasProviderOfPartition(partitionId);
-            if(iaas == null) {
-                String msg = "Instance start-up failed for cluster: "+clusterId+". " +
-                        "There's no IaaS provided for the partition: "+partitionId+
-                        " and for the Cartridge type: "+cartridgeType;
-                log.fatal(msg);
+
+        final Lock lock = new ReentrantLock();
+
+        IaasProvider iaas = cartridge.getIaasProviderOfPartition(partitionId);
+        if (iaas == null) {
+            String msg =
+                         "Instance start-up failed for cluster: " + clusterId + ". " +
+                                 "There's no IaaS provided for the partition: " + partitionId +
+                                 " and for the Cartridge type: " + cartridgeType;
+            log.fatal(msg);
+            throw new CloudControllerException(msg);
+        }
+        try {
+            // generating the Unique member ID...
+            String memberID = generateMemberId(clusterId);
+            member.setMemberId(memberID);
+            // have to add memberID to the payload
+            StringBuilder payload = new StringBuilder(ctxt.getPayload());
+            payload.append(",");
+            payload.append("MEMBER_ID=" + memberID);
+            if (log.isDebugEnabled()) {
+                log.debug("Payload: " + payload.toString());
+            }
+            // reloading the payload with memberID
+            iaas.setPayload(payload.toString().getBytes());
+
+            iaas.getIaas().setDynamicPayload(iaas);
+            // get the pre built ComputeService from provider or region or zone or host
+            computeService = iaas.getComputeService();
+            template = iaas.getTemplate();
+
+            if (template == null) {
+                String msg =
+                             "Failed to start an instance in " +
+                                     iaas.getType() +
+                                     ". Reason : Template is null. You have not specify a matching service " +
+                                     "element in the configuration file of Autoscaler.\n Hence, will try to " +
+                                     "start in another IaaS if available.";
+                log.error(msg);
                 throw new CloudControllerException(msg);
             }
-                try {
-                    //generating the Unique member ID...
-                    String memberID = generateMemberId(clusterId);
-                    member.setMemberId(memberID);
-                    //have to add memberID to the payload
-                    StringBuilder payload = new StringBuilder(ctxt.getPayload());
-                    payload.append(",");
-                    payload.append("MEMBER_ID=" + memberID);
-                    //reloading the payload with memberID
-                    iaas.setPayload(payload.toString().getBytes());
-
-                    iaas.getIaas().setDynamicPayload(iaas);
-                    // get the pre built ComputeService from provider or region or zone or host
-                    computeService = iaas.getComputeService();
-                    template = iaas.getTemplate();
-                    
-                    if (template == null) {
-                        String msg = "Failed to start an instance in "
-                                + iaas.getType()
-                                + ". Reason : Template is null. You have not specify a matching service "
-                                + "element in the configuration file of Autoscaler.\n Hence, will try to "
-                                + "start in another IaaS if available.";
-                        log.error(msg);
-                        throw new CloudControllerException(msg);
-                    }
-
-                    // generate the group id from domain name and sub domain
-                    // name.
-                    // Should have lower-case ASCII letters, numbers, or dashes.
-                    // Should have a length between 3-15
-                    String str = clusterId.substring(0, 10);
-                    String group = str.replaceAll("[^a-z0-9-]", "");
-
-                    NodeMetadata node;
-
-                    // create and start a node
-                    Set<? extends NodeMetadata> nodes = computeService
-                            .createNodesInGroup(group, 1, template);
-
-                    node = nodes.iterator().next();
-
-                    String autoAssignIpProp = iaas
-                            .getProperty(CloudControllerConstants.AUTO_ASSIGN_IP_PROPERTY);
-
-                    // acquire the lock
-                    lock.lock();
-
-                    try {
-                        // node id
-                        String nodeId = node.getId();
-                        if (nodeId == null) {
-                            String msg = "Node id of the starting instance is null.\n" + node.toString();
-                            log.fatal(msg);
-                            throw new CloudControllerException(msg);
-                        }
-                        
-                        member.setNodeId(nodeId);
-                        
-                        // reset ip
-                        String ip = "";
-                        // default behavior is autoIpAssign=false
-                        if (autoAssignIpProp == null || (autoAssignIpProp != null && autoAssignIpProp.equals("false"))) {
-                            // allocate an IP address - manual IP assigning mode
-                            ip = iaas.getIaas().associateAddress(iaas, node);
-                            member.setAllocatedIpAddress(ip);
-                            log.info("Allocated ip address: " + ip);
-                        }
-
-                        // public ip
-                        if (node.getPublicAddresses() != null && node.getPublicAddresses().iterator().hasNext()) {
-                            ip = node.getPublicAddresses().iterator().next();
-                            member.setPublicIpAddress(ip);
-                            log.info("Public ip address: " + ip);
-                        }
-
-                        // private IP
-                        if (node.getPrivateAddresses() != null && node.getPrivateAddresses().iterator().hasNext()) {
-                            ip = node.getPrivateAddresses().iterator().next();
-                            member.setPrivateIpAddress(ip);
-                            log.info("Private ip address: " + ip);
-                        }
-
-                        
-                        dataHolder.addMemberContext(member);
-
-                        // persist in registry
-                        persist();
-
-                        // trigger topology
-                        TopologyBuilder.handleMemberSpawned(memberID, cartridgeType, clusterId,
-                                 nodeId, partition, ip);
-
-                        //update the topology with the newly spawned member
-                        // publish data
-                        if (log.isDebugEnabled()) {
-                            log.debug("Node details: \n" + node.toString()
-                                    + "\n***************\n");
-                        }
-
-                        log.info("Instance is successfully starting up in IaaS "
-                                + iaas.getType()
-                                + ".\tIP Address(public/private): "
-                                + ip
-                                + "\tNode Id: " + nodeId);
-
-                        return member;
-
-                    } finally {
-                        // release the lock
-                        lock.unlock();
-                    }
-
-                    } catch (Exception e) {
-                        log.warn(
-                                "Failed to start an instance in "
-                                        + iaas.getType()
-                                        + ". Hence, will try to start in another IaaS if available.",
-                                e);
-                    }
-                
-                return null;
+
+            // generate the group id from domain name and sub domain
+            // name.
+            // Should have lower-case ASCII letters, numbers, or dashes.
+            // Should have a length between 3-15
+            String str = clusterId.substring(0, 10);
+            String group = str.replaceAll("[^a-z0-9-]", "");
+
+            NodeMetadata node;
+
+            // create and start a node
+            Set<? extends NodeMetadata> nodes =
+                                                computeService.createNodesInGroup(group, 1,
+                                                                                  template);
+
+            node = nodes.iterator().next();
+
+            String autoAssignIpProp =
+                                      iaas.getProperty(CloudControllerConstants.AUTO_ASSIGN_IP_PROPERTY);
+
+            // acquire the lock
+            lock.lock();
+
+            try {
+                // node id
+                String nodeId = node.getId();
+                if (nodeId == null) {
+                    String msg = "Node id of the starting instance is null.\n" + node.toString();
+                    log.fatal(msg);
+                    throw new CloudControllerException(msg);
+                }
+
+                member.setNodeId(nodeId);
+
+                // reset ip
+                String ip = "";
+                // default behavior is autoIpAssign=false
+                if (autoAssignIpProp == null ||
+                    (autoAssignIpProp != null && autoAssignIpProp.equals("false"))) {
+                    // allocate an IP address - manual IP assigning mode
+                    ip = iaas.getIaas().associateAddress(iaas, node);
+                    member.setAllocatedIpAddress(ip);
+                    log.info("Allocated ip address: " + ip);
+                }
+
+                // public ip
+                if (node.getPublicAddresses() != null &&
+                    node.getPublicAddresses().iterator().hasNext()) {
+                    ip = node.getPublicAddresses().iterator().next();
+                    member.setPublicIpAddress(ip);
+                    log.info("Public ip address: " + ip);
+                }
+
+                // private IP
+                if (node.getPrivateAddresses() != null &&
+                    node.getPrivateAddresses().iterator().hasNext()) {
+                    ip = node.getPrivateAddresses().iterator().next();
+                    member.setPrivateIpAddress(ip);
+                    log.info("Private ip address: " + ip);
+                }
+
+                dataHolder.addMemberContext(member);
+
+                // persist in registry
+                persist();
+
+                // trigger topology
+                TopologyBuilder.handleMemberSpawned(memberID, cartridgeType, clusterId, partition,
+                                                    ip);
+
+                // update the topology with the newly spawned member
+                // publish data
+                if (log.isDebugEnabled()) {
+                    log.debug("Node details: \n" + node.toString() + "\n***************\n");
+                }
+
+                log.info("Instance is successfully starting up in IaaS " + iaas.getType() +
+                         ".\tIP Address(public/private): " + ip + "\tNode Id: " + nodeId);
+
+                return member;
+
+            } finally {
+                // release the lock
+                lock.unlock();
             }
 
+        } catch (Exception e) {
+            log.warn("Failed to start an instance in " + iaas.getType() +
+                     ". Hence, will try to start in another IaaS if available.", e);
+        }
+
+        return null;
+    }
+
 //    @Override
 //    public String startInstances(String clusterId, Partition partition, int noOfInstancesToBeSpawned) {
 //        //TODO
 //        return null;
 //    }
 
-    /**
-	 * Appends this ip to the Service Context's
-	 * {@link CloudControllerConstants#PUBLIC_IP_PROPERTY}
-	 * 
-	 * @param ip
-	 * @param serviceCtxt
-	 */
-	private void appendToPublicIpProperty(String ip, ServiceContext serviceCtxt) {
-		String ipStr = serviceCtxt
-				.getProperty(CloudControllerConstants.PUBLIC_IP_PROPERTY);
-		if (ip != null && !"".equals(ip)) {
-			serviceCtxt.setProperty(
-					CloudControllerConstants.PUBLIC_IP_PROPERTY,
-					("".equals(ipStr) ? "" : ipStr
-							+ CloudControllerConstants.ENTRY_SEPARATOR)
-							+ ip);
-		}
-	}
 
 	/**
 	 * Persist data in registry.
@@ -506,25 +479,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
          return clusterId + memberId.toString();
     }
 
-	private Cartridge loadCartridge(String cartridgeType,
-			List<Cartridge> cartridges) {
-
-		for (Cartridge cartridge : cartridges) {
-			if (cartridge.getType().equals(cartridgeType)) {
-                return cartridge;
-			}
-		}
-
-		return null;
-	}
-
-    private void reloadPayload(Cartridge cartridge, byte[] payload) {
-        for (IaasProvider iaas : cartridge.getIaases()) {
-					iaas.setPayload(payload);
-        }
-
-    }
-    
     @Override
     public void terminateInstance(String memberId) throws InvalidMemberException, InvalidCartridgeTypeException, 
     IllegalArgumentException{
@@ -646,7 +600,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                 terminate(iaas, nodeId, ctxt);
 
                 // log information
-                logTermination(nodeId, ctxt);
+                logTermination(ctxt);
 
             } catch (Exception e) {
                 String msg =
@@ -851,76 +805,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 
 	}
 
-	public int getPendingInstanceCount(String clusterId) {
-        int pendingInstanceCount = 0;
-
-		ServiceContext subjectedSerCtxt = dataHolder
-				.getServiceContextFromDomain(clusterId);
-
-		if (subjectedSerCtxt != null
-				&& subjectedSerCtxt.getCartridgeType() != null) {
-
-			// load cartridge
-			subjectedSerCtxt.setCartridge(loadCartridge(subjectedSerCtxt
-					.getCartridgeType(),
-					dataHolder.getCartridges()));
-
-			if (subjectedSerCtxt.getCartridge() == null) {
-				return pendingInstanceCount;
-			}
-
-			List<IaasProvider> iaases = subjectedSerCtxt.getCartridge()
-					.getIaases();
-
-			for (IaasProvider iaas : iaases) {
-
-				ComputeService computeService = iaas.getComputeService();
-
-				IaasContext ctxt;
-				if ((ctxt = subjectedSerCtxt.getIaasContext(iaas.getType())) == null) {
-					ctxt = subjectedSerCtxt.addIaasContext(iaas.getType());
-				}
-
-				// get list of node Ids which are belong to this domain- sub
-				// domain
-				List<String> nodeIds = ctxt.getNodeIds();
-
-				if (nodeIds.isEmpty()) {
-					log.debug("Zero nodes spawned in the IaaS "
-							+ iaas.getType() + " of domain: " + clusterId);
-					continue;
-				}
-
-				// get all the nodes spawned by this IaasContext
-				Set<? extends ComputeMetadata> set = computeService.listNodes();
-
-                // traverse through all nodes of this ComputeService object
-                for (ComputeMetadata aSet : set) {
-                    NodeMetadataImpl nodeMetadata = (NodeMetadataImpl) aSet;
-
-                    // if this node belongs to the requested domain
-                    if (nodeIds.contains(nodeMetadata.getId())) {
-
-                        // get the status of the node
-                        Status nodeStatus = nodeMetadata.getStatus();
-
-                        // count nodes that are in pending state
-                        if (nodeStatus.equals(Status.PENDING)) {
-                            pendingInstanceCount++;
-                        }
-                    }
-
-                }
-			}
-		}
-
-		log.debug("Pending instance count of domain '" + clusterId
-				+ " is "
-				+ pendingInstanceCount);
-
-		return pendingInstanceCount;
-
-	}
 
 	/**
 	 * A helper method to terminate an instance.
@@ -953,7 +837,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 		return iaasTemp;
 	}
 
-	private void logTermination(String nodeId, MemberContext ctxt) {
+	private void logTermination(MemberContext ctxt) {
 
 		// get the ip of the terminated node
 //		String ip = ctxt.getPublicIp(nodeId);
@@ -971,7 +855,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 //		serviceCtxt.setProperty(ipProp, newIpStr.length() == 0 ? "" : newIpStr
 //				.substring(0, newIpStr.length() - 1).toString());
         //updating the topology
-        TopologyBuilder.handleMemberTerminated(ctxt.getCartridgeType(), ctxt.getClusterId(), nodeId);
+        TopologyBuilder.handleMemberTerminated(ctxt.getCartridgeType(), ctxt.getClusterId(), ctxt.getMemberId());
 
 		// remove the reference
 //		ctxt.removeNodeIdToPublicIp(nodeId);
@@ -1033,7 +917,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 	    String cartridgeType = registrant.getCartridgeType();
 	    String clusterId = registrant.getClusterId();
         String payload = registrant.getPayload();
-        String hostName = registrant.getHostName();
         
         if(cartridgeType == null || clusterId == null || payload == null) {
 	        String msg = "Null Argument/s detected: Cartridge type: "+cartridgeType+", Cluster Id: "+clusterId+", Payload: "+payload;
@@ -1052,61 +935,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 	    dataHolder.addClusterContext(new ClusterContext(clusterId, cartridgeType, payload));
 	    TopologyBuilder.handleClusterCreated(registrant);
 	    
-//		// create a ServiceContext dynamically
-//		ServiceContext newServiceCtxt = new ServiceContext();
-//        newServiceCtxt.setClusterId(clusterId);
-//		//newServiceCtxt.setSubDomainName(subDomain);
-//		newServiceCtxt.setTenantRange(registrant.getTenantRange());
-//		newServiceCtxt.setHostName(registrant.getHostName());
-//        newServiceCtxt.setAutoScalerPolicyName(registrant.getAutoScalerPolicyName());
-//        newServiceCtxt.setPayload(new StringBuilder(registrant.getPayload()));
-//        Properties properties = registrant.getProperties();
-//        String cartridgeType = registrant.getCartridgeType();
-//
-//		if (properties != null && properties.getProperties() != null) {
-//			// add properties
-//			for (Property property : properties.getProperties()) {
-//				if (property != null && property.getName() != null) {
-//					newServiceCtxt.setProperty(property.getName(),
-//							property.getValue());
-//				}
-//			}
-//		}
-//
-//		newServiceCtxt.setCartridgeType(cartridgeType);
-//
-//		for (Cartridge cartridge : dataHolder
-//				.getCartridges()) {
-//			if (cartridge.getType().equals(cartridgeType)) {
-//				newServiceCtxt.setCartridge(cartridge);
-//				break;
-//			}
-//		}
-//
-//		if (newServiceCtxt.getCartridge() == null) {
-//			String msg = "Registration failed - Unregistered Cartridge type: "
-//					+ cartridgeType;
-//			log.error(msg);
-//			throw new UnregisteredCartridgeException(msg);
-//		}
-//		// persist
-//        String uniqueName = clusterId + "-"
-//                + UUID.randomUUID() + ".xml";
-//        newServiceCtxt.setPayloadFile("/tmp/" + CloudControllerConstants.PAYLOAD_NAME + ".zip");
-//        newServiceCtxt.generatePayload();
-//        dataHolder.addServiceContext(newServiceCtxt);
-//        // notify consumer by adding services
-//        TopologyBuilder.handleClusterCreated(newServiceCtxt);
-//        try {
-//            FileUtils.writeStringToFile(new File(CloudControllerConstants.SERVICES_DIR + uniqueName),
-//                                            newServiceCtxt.toXml());
-//        } catch (IOException e) {
-//            log.error("couldn't write the service definition", e);
-//            throw new CloudControllerException("couldn't write the service definition", e);
-//        }
-//        log.info("Service successfully registered! Domain - " + clusterId
-//                + ", Cartridge type - " + cartridgeType);
-
 		return true;
 	}
 
@@ -1131,17 +959,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 		return cartridgeTypes;
 	}
 
-	/*private String checkSubDomain(String subDomainName) {
-		// if sub domain is null, we assume it as default one.
-		if (subDomainName == null || "null".equalsIgnoreCase(subDomainName)) {
-			subDomainName = Constants.DEFAULT_SUB_DOMAIN;
-			log.debug("Sub domain is null, hence using the default value : "
-					+ subDomainName);
-		}
-
-		return subDomainName;
-	}*/
-
 	@Override
 	public CartridgeInfo getCartridgeInfo(String cartridgeType)
 			throws UnregisteredCartridgeException {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
index ef983b9..0deb947 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
@@ -59,8 +59,10 @@ public class Deserializer {
             log.error("Failed to deserialize the file at "+filePath , e);
             throw e;
             
-        } finally{
-            objIn.close();
+        } finally {
+            if (objIn != null) {
+                objIn.close();
+            }
         }
         
         return obj;
@@ -75,18 +77,20 @@ public class Deserializer {
      */
     public static Object deserializeFromByteArray(byte[] bytes) throws Exception {
 
-    	ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
-    	ObjectInput in = null;
-    	try {
-    	  in = new ObjectInputStream(bis);
-    	  Object o = in.readObject(); 
-    	  
-    	  return o;
-    	  
-    	} finally {
-    	  bis.close();
-    	  in.close();
-    	}
+        ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
+        ObjectInput in = null;
+        try {
+            in = new ObjectInputStream(bis);
+            Object o = in.readObject();
+
+            return o;
+
+        } finally {
+            bis.close();
+            if (in != null) {
+                in.close();
+            }
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
index 48ac4c7..e2d1137 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
@@ -32,7 +32,8 @@ public class Serializer {
     public static void serializeToFile(Object serializableObj, String filePath) throws IOException {
 
         File outFile = new File(filePath);
-        ObjectOutput ObjOut = null;
+        ObjectOutput objOut = null;
+        FileOutputStream fileOutputStream = null;
         
         try {
 
@@ -41,9 +42,9 @@ public class Serializer {
             } else{
                 log.debug("Serialization file is already existing at "+filePath);
             }
-            
-            ObjOut = new ObjectOutputStream(new FileOutputStream(outFile));
-            ObjOut.writeObject(serializableObj);
+            fileOutputStream = new FileOutputStream(outFile);
+            objOut = new ObjectOutputStream(fileOutputStream);
+            objOut.writeObject(serializableObj);
 
         } catch (IOException e) {
             log.error("Failed to serialize the object "+serializableObj.toString()
@@ -51,7 +52,12 @@ public class Serializer {
             throw e;
             
         } finally{
-            ObjOut.close();
+            if(objOut != null) {
+                objOut.close();
+            }
+            if(fileOutputStream != null) {
+                fileOutputStream.close();
+            }
         }
 
     }
@@ -72,10 +78,12 @@ public class Serializer {
     	  
     	  return bos.toByteArray();
     	  
-    	} finally {
-    	  out.close();
-    	  bos.close();
-    	}
+        } finally {
+            if (out != null) {
+                out.close();
+            }
+            bos.close();
+        }
 
     }
 
@@ -95,10 +103,12 @@ public class Serializer {
 
     	  return bos.toByteArray();
 
-    	} finally {
-    	  out.close();
-    	  bos.close();
-    	}
+        } finally {
+            if (out != null) {
+                out.close();
+            }
+            bos.close();
+        }
 
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
index 5f2805f..01cef44 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
@@ -18,13 +18,16 @@
  */
 package org.apache.stratos.cloud.controller.pojo;
 
+import java.io.Serializable;
+
 /**
  * Holds runtime data of a Cluster.
  * @author nirmal
  *
  */
-public class ClusterContext {
+public class ClusterContext implements Serializable{
 
+    private static final long serialVersionUID = 4830667953031229223L;
     // cluster id
     private String clusterId;
     // cartridge type

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
index 9e35926..34e7f04 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
@@ -18,14 +18,17 @@
  */
 package org.apache.stratos.cloud.controller.pojo;
 
+import java.io.Serializable;
+
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 
 /**
  * @author nirmal
  *
  */
-public class DataPublisherConfig {
+public class DataPublisherConfig implements Serializable{
 
+    private static final long serialVersionUID = -2097472019584151205L;
     private String bamUsername = CloudControllerConstants.DEFAULT_BAM_SERVER_USER_NAME;
     private String bamPassword = CloudControllerConstants.DEFAULT_BAM_SERVER_PASSWORD;
     private String dataPublisherCron = CloudControllerConstants.PUB_CRON_EXPRESSION;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
deleted file mode 100644
index f8d586b..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.apache.stratos.cloud.controller.pojo;
-
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.Template;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class Host extends Zone {
-    private String id;
-    private String type;
-    private Map<String, String> properties = new HashMap<String, String>();
-
-    private transient ComputeService computeService;
-
-    private transient Template template;
-
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-     public Map<String, String> getProperties() {
-        return properties;
-    }
-
-    public void setProperties(Map<String, String> properties) {
-        this.properties = properties;
-    }
-
-     public void setProperty(String key, String value) {
-
-        if (key != null && value != null) {
-            getProperties().put(key, value);
-        }
-    }
-
-    public String getProperty(String key) {
-        if(getProperties().get(key) != null) {
-            return getProperties().get(key);
-        } else {
-            return super.getProperty(key);
-        }
-    }
-
-     public ComputeService getComputeService() {
-        return computeService;
-    }
-
-    public void setComputeService(ComputeService computeService) {
-        this.computeService = computeService;
-    }
-
-    public Template getTemplate() {
-        return template;
-    }
-
-    public void setTemplate(Template template) {
-        this.template = template;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
deleted file mode 100644
index b5d8e95..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
+++ /dev/null
@@ -1,162 +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.cloud.controller.pojo;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jclouds.compute.domain.NodeMetadata;
-
-/**
- * 
- * Holds runtime data of an IaaS
- */
-public class IaasContext implements Serializable{
-	
-    private static final long serialVersionUID = 3370272526949562217L;
-
-	private String type;
-	
-	private List<String> nodeIds;
-	
-	/**
-	 * Key - node id
-	 * Value - public ip
-	 */
-	private Map<String, String> nodeToPublicIp;
-	
-	/**
-	 * Key - node id
-	 * Value - NodeMetadata object which has information on this node.
-	 */
-	private transient Map<String, NodeMetadata> nodes;
-	
-	private List<String> toBeRemovedNodeIds;
-	
-	public IaasContext(String iaasType) {
-		this.type = iaasType;
-		nodeToPublicIp = new HashMap<String, String>();
-		nodeIds = new ArrayList<String>();
-		nodes = new HashMap<String, NodeMetadata>();
-		toBeRemovedNodeIds = new ArrayList<String>();
-    }
-
-	public Map<String, String> getNodeToPublicIp() {
-		return nodeToPublicIp;
-	}
-	
-	public Map<String, NodeMetadata> getNodes() {
-		return nodes;
-	}
-	
-	public void setToBeRemovedNodeIds(List<String> list) {
-		this.toBeRemovedNodeIds = list;
-	}
-	
-	public List<String> getAllNodeIds() {
-		List<String> allNodeIds = new ArrayList<String>(nodeIds);
-		allNodeIds.addAll(toBeRemovedNodeIds);
-		return allNodeIds;
-	}
-	
-	public List<String> getNodeIds() {
-		return nodeIds;
-	}
-	
-	public List<String> getToBeRemovedNodeIds() {
-		return toBeRemovedNodeIds;
-	}
-	
-	public boolean didISpawn(String nodeId) {
-		if(nodeIds.contains(nodeId) || toBeRemovedNodeIds.contains(nodeId)){
-			return true;
-		}
-		return false;
-	}
-	
-	public void addNodeId(String nodeId) {
-		nodeIds.add(nodeId);
-	}
-	
-	public void addNodeToPublicIp(String nodeId, String publicIp) {
-		nodeToPublicIp.put(nodeId, publicIp);
-	}
-	
-	public void addToBeRemovedNodeId(String nodeId) {
-		toBeRemovedNodeIds.add(nodeId);
-	}
-	
-	public void removeNodeId(String nodeId) {
-		if(nodeIds.remove(nodeId)){
-			toBeRemovedNodeIds.add(nodeId);
-		}
-	}
-	
-	public void removeToBeRemovedNodeId(String nodeId) {
-		toBeRemovedNodeIds.remove(nodeId);
-	}
-	
-	public void setNodeIds(List<String> nodeIds) {
-		this.nodeIds = nodeIds;
-	}
-	
-	public String lastlySpawnedNode() {
-		return nodeIds.get(nodeIds.size()-1);
-	}
-	
-	public void addNodeMetadata(NodeMetadata node) {
-	    if(nodes == null){
-	        nodes = new HashMap<String, NodeMetadata>();
-	    }
-		nodes.put(node.getId(), node);
-	}
-	
-    public void removeNodeMetadata(NodeMetadata node) {
-        if (nodes != null) {
-            nodes.remove(node.getId());
-        }
-    }
-	
-	public void removeNodeIdToPublicIp(String nodeId){
-		nodeToPublicIp.remove(nodeId);
-	}
-	
-	public NodeMetadata getNode(String nodeId) {
-	    if(nodes == null) {
-	        return null;
-	    }
-		return nodes.get(nodeId);
-	}
-	
-	public String getPublicIp(String nodeId){
-		return nodeToPublicIp.get(nodeId);
-	}
-
-	public String getType() {
-        return type;
-    }
-
-	public void setType(String type) {
-        this.type = type;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
index bffd6cf..449e2d9 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
@@ -25,7 +25,6 @@ import org.jclouds.compute.domain.Template;
 
 import java.io.Serializable;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -41,8 +40,6 @@ public class IaasProvider implements Serializable{
      */
     private String type;
 
-    private List<Region>  listOfRegions;
-    
     /**
      * Fully qualified class name of an implementation of {@link org.apache.stratos.cloud.controller.interfaces.Iaas}
      */
@@ -250,22 +247,4 @@ public class IaasProvider implements Serializable{
 //    	toBeRemovedNodeIds = new ArrayList<String>();
     }
 
-    /**
-     * Partition the IaaS using different region
-     */
-    public List<Region> getListOfRegions() {
-        return listOfRegions;
-    }
-
-    public void setListOfRegions(List<Region> listOfRegions) {
-        this.listOfRegions = listOfRegions;
-    }
-
-    public void addRegion(Region region) {
-        this.listOfRegions.add(region);
-    }
-
-    public void removeRegion(Region region) {
-        this.listOfRegions.remove(region);
-    }
 }