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:58 UTC

[04/12] git commit: cleaning up CC, find bug amendments, removing deprecated classes

cleaning up CC, find bug amendments, removing deprecated classes


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

Branch: refs/heads/master
Commit: c883ee2a83925ec132cca31402086f290c4f1afc
Parents: 12dbd29
Author: Nirmal Fernando <ni...@apache.org>
Authored: Sat Nov 30 20:25:16 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Sat Nov 30 20:25:16 2013 +0530

----------------------------------------------------------------------
 .../controller/axiom/AxiomXpathParser.java      | 1776 ------------------
 .../controller/axiom/AxiomXpathParserUtil.java  |    1 -
 .../parser/CloudControllerConfigParser.java     |   10 -
 .../axiom/parser/ServiceConfigParser.java       |  563 ------
 .../controller/deployers/CartridgeDeployer.java |   33 +-
 .../deployers/CloudControllerDeployer.java      |    1 -
 .../controller/deployers/ServiceDeployer.java   |  152 --
 .../deployment/partition/PartitionGroup.java    |    2 -
 .../cloud/controller/iaases/AWSEC2Iaas.java     |    7 +-
 .../controller/iaases/OpenstackNovaIaas.java    |   11 +-
 .../impl/CloudControllerServiceImpl.java        |  499 ++---
 .../cloud/controller/persist/Deserializer.java  |   32 +-
 .../cloud/controller/persist/Serializer.java    |   36 +-
 .../cloud/controller/pojo/ClusterContext.java   |    5 +-
 .../controller/pojo/DataPublisherConfig.java    |    5 +-
 .../stratos/cloud/controller/pojo/Host.java     |   73 -
 .../cloud/controller/pojo/IaasContext.java      |  162 --
 .../cloud/controller/pojo/IaasProvider.java     |   21 -
 .../cloud/controller/pojo/LocationScope.java    |   70 -
 .../cloud/controller/pojo/MemberContext.java    |    5 +-
 .../cloud/controller/pojo/Properties.java       |    5 +-
 .../stratos/cloud/controller/pojo/Property.java |    5 +-
 .../stratos/cloud/controller/pojo/Region.java   |  125 --
 .../cloud/controller/pojo/ServiceContext.java   |  366 ----
 .../stratos/cloud/controller/pojo/Zone.java     |   90 -
 .../CartridgeInstanceDataPublisherTask.java     |  336 ++--
 .../controller/registry/RegistryManager.java    |   15 +-
 .../runtime/FasterLookUpDataHolder.java         |  254 ++-
 .../controller/topology/TopologyBuilder.java    |   27 +-
 .../topology/TopologyEventSender.java           |    1 -
 .../controller/topology/TopologyManager.java    |    9 +-
 .../service/axiom/AxiomValidationTest.java      |    2 -
 .../service/util/ServiceContextTest.java        |   47 -
 33 files changed, 555 insertions(+), 4191 deletions(-)
----------------------------------------------------------------------


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/AxiomXpathParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
deleted file mode 100644
index 0c08332..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParser.java
+++ /dev/null
@@ -1,1776 +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;
-
-import com.google.gson.Gson;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.xpath.AXIOMXPath;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.exception.CloudControllerException;
-import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
-import org.apache.stratos.cloud.controller.topology.TopologyManager;
-import org.apache.stratos.cloud.controller.util.*;
-import org.apache.stratos.messaging.domain.topology.Scope;
-import org.jaxen.JaxenException;
-import org.w3c.dom.Element;
-import org.wso2.securevault.SecretResolver;
-import org.wso2.securevault.SecretResolverFactory;
-
-import javax.xml.XMLConstants;
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.Source;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
-import java.io.File;
-import java.util.*;
-
-/**
- * This class is parsing configuration files using Axiom Xpath.
- */
-public class AxiomXpathParser {
-
-//    private static final Log log = LogFactory.getLog(AxiomXpathParser.class);
-//    private OMElement documentElement;
-//    private final File xmlSource;
-//
-//    public AxiomXpathParser(final File xmlFile) {
-//        xmlSource = xmlFile;
-//    }
-//
-//    /**
-//     * @param cartridgeElementString Cartridges section as a {@link String}
-//     * @param aCartridge             {@link org.apache.stratos.cloud.controller.util.Cartridge} instance.
-//     * @param appTypesNodes          nodes of App types.
-//     */
-//    private void getAppTypes(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 " +
-//                                    xmlSource;
-//                    handleException(msg);
-//                }
-//
-//            }
-//        }
-//    }
-//
-//    /**
-//     * @return a List of {@link Cartridge}s.
-//     */
-//    public List<Cartridge> getCartridgesList() {
-//
-//        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 = getMatchingNodes(xpath, documentElement);
-//
-//        if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
-//            // or from this XPATH
-//            xpath = CloudControllerConstants.CARTRIDGE_ELEMENT_XPATH;
-//            cartridgeNodes = getMatchingNodes(xpath, documentElement);
-//        }
-//
-//        if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
-//            log.warn("No cartridge found in this configuration file : " + xmlSource.getPath());
-//            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
-//                    loadProperties(cartridgeElement, aCartridge.getProperties());
-//
-//                    // retrieve the list of IaaS providers
-//                    List<?> iaasProviderNodes = getMatchingNodes(xpath + CloudControllerConstants.IAAS_PROVIDER_ELEMENT_XPATH,
-//                            cartridgeElement);
-//
-//                    getIaasProviders(iaasProviders, cartridgeElement.toString(), aCartridge, iaasProviderNodes);
-//
-//                    // load dirs
-//                    List<?> deploymentNodes = getMatchingNodes(xpath + CloudControllerConstants.DEPLOYMENT_ELEMENT_XPATH,
-//                            cartridgeElement);
-//                    setDeploymentDirs(cartridgeElement.toString(), aCartridge, deploymentNodes);
-//
-//                    // load port mappings
-//                    List<?> portMappingNodes =
-//                            getMatchingNodes(xpath +
-//                                    CloudControllerConstants.PORT_MAPPING_ELEMENT_XPATH,
-//                                    cartridgeElement);
-//                    getPortMappings(cartridgeElement.toString(), aCartridge, portMappingNodes);
-//
-//                    // load appTypes
-//                    List<?> appTypesNodes =
-//                            getMatchingNodes(xpath +
-//                                    CloudControllerConstants.APP_TYPES_ELEMENT_XPATH,
-//                                    cartridgeElement);
-//                    getAppTypes(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 void getIaasProviders(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(getIaasProvider(iaasElt, iaasProviders));
-//
-//                } else {
-//                    String msg =
-//                            "Essential '" +
-//                                    CloudControllerConstants.IAAS_PROVIDER_ELEMENT +
-//                                    "' element cannot" + " be found in " +
-//                                    cartridgeElementString + " of " +
-//                                    xmlSource;
-//                    handleException(msg);
-//                }
-//
-//            }
-//        }
-//    }
-//
-//    private Element getDOMElement(final OMElement omElement) {
-//
-//        // Get the StAX reader from the created element
-//        XMLStreamReader llomReader = omElement.getXMLStreamReader();
-//
-//        // Create the DOOM OMFactory
-//        OMFactory doomFactory = DOOMAbstractFactory.getOMFactory();
-//
-//        // Create the new builder
-//        StAXOMBuilder doomBuilder = new StAXOMBuilder(doomFactory, llomReader);
-//
-//        // Get the document element
-//        OMElement newElem = doomBuilder.getDocumentElement();
-//
-//        return newElem instanceof Element ? (Element) newElem : null;
-//    }
-//
-//    private OMElement getElement(final Object obj) {
-//        OMNode node;
-//        if ((obj instanceof OMNode) && (node = (OMNode) obj).getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement element = (OMElement) node;
-//
-//            return element;
-//
-//        }
-//
-//        return null;
-//    }
-//
-//    private OMElement getElement(final OMElement rootElt, final String eltStr, final String xpath) {
-//        List<?> nodes = getMatchingNodes(xpath, rootElt);
-//        neglectingWarn(eltStr, nodes.size());
-//        OMElement element = getElement(nodes.get(0));
-//        return element;
-//    }
-//
-//    private OMElement getFirstChildElement(final OMElement root, final String childName) {
-//        Iterator<?> it = root.getChildrenWithName(new QName(childName));
-//        if (it.hasNext()) {
-//            return (OMElement) it.next();
-//        }
-//
-//        return null;
-//    }
-//
-//    /**
-//     * @param xpath XPATH expression to be read.
-//     * @param elt   OMElement to be used for the search.
-//     * @return List matching OMNode list
-//     */
-//    @SuppressWarnings("unchecked")
-//    public OMNode getFirstMatchingNode(final String xpath, final OMElement elt) {
-//
-//        AXIOMXPath axiomXpath;
-//        List<OMNode> nodeList = null;
-//        try {
-//            axiomXpath = new AXIOMXPath(xpath);
-//            nodeList = axiomXpath.selectNodes(elt);
-//        } catch (JaxenException e) {
-//            String msg = "Error occurred while reading the Xpath (" + xpath + ")";
-//            log.error(msg, e);
-//            throw new CloudControllerException(msg, e);
-//        }
-//
-//        return nodeList != null ? nodeList.get(0) : null;
-//    }
-//
-//    private IaasProvider getIaasProvider(final OMNode item, List<IaasProvider> iaases) {
-//
-//        IaasProvider iaas = null;
-//
-//        if (item.getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement iaasElt = (OMElement) item;
-//
-//            if (iaases != null) {
-//                // check whether this is a reference to a predefined IaaS.
-//                for (IaasProvider iaasProvider : iaases) {
-//                    if (iaasProvider.getType()
-//                            .equals(iaasElt.getAttribute(new QName(
-//                                    CloudControllerConstants.TYPE_ATTR))
-//                                    .getAttributeValue())) {
-//                        iaas = new IaasProvider(iaasProvider);
-//                        break;
-//                    }
-//                }
-//            }
-//
-//            if (iaas == null) {
-//                iaas = new IaasProvider();
-//            }
-//
-//            if (iaas.getType() == null) {
-//                iaas.setType(iaasElt.getAttribute(new QName(CloudControllerConstants.TYPE_ATTR))
-//                        .getAttributeValue());
-//            }
-//
-//            if ("".equals(iaas.getType())) {
-//                String msg =
-//                        "'" + CloudControllerConstants.IAAS_PROVIDER_ELEMENT + "' element's '" +
-//                                CloudControllerConstants.TYPE_ATTR +
-//                                "' attribute should be specified!";
-//
-//                handleException(msg);
-//
-//            }
-//
-//            // this is not mandatory
-//            String name =
-//                    (iaasElt.getAttribute(new QName(CloudControllerConstants.NAME_ATTR)) == null)
-//                            ? iaas.getName()
-//                            : iaasElt.getAttributeValue(new QName(
-//                            CloudControllerConstants.NAME_ATTR));
-//
-//            iaas.setName(name);
-//
-//            String xpath = CloudControllerConstants.IAAS_PROVIDER_ELEMENT_XPATH;
-//
-//            // load other elements
-//            loadClassName(iaas, iaasElt);
-//            loadProvider(iaas, iaasElt);
-//            //load region
-//            loadRegion(iaas);
-////			loadMaxInstanceLimit(iaas, iaasElt);
-//            loadProperties(iaasElt, iaas.getProperties());
-//            loadTemplate(iaas, iaasElt);
-////			loadScalingOrders(iaas, iaasElt);
-//            loadIdentity(iaas, iaasElt);
-//            loadCredentials(iaas, iaasElt, xpath);
-//        }
-//
-//        return iaas;
-//    }
-//
-//    private Partition getPartition(final OMNode item) {
-//        Partition partition = null;
-//        Partition oldPartition = null;
-//        String id = null;
-//        String type = null;
-//
-//        if (item.getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement iaasElt = (OMElement) item;
-//            Iterator<?> it =
-//                    iaasElt.getChildrenWithName(new QName(CloudControllerConstants.ID_ELEMENT));
-//
-//            if (it.hasNext()) {
-//                OMElement providerElt = (OMElement) it.next();
-//                id = providerElt.getText();
-//            }
-//
-//            if (it.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.ID_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (id == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.ID_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//            oldPartition = TopologyManager.getInstance().getTopology().getPartition(id);
-//            Iterator<?> it1 =
-//                    iaasElt.getChildrenWithName(new QName(CloudControllerConstants.SCOPE_ELEMENT));
-//
-//            if (it1.hasNext()) {
-//                OMElement providerElt = (OMElement) it1.next();
-//                type = providerElt.getText();
-//            }
-//
-//            if (it1.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.SCOPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (type == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.SCOPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//
-//            if (oldPartition != null) {
-//                //load region id
-//                if (oldPartition.getId().equals(id)) {
-//                    partition = oldPartition;
-//                }
-//            }
-//
-//            if (partition == null) {
-//                partition = new Partition();
-//                partition.setId(id);
-//                partition.setScope(Scope.valueOf(type));
-//                loadProperties(iaasElt, partition.getProperties());
-//                //handle partition created event
-//                TopologyBuilder.handlePartitionCreated(partition);
-//
-//            } else {
-//                Partition partition1 = new Partition();
-//                partition1.setId(id);
-//                partition1.setScope(Scope.valueOf(type));
-//                loadProperties(iaasElt, partition1.getProperties());
-//                Gson gson = new Gson();
-//                String partitionS = gson.toJson(partition);
-//                String partition1S = gson.toJson(partition1);
-//                if (!partitionS.endsWith(partition1S)) {
-//                    partition.setId(id);
-//                    partition.setScope(Scope.valueOf(type));
-//                    loadProperties(iaasElt, partition.getProperties());
-//                    //handle update partition event
-//                    TopologyBuilder.handlePartitionUpdated(partition, oldPartition);
-//
-//                }
-//
-//            }
-//
-//        }
-//        return partition;
-//    }
-//
-//    private Region getRegion(final OMNode item, List<Region> regions, IaasProvider provider) {
-//
-//        Region region = null;
-//        String type = null;
-//
-//        if (item.getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement regionElm = (OMElement) item;
-//
-//            OMElement iaasElt = (OMElement) regionElm.getParent();
-//            if (!iaasElt.getAttribute(new QName(CloudControllerConstants.TYPE_ATTR))
-//                    .getAttributeValue().equals(provider.getType())) {
-//                return region;
-//            }
-//
-//            Iterator<?> it =
-//                    regionElm.getChildrenWithName(new QName(CloudControllerConstants.TYPE_ELEMENT));
-//
-//            if (it.hasNext()) {
-//                OMElement providerElt = (OMElement) it.next();
-//                type = providerElt.getText();
-//            }
-//
-//            if (it.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (type == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//            if (regions != null) {
-//                // check whether this is a reference to a predefined Region.
-//                for (Region region1 : regions) {
-//                    //load region id
-//
-//                    if (region1.getType().equals(type)) {
-//                        region = region1;
-//                        break;
-//                    }
-//                }
-//            }
-//            if (region == null) {
-//                region = new Region();
-//                region.setType(type);
-//            }
-//
-//            Iterator<?> it1 =
-//                    regionElm.getChildrenWithName(new QName(CloudControllerConstants.ID_ELEMENT));
-//
-//            if (it1.hasNext()) {
-//                OMElement providerElt = (OMElement) it1.next();
-//                region.setId(providerElt.getText());
-//            }
-//
-//            if (it1.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (region.getId() == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//            if (provider.getCredential() != null) {
-//                log.warn("Provider credential will be overwritten by region credential");
-//            }
-//            loadCredentials(region, regionElm);
-//
-//            if (provider.getIdentity() != null) {
-//                log.warn("Provider identity will be overwritten by region credential");
-//            }
-//            loadIdentity(region, regionElm);
-//            loadProperties(regionElm, region.getProperties());
-//            //load zone
-//            loadZone(region);
-//
-//        }
-//        return region;
-//    }
-//
-//    private Zone getZone(final OMNode item, List<Zone> zones, Region region) {
-//
-//        Zone zone = null;
-//        String type = null;
-//        String typeRegion = null;
-//
-//        if (item.getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement zoneElm = (OMElement) item;
-//
-//            OMElement regionElt = (OMElement) zoneElm.getParent();
-//
-//            Iterator<?> it2 =
-//                    regionElt.getChildrenWithName(new QName(CloudControllerConstants.TYPE_ELEMENT));
-//
-//            if (it2.hasNext()) {
-//                OMElement providerElt = (OMElement) it2.next();
-//                typeRegion = providerElt.getText();
-//            }
-//            if (!region.getType().equals(typeRegion)) {
-//                return zone;
-//            }
-//            Iterator<?> it =
-//                    zoneElm.getChildrenWithName(new QName(CloudControllerConstants.TYPE_ELEMENT));
-//
-//            if (it.hasNext()) {
-//                OMElement providerElt = (OMElement) it.next();
-//                type = providerElt.getText();
-//            }
-//
-//            if (it.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (type == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//            if (zones != null) {
-//                // check whether this is a reference to a predefined Region.
-//                for (Zone zone1 : zones) {
-//                    //load region id
-//
-//                    if (zone1.getType().equals(type)) {
-//                        zone = zone1;
-//                        break;
-//                    }
-//                }
-//            }
-//            if (zone == null) {
-//                zone = new Zone();
-//                zone.setType(type);
-//            }
-//
-//            Iterator<?> it1 =
-//                    zoneElm.getChildrenWithName(new QName(CloudControllerConstants.ID_ELEMENT));
-//
-//            if (it1.hasNext()) {
-//                OMElement providerElt = (OMElement) it1.next();
-//                zone.setId(providerElt.getText());
-//            }
-//
-//            if (it1.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (region.getId() == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//            loadProperties(zoneElm, zone.getProperties());
-//            //load Host
-//            loadHost(zone);
-//
-//        }
-//        return zone;
-//    }
-//
-//    private Host getHost(final OMNode item, List<Host> hosts, Zone zone) {
-//
-//        Host host = null;
-//        String type = null;
-//        String typeZone = null;
-//
-//        if (item.getType() == OMNode.ELEMENT_NODE) {
-//
-//            OMElement hostElt = (OMElement) item;
-//
-//            OMElement zoneElt = (OMElement) hostElt.getParent();
-//
-//            Iterator<?> it2 =
-//                    zoneElt.getChildrenWithName(new QName(CloudControllerConstants.TYPE_ELEMENT));
-//
-//            if (it2.hasNext()) {
-//                OMElement providerElt = (OMElement) it2.next();
-//                typeZone = providerElt.getText();
-//            }
-//            if (!zone.getType().equals(typeZone)) {
-//                return host;
-//            }
-//            Iterator<?> it =
-//                    hostElt.getChildrenWithName(new QName(CloudControllerConstants.TYPE_ELEMENT));
-//
-//            if (it.hasNext()) {
-//                OMElement providerElt = (OMElement) it.next();
-//                type = providerElt.getText();
-//            }
-//
-//            if (it.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (type == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//            if (hosts != null) {
-//                // check whether this is a reference to a predefined Region.
-//                for (Host host1 : hosts) {
-//                    //load region id
-//
-//                    if (host1.getType().equals(type)) {
-//                        host = host1;
-//                        break;
-//                    }
-//                }
-//            }
-//            if (host == null) {
-//                host = new Host();
-//                host.setType(type);
-//            }
-//
-//            Iterator<?> it1 =
-//                    hostElt.getChildrenWithName(new QName(CloudControllerConstants.ID_ELEMENT));
-//
-//            if (it1.hasNext()) {
-//                OMElement providerElt = (OMElement) it1.next();
-//                host.setId(providerElt.getText());
-//            }
-//
-//            if (it1.hasNext()) {
-//                log.warn(xmlSource + " contains more than one " + CloudControllerConstants.TYPE_ELEMENT +
-//                        " elements!" + " Elements other than the first will be neglected.");
-//            }
-//
-//            if (host.getId() == null) {
-//                String msg =
-//                        "Essential '" + CloudControllerConstants.TYPE_ELEMENT + "' element " +
-//                                "has not specified in " + xmlSource;
-//                handleException(msg);
-//            }
-//            loadProperties(hostElt, host.getProperties());
-//
-//        }
-//        return host;
-//    }
-//
-//    /**
-//     * @param xpath XPATH expression to be read.
-//     * @return List matching OMNode list
-//     */
-//    @SuppressWarnings("unchecked")
-//    public List<OMNode> getMatchingNodes(final String xpath) {
-//
-//        AXIOMXPath axiomXpath;
-//        List<OMNode> nodeList = null;
-//        try {
-//            axiomXpath = new AXIOMXPath(xpath);
-//            nodeList = axiomXpath.selectNodes(documentElement);
-//        } catch (JaxenException e) {
-//            String msg = "Error occurred while reading the Xpath (" + xpath + ")";
-//            log.error(msg, e);
-//            throw new CloudControllerException(msg, e);
-//        }
-//
-//        return nodeList;
-//    }
-//
-//
-//    /**
-//     * @param xpath XPATH expression to be read.
-//     * @param elt   OMElement to be used for the search.
-//     * @return List matching OMNode list
-//     */
-//    @SuppressWarnings("unchecked")
-//    public List<OMNode> getMatchingNodes(final String xpath, final OMElement elt) {
-//
-//        AXIOMXPath axiomXpath;
-//        List<OMNode> nodeList = null;
-//        try {
-//            axiomXpath = new AXIOMXPath(xpath);
-//            nodeList = axiomXpath.selectNodes(elt);
-//        } catch (JaxenException e) {
-//            String msg = "Error occurred while reading the Xpath (" + xpath + ")";
-//            log.error(msg, e);
-//            throw new CloudControllerException(msg, e);
-//        }
-//
-//        return nodeList;
-//    }
-//
-//    /**
-//     * @param cartridgeElementString Cartridges section as a {@link String}
-//     * @param aCartridge             {@link Cartridge} instance.
-//     * @param portMappingNodes       nodes of port mapping elements
-//     */
-//    private void getPortMappings(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 " +
-//                                    xmlSource;
-//                    handleException(msg);
-//                }
-//
-//            }
-//        }
-//    }
-//
-//    public List<ServiceContext> getServiceContexts() {
-//
-//        List<ServiceContext> serviceContextList = new ArrayList<ServiceContext>();
-//
-//        // services can be found from this XPATH
-//        String xpath = CloudControllerConstants.SERVICES_ELEMENT_XPATH;
-//        List<?> serviceNodes = getMatchingNodes(xpath, documentElement);
-//
-//        if (serviceNodes == null || serviceNodes.isEmpty()) {
-//            // or from this XPATH
-//            xpath = CloudControllerConstants.SERVICE_ELEMENT_XPATH;
-//            serviceNodes = getMatchingNodes(xpath, documentElement);
-//        }
-//
-//        if (serviceNodes == null || serviceNodes.isEmpty()) {
-//            log.warn("No service found in this configuration file : " + xmlSource.getPath());
-//            return serviceContextList;
-//        }
-//
-//        for (Object obj : serviceNodes) {
-//            ServiceContext serviceCtxt = new ServiceContext();
-//
-//            // set the definition file
-//            serviceCtxt.setFile(xmlSource);
-//
-//            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 " + xmlSource;
-//
-//                        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 =
-//                            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 " + xmlSource;
-//
-//                            handleException(msg);
-//                        }
-//
-//                        // set Cartridge type
-//                        serviceCtxt.setCartridgeType(type);
-//
-//                    }
-//                    if (serviceCtxt.getCartridgeType() == null) {
-//                        String msg =
-//                                "Essential '" + CloudControllerConstants.CARTRIDGE_ELEMENT +
-//                                        "' element" + " has not specified in " + xmlSource;
-//                        handleException(msg);
-//                    }
-//
-//                    // load payload
-//                    loadPayload(getMatchingNodes(xpath + CloudControllerConstants.PAYLOAD_ELEMENT_XPATH,
-//                            node), serviceCtxt);
-//
-//                    // load host name
-//                    loadHostName(getMatchingNodes(xpath + CloudControllerConstants.HOST_ELEMENT_XPATH,
-//                            node), serviceCtxt);
-//
-//                    // load properties
-//                    loadProperties(node, serviceCtxt.getProperties());
-//
-//                }
-//            }
-//
-//            FasterLookUpDataHolder.getInstance().addServiceContext(serviceCtxt);
-//            // add each domain specific template to list
-//            serviceContextList.add(serviceCtxt);
-//        }
-//
-//        return serviceContextList;
-//
-//    }
-//
-//    public File getXmlSource() {
-//        return xmlSource;
-//    }
-//
-//    private void handleException(final String msg) {
-//        log.error(msg);
-//        throw new MalformedConfigurationFileException(msg);
-//    }
-//
-//    private void handleException(final String msg, final Exception e) {
-//        log.error(msg, e);
-//        throw new MalformedConfigurationFileException(msg, e);
-//    }
-//
-//    private void loadClassName(final IaasProvider iaas, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(
-//                        CloudControllerConstants.CLASS_NAME_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement classNameElt = (OMElement) it.next();
-//            iaas.setClassName(classNameElt.getText());
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " +
-//                    CloudControllerConstants.CLASS_NAME_ELEMENT + " elements!" +
-//                    " Elements other than the first will be neglected.");
-//        }
-//
-//        if (iaas.getClassName() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.CLASS_NAME_ELEMENT + "' element " +
-//                            "has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    private void loadCredentials(final IaasProvider iaas, final OMElement iaasElt,
-//                                 final String xpath) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(
-//                        CloudControllerConstants.CREDENTIAL_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement credentialElt = (OMElement) it.next();
-//
-//            // retrieve the value using secure vault
-//            SecretResolver secretResolver = SecretResolverFactory.create(documentElement, false);
-//            String alias =
-//                    credentialElt.getAttributeValue(new QName(
-//                            CloudControllerConstants.ALIAS_ATTRIBUTE));
-//
-//            // retrieve the secured password
-//            if (secretResolver != null && secretResolver.isInitialized() &&
-//                    secretResolver.isTokenProtected(alias)) {
-//
-//                iaas.setCredential(secretResolver.resolve(alias));
-//
-//            }
-//
-//            // if we still cannot find a value, we try to assign the value which
-//            // is specified
-//            // in the element, if any
-//            if (iaas.getCredential() == null) {
-//                log.warn("Unable to find a value for " + CloudControllerConstants.CREDENTIAL_ELEMENT +
-//                        " element from Secure Vault." +
-//                        "Hence we will try to assign the plain text value (if specified).");
-//                iaas.setCredential(credentialElt.getText());
-//            }
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " +
-//                    CloudControllerConstants.CREDENTIAL_ELEMENT + " elements!" +
-//                    " Elements other than the first will be neglected.");
-//        }
-//
-//        if (iaas.getCredential() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.CREDENTIAL_ELEMENT + "' element" +
-//                            " has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    private void loadCredentials(Region region, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(
-//                        CloudControllerConstants.CREDENTIAL_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement credentialElt = (OMElement) it.next();
-//
-//            // retrieve the value using secure vault
-//            SecretResolver secretResolver = SecretResolverFactory.create(documentElement, false);
-//            String alias =
-//                    credentialElt.getAttributeValue(new QName(
-//                            CloudControllerConstants.ALIAS_ATTRIBUTE));
-//
-//            // retrieve the secured password
-//            if (secretResolver != null && secretResolver.isInitialized() &&
-//                    secretResolver.isTokenProtected(alias)) {
-//
-//                region.setCredential(secretResolver.resolve(alias));
-//
-//            }
-//
-//            // if we still cannot find a value, we try to assign the value which
-//            // is specified
-//            // in the element, if any
-//            if (region.getCredential() == null) {
-//                log.warn("Unable to find a value for " + CloudControllerConstants.CREDENTIAL_ELEMENT +
-//                        " element from Secure Vault." +
-//                        "Hence we will try to assign the plain text value (if specified).");
-//                region.setCredential(credentialElt.getText());
-//            }
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " +
-//                    CloudControllerConstants.CREDENTIAL_ELEMENT + " elements!" +
-//                    " Elements other than the first will be neglected.");
-//        }
-//
-//        if (region.getCredential() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.CREDENTIAL_ELEMENT + "' element" +
-//                            " has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    private 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 void loadIdentity(final IaasProvider iaas, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(CloudControllerConstants.IDENTITY_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement identityElt = (OMElement) it.next();
-//
-//            // retrieve the value using secure vault
-//            SecretResolver secretResolver = SecretResolverFactory.create(documentElement, false);
-//            String alias =
-//                    identityElt.getAttributeValue(new QName(
-//                            CloudControllerConstants.ALIAS_ATTRIBUTE));
-//
-//            // retrieve the secured password
-//            if (secretResolver != null && secretResolver.isInitialized() &&
-//                    secretResolver.isTokenProtected(alias)) {
-//
-//                iaas.setIdentity(secretResolver.resolve(alias));
-//
-//            }
-//
-//            // if we still cannot find a value, we try to assign the value which
-//            // is specified
-//            // in the element, if any
-//            if (iaas.getIdentity() == null) {
-//                log.warn("Unable to find a value for " + CloudControllerConstants.IDENTITY_ELEMENT +
-//                        " element from Secure Vault." +
-//                        "Hence we will try to assign the plain text value (if specified).");
-//                iaas.setIdentity(identityElt.getText());
-//            }
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " + CloudControllerConstants.IDENTITY_ELEMENT +
-//                    " elements!" + " Elements other than the first will be neglected.");
-//        }
-//
-//        if (iaas.getIdentity() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.IDENTITY_ELEMENT + "' element" +
-//                            " has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    private void loadIdentity(final Region region, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(CloudControllerConstants.IDENTITY_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement identityElt = (OMElement) it.next();
-//
-//            // retrieve the value using secure vault
-//            SecretResolver secretResolver = SecretResolverFactory.create(documentElement, false);
-//            String alias =
-//                    identityElt.getAttributeValue(new QName(
-//                            CloudControllerConstants.ALIAS_ATTRIBUTE));
-//
-//            // retrieve the secured password
-//            if (secretResolver != null && secretResolver.isInitialized() &&
-//                    secretResolver.isTokenProtected(alias)) {
-//
-//                region.setIdentity(secretResolver.resolve(alias));
-//
-//            }
-//
-//            // if we still cannot find a value, we try to assign the value which
-//            // is specified
-//            // in the element, if any
-//            if (region.getIdentity() == null) {
-//                log.warn("Unable to find a value for " + CloudControllerConstants.IDENTITY_ELEMENT +
-//                        " element from Secure Vault." +
-//                        "Hence we will try to assign the plain text value (if specified).");
-//                region.setIdentity(identityElt.getText());
-//            }
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " + CloudControllerConstants.IDENTITY_ELEMENT +
-//                    " elements!" + " Elements other than the first will be neglected.");
-//        }
-//
-//        if (region.getIdentity() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.IDENTITY_ELEMENT + "' element" +
-//                            " has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    /*private void loadMaxInstanceLimit(IaasProvider iaas, final OMElement iaasElt) {
-//
-//         Iterator<?> it =
-//                          iaasElt.getChildrenWithName(new QName(
-//                                                                CloudControllerConstants.MAX_INSTANCE_LIMIT_ELEMENT));
-//
-//         if (it.hasNext()) {
-//             OMElement maxInstanceLimitElt = (OMElement) it.next();
-//
-//             try {
-//                 iaas.setMaxInstanceLimit(Integer.parseInt(maxInstanceLimitElt.getText()));
-//             } catch (NumberFormatException e) {
-//                 String msg =
-//                              CloudControllerConstants.MAX_INSTANCE_LIMIT_ELEMENT +
-//                                      " element contained" + " in " + xmlSource + "" +
-//                                      " has a value which is not an Integer value.";
-//                 handleException(msg, e);
-//             }
-//
-//         }
-//
-//         if (it.hasNext()) {
-//             log.warn(xmlSource + " contains more than one " +
-//                      CloudControllerConstants.MAX_INSTANCE_LIMIT_ELEMENT + " elements!" +
-//                      " Elements other than the first will be neglected.");
-//         }
-//
-//     }*/
-//
-//    private 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 void loadProperties(final OMElement elt, final Map<String, String> propertyMap) {
-//
-//        Iterator<?> it =
-//                elt.getChildrenWithName(new QName(CloudControllerConstants.PROPERTY_ELEMENT));
-//
-//        while (it.hasNext()) {
-//            OMElement prop = (OMElement) it.next();
-//
-//            if (prop.getAttribute(new QName(CloudControllerConstants.PROPERTY_NAME_ATTR)) == null ||
-//                    prop.getAttribute(new QName(CloudControllerConstants.PROPERTY_VALUE_ATTR)) == null) {
-//
-//                String msg =
-//                        "Property element's, name and value attributes should be specified " +
-//                                "in " + xmlSource;
-//
-//                handleException(msg);
-//            }
-//
-//            propertyMap.put(prop.getAttribute(new QName(CloudControllerConstants.PROPERTY_NAME_ATTR))
-//                    .getAttributeValue(),
-//                    prop.getAttribute(new QName(CloudControllerConstants.PROPERTY_VALUE_ATTR))
-//                            .getAttributeValue());
-//        }
-//
-//    }
-//
-//    private void loadProvider(final IaasProvider iaas, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(CloudControllerConstants.PROVIDER_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement providerElt = (OMElement) it.next();
-//            iaas.setProvider(providerElt.getText());
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " + CloudControllerConstants.PROVIDER_ELEMENT +
-//                    " elements!" + " Elements other than the first will be neglected.");
-//        }
-//
-//        if (iaas.getProvider() == null) {
-//            String msg =
-//                    "Essential '" + CloudControllerConstants.PROVIDER_ELEMENT + "' element " +
-//                            "has not specified in " + xmlSource;
-//            handleException(msg);
-//        }
-//
-//    }
-//
-//    private void loadRegion(final IaasProvider iaas) {
-//        List<Region> regions = iaas.getListOfRegions();
-//
-//        if (regions == null) {
-//            iaas.setListOfRegions((regions = new ArrayList<Region>()));
-//        }
-//
-//        List<OMNode> nodeList = getMatchingNodes(CloudControllerConstants.REGION_XPATH);
-//
-//        // this is a valid scenario. User can have 0..1 iaas provider elements
-//        // in cloud-controller xml.
-//        if (nodeList == null || nodeList.isEmpty()) {
-//            return;
-//        }
-//
-//        for (OMNode node : nodeList) {
-//            regions.add(getRegion(node, regions, iaas));
-//        }
-//    }
-//
-//    private void loadZone(final Region region) {
-//        List<Zone> zones = region.getListOfZones();
-//
-//        if (zones == null) {
-//            region.setListOfZones((zones = new ArrayList<Zone>()));
-//        }
-//
-//        List<OMNode> nodeList = getMatchingNodes(CloudControllerConstants.ZONE_XPATH);
-//
-//        // this is a valid scenario. User can have 0..1 iaas provider elements
-//        // in cloud-controller xml.
-//        if (nodeList == null || nodeList.isEmpty()) {
-//            return;
-//        }
-//
-//        for (OMNode node : nodeList) {
-//            zones.add(getZone(node, zones, region));
-//        }
-//    }
-//
-//    private void loadHost(final Zone zone) {
-//        List<Host> hosts = zone.getListOfHosts();
-//
-//        if (hosts == null) {
-//            zone.setListOfHosts((hosts = new ArrayList<Host>()));
-//        }
-//
-//        List<OMNode> nodeList = getMatchingNodes(CloudControllerConstants.HOST_XPATH);
-//
-//        // this is a valid scenario. User can have 0..1 iaas provider elements
-//        // in cloud-controller xml.
-//        if (nodeList == null || nodeList.isEmpty()) {
-//            return;
-//        }
-//
-//        for (OMNode node : nodeList) {
-//            hosts.add(getHost(node, hosts, zone));
-//        }
-//    }
-//
-//    /* Have to handle at the autoscaler level...
-//     private void loadScalingOrders(final IaasProvider iaas, final OMElement iaasElt) {
-//         // set scale up order
-//         Iterator<?> it =
-//                          iaasElt.getChildrenWithName(new QName(
-//                                                                CloudControllerConstants.SCALE_UP_ORDER_ELEMENT));
-//
-//         if (it.hasNext()) {
-//             OMElement scaleUpOrderElt = (OMElement) it.next();
-//
-//             try {
-//                 iaas.setScaleUpOrder(Integer.parseInt(scaleUpOrderElt.getText()));
-//             } catch (NumberFormatException e) {
-//                 String msg =
-//                              CloudControllerConstants.SCALE_UP_ORDER_ELEMENT + " element contained" +
-//                                      " in " + xmlSource + "" +
-//                                      " has a value which is not an Integer value.";
-//                 handleException(msg, e);
-//             }
-//         }
-//
-//         if (it.hasNext()) {
-//             log.warn(xmlSource + " contains more than one " +
-//                      CloudControllerConstants.SCALE_UP_ORDER_ELEMENT + " elements!" +
-//                      " Elements other than the first will be neglected.");
-//         }
-//
-//         if (iaas.getScaleUpOrder() == -1) {
-//             String msg =
-//                          "Essential '" + CloudControllerConstants.SCALE_UP_ORDER_ELEMENT + "' element" +
-//                                  " has not specified in " + xmlSource;
-//             handleException(msg);
-//         }
-//
-//         // set scale down order
-//         it = iaasElt.getChildrenWithName(new QName(CloudControllerConstants.SCALE_DOWN_ORDER_ELEMENT));
-//
-//         if (it.hasNext()) {
-//             OMElement scaleDownElt = (OMElement) it.next();
-//
-//             try {
-//                 iaas.setScaleDownOrder(Integer.parseInt(scaleDownElt.getText()));
-//             } catch (NumberFormatException e) {
-//                 String msg =
-//                              CloudControllerConstants.SCALE_DOWN_ORDER_ELEMENT + " element contained" +
-//                                      " in " + xmlSource + "" +
-//                                      " has a value which is not an Integer value.";
-//                 handleException(msg, e);
-//             }
-//         }
-//
-//         if (it.hasNext()) {
-//             log.warn(xmlSource + " contains more than one " +
-//                      CloudControllerConstants.SCALE_DOWN_ORDER_ELEMENT + " elements!" +
-//                      " Elements other than the first will be neglected.");
-//         }
-//
-//         if (iaas.getScaleDownOrder() == -1) {
-//             String msg =
-//                          "Essential '" + CloudControllerConstants.SCALE_DOWN_ORDER_ELEMENT + "' element" +
-//                                  " has not specified in " + xmlSource;
-//             handleException(msg);
-//         }
-//
-//     }*/
-//
-//    private void loadTemplate(final IaasProvider iaas, final OMElement iaasElt) {
-//
-//        Iterator<?> it =
-//                iaasElt.getChildrenWithName(new QName(CloudControllerConstants.IMAGE_ID_ELEMENT));
-//
-//        if (it.hasNext()) {
-//            OMElement imageElt = (OMElement) it.next();
-//            iaas.setImage(imageElt.getText());
-//        }
-//
-//        if (it.hasNext()) {
-//            log.warn(xmlSource + " contains more than one " + CloudControllerConstants.IMAGE_ID_ELEMENT +
-//                    " elements!" + " Elements other than the first will be neglected.");
-//        }
-//
-//    }
-//
-//    private void neglectingWarn(final String elt, final int size) {
-//        if (size > 1) {
-//            log.warn(xmlSource + " contains more than one " + elt + " elements!" +
-//                    " Elements other than the first will be neglected.");
-//        }
-//    }
-//
-//    public void parse() {
-//
-//        if (xmlSource.exists()) {
-//            try {
-//                documentElement = new StAXOMBuilder(xmlSource.getPath()).getDocumentElement();
-//
-//            } catch (Exception ex) {
-//                String msg = "Error occurred when parsing the " + xmlSource.getPath() + ".";
-//                handleException(msg, ex);
-//            }
-//        } else {
-//            String msg = "Configuration file cannot be found : " + xmlSource.getPath();
-//            handleException(msg);
-//        }
-//    }
-//
-//    private void plainTextWarn(final String elt) {
-//        log.warn("Unable to find a value for " + elt + " element from Secure Vault." +
-//                "Hence we will try to assign the plain text value (if specified).");
-//    }
-//
-//    private String resolveSecret(final OMElement elt) {
-//        // retrieve the value using secure vault
-//        SecretResolver secretResolver = SecretResolverFactory.create(documentElement, false);
-//
-//        String alias = elt.getAttributeValue(new QName(CloudControllerConstants.ALIAS_ATTRIBUTE));
-//
-//        // retrieve the secured password
-//        if (secretResolver != null && secretResolver.isInitialized() &&
-//                secretResolver.isTokenProtected(alias)) {
-//
-//            return secretResolver.resolve(alias);
-//
-//        }
-//
-//        return null;
-//    }
-//
-//    public void setDataPublisherRelatedData() {
-//
-//        String eltStr = CloudControllerConstants.DATA_PUBLISHER_ELEMENT;
-//        // get dataPublisher element
-//        OMElement element =
-//                getElement(documentElement, eltStr,
-//                        CloudControllerConstants.DATA_PUBLISHER_XPATH);
-//
-//        if (element == null) {
-//            return;
-//        }
-//
-//        FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance();
-//        // get enable attribute
-//        boolean isEnable =
-//                Boolean.parseBoolean(element.getAttributeValue(new QName(
-//                        CloudControllerConstants.ENABLE_ATTR)));
-//        dataHolder.setEnableBAMDataPublisher(isEnable);
-//
-//        if (isEnable) {
-//            // get bam server info
-//            OMElement childElement =
-//                    getFirstChildElement(element,
-//                            CloudControllerConstants.BAM_SERVER_ELEMENT);
-//            OMElement elt;
-//
-//            if (childElement != null) {
-//                // set bam user name
-//                elt =
-//                        getFirstChildElement(childElement,
-//                                CloudControllerConstants.BAM_SERVER_ADMIN_USERNAME_ELEMENT);
-//                if (elt != null) {
-//                    dataHolder.setBamUsername(elt.getText());
-//                }
-//                // set bam password
-//                elt =
-//                        getFirstChildElement(childElement,
-//                                CloudControllerConstants.BAM_SERVER_ADMIN_PASSWORD_ELEMENT);
-//                if (elt != null) {
-//                    String password = resolveSecret(elt);
-//                    if (password == null) {
-//                        plainTextWarn(CloudControllerConstants.BAM_SERVER_ADMIN_PASSWORD_ELEMENT);
-//                        password = elt.getText();
-//                    }
-//
-//                    if (password != null) {
-//                        dataHolder.setBamPassword(password);
-//                    }
-//                }
-//            }
-//
-//            // set cron
-//            childElement = getFirstChildElement(element, CloudControllerConstants.CRON_ELEMENT);
-//            if (childElement != null) {
-//                dataHolder.setDataPublisherCron(childElement.getText());
-//            }
-//
-//            // set cassandra info
-//            childElement = getFirstChildElement(element, CloudControllerConstants.CASSANDRA_INFO_ELEMENT);
-//
-//            if (childElement != null) {
-//                // set connection url
-//                elt = getFirstChildElement(childElement, CloudControllerConstants.CONNECTION_URL_ELEMENT);
-//                if (elt != null) {
-//                    dataHolder.setCassandraConnUrl(elt.getText());
-//                }
-//
-//                // set user name
-//                elt = getFirstChildElement(childElement, CloudControllerConstants.USER_NAME_ELEMENT);
-//                if (elt != null) {
-//                    dataHolder.setCassandraUser(elt.getText());
-//                }
-//                // set password
-//                elt = getFirstChildElement(childElement, CloudControllerConstants.PASSWORD_ELEMENT);
-//                if (elt != null) {
-//                    String password = resolveSecret(elt);
-//                    if (password == null) {
-//                        plainTextWarn(CloudControllerConstants.PASSWORD_ELEMENT);
-//                        password = elt.getText();
-//                    }
-//
-//                    if (password != null) {
-//                        dataHolder.setCassandraPassword(password);
-//                    }
-//                }
-//            }
-//
-//        }
-//
-//    }
-//
-//    /**
-//     * @param cartridgeElementString Cartridges section as a {@link String}
-//     * @param aCartridge             {@link Cartridge} instance.
-//     * @param deploymentNodes        list of deployment directory nodes
-//     */
-//    private void setDeploymentDirs(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 " + xmlSource;
-//                handleException(msg);
-//            }
-//
-//        }
-//    }
-//
-//    public void setIaasProvidersList() {
-//
-//        List<IaasProvider> iaasProviders = FasterLookUpDataHolder.getInstance().getIaasProviders();
-//
-//        if (iaasProviders == null) {
-//            FasterLookUpDataHolder.getInstance()
-//                    .setIaasProviders((iaasProviders = new ArrayList<IaasProvider>()));
-//        }
-//
-//        List<OMNode> nodeList = getMatchingNodes(CloudControllerConstants.IAAS_PROVIDER_XPATH);
-//
-//        // this is a valid scenario. User can have 0..1 iaas provider elements
-//        // in cloud-controller xml.
-//        if (nodeList == null || nodeList.isEmpty()) {
-//            return;
-//        }
-//
-//        for (OMNode node : nodeList) {
-//            iaasProviders.add(getIaasProvider(node, iaasProviders));
-//        }
-//
-//    }
-//
-//    public void setPartitionsList() {
-//        Set<String> partitionIds = TopologyManager.getInstance().getTopology().getPartitionMap().keySet();
-//        List<String> ids = new ArrayList<String>();
-//
-//        List<OMNode> nodeList = getMatchingNodes(CloudControllerConstants.PARTITION_XPATH);
-//
-//        // this is a valid scenario. User can have 0..1 iaas provider elements
-//        // in cloud-controller xml.
-//        if (nodeList == null || nodeList.isEmpty()) {
-//            return;
-//        }
-//
-//        for (OMNode node : nodeList) {
-//            ids.add(getPartition(node).getId());
-//
-//        }
-//        //have to remove the non existing partition from the map
-//        boolean isFound;
-//        for (String parId : partitionIds) {
-//            isFound = false;
-//            for (String id : ids) {
-//                if (parId.equals(id)) {
-//                    isFound = true;
-//                    break;
-//                }
-//            }
-//            if (!isFound) {
-//                //have to remove the partition id from the Topology
-//                TopologyBuilder.handlePartitionRemoved(TopologyManager.getInstance().getTopology().getPartition(parId));
-//            }
-//        }
-//    }
-//
-//
-//    public void setTopologySyncRelatedData() {
-//
-//        String eltStr = CloudControllerConstants.TOPOLOGY_SYNC_ELEMENT;
-//        // get topologySync element
-//        OMElement element =
-//                getElement(documentElement, eltStr,
-//                        CloudControllerConstants.TOPOLOGY_SYNC_XPATH);
-//
-//        if (element == null) {
-//            return;
-//        }
-//
-//        // get enable attribute
-//        boolean isEnable =
-//                Boolean.parseBoolean(element.getAttributeValue(new QName(
-//                        CloudControllerConstants.ENABLE_ATTR)));
-//
-//        FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance();
-//
-//        dataHolder.setEnableTopologySync(isEnable);
-//
-//        if (isEnable) {
-//            TopologyConfig topologyConfig = new TopologyConfig();
-//            // load properties
-//            loadProperties(element, topologyConfig.getProperties());
-//
-//            dataHolder.setTopologyConfig(topologyConfig);
-//        }
-//
-//
-//    }
-//
-//    public boolean validate(final File schemaFile) throws Exception {
-//        validate(documentElement, schemaFile);
-//        return true;
-//    }
-//
-//    public void validate(final OMElement omElement, final File schemaFile) throws Exception {
-//
-//        Element sourceElement;
-//
-//        // if the OMElement is created using DOM implementation use it
-//        if (omElement instanceof ElementImpl) {
-//            sourceElement = (Element) omElement;
-//        } else { // else convert from llom to dom
-//            sourceElement = getDOMElement(omElement);
-//        }
-//
-//        // Create a SchemaFactory capable of understanding WXS schemas.
-//
-//        // Load a WXS schema, represented by a Schema instance.
-//        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-//        Source source = new StreamSource(schemaFile);
-//
-//        // Create a Validator object, which can be used to validate
-//        // an instance document.
-//        Schema schema = factory.newSchema(source);
-//        Validator validator = schema.newValidator();
-//
-//        // Validate the DOM tree.
-//        validator.validate(new DOMSource(sourceElement));
-//    }
-
-}

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/AxiomXpathParserUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParserUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParserUtil.java
index cc78501..f10e4cc 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParserUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/AxiomXpathParserUtil.java
@@ -27,7 +27,6 @@ import org.apache.axiom.om.impl.dom.ElementImpl;
 import org.apache.axiom.om.xpath.AXIOMXPath;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.exception.CloudControllerException;
 import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
 import org.apache.stratos.cloud.controller.util.*;
 import org.jaxen.JaxenException;

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/CloudControllerConfigParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java
index 9b2cb5e..980fe99 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java
@@ -19,10 +19,7 @@
 package org.apache.stratos.cloud.controller.axiom.parser;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
-
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;
@@ -36,8 +33,6 @@ import org.apache.stratos.cloud.controller.pojo.IaasProvider;
 import org.apache.stratos.cloud.controller.pojo.TopologyConfig;
 import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
-import org.wso2.securevault.SecretResolver;
-import org.wso2.securevault.SecretResolverFactory;
 
 /**
  * Parse the cloud-controller.xml
@@ -197,9 +192,4 @@ public class CloudControllerConfigParser {
         }
     }
     
-    private static void handleException(final String msg) throws MalformedConfigurationFileException{
-        log.error(msg);
-        throw new MalformedConfigurationFileException(msg);
-    }
-
 }