// Path: org.wso2.maven.core/src/main/java/org/wso2/maven/core/model/AbstractXMLDoc.java
// public abstract class AbstractXMLDoc extends AbstractManifest{
// 	public static OMFactory factory = OMAbstractFactory.getOMFactory();
// 
// 	protected List<OMElement> getChildElements(OMElement parentElement, String tagName) {
// 		List<OMElement> elements = new ArrayList<OMElement>();
// 		Iterator children = parentElement.getChildren();
// 		while (children.hasNext()) {
// 			Object o = children.next();
// 			if (o instanceof OMElement) {
// 				OMElement child = (OMElement) o;
// 				if (tagName==null || tagName.trim().equals("") || child.getLocalName().equals(tagName)) {
// 					elements.add(child);
// 				}
// 			}
// 		}
// 		return elements;
// 	}
// 
// 	protected String getAttribute(OMElement element, String attributeName) {
// 		return element.getAttributeValue(new QName(attributeName));
// 	}
// 	
// 
// 	protected OMElement getElement(String localName, String text) {
// 		OMElement element = factory.createOMElement(new QName(localName));
// 		element.setText(text);
// 		return element;
// 	}
// 
// 	protected OMElement getElement(String xmlString) throws XMLStreamException {
// 		return  AXIOMUtil.stringToOM(xmlString);
// 	}
// 	
// 	protected OMElement addAttribute(OMElement element, String attributeName, String attributeValue) {
// 		element.addAttribute(attributeName, attributeValue, null);
// 		return element;
// 	}
// 
// 	protected OMElement getFirstChildWithName(OMElement element, String localName) {
// 		return element.getFirstChildWithName(new QName(localName));
// 	}
// 	
// 	private static final String prettyPrintStylesheet =
//         "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0' "
//                 + " xmlns:xalan='http://xml.apache.org/xslt' "
//                 + " exclude-result-prefixes='xalan'>"
//                 + "  <xsl:output method='xml' indent='yes' xalan:indent-amount='4'/>"
//                 + "  <xsl:strip-space elements='*'/>"
//                 + "  <xsl:template match='/'>"
//                 + "    <xsl:apply-templates/>"
//                 + "  </xsl:template>"
//                 + "  <xsl:template match='node() | @*'>"
//                 + "        <xsl:copy>"
//                 + "          <xsl:apply-templates select='node() | @*'/>"
//                 + "        </xsl:copy>"
//                 + "  </xsl:template>"
//                 + "</xsl:stylesheet>";
// 
// 	protected static void prettify(OMElement wsdlElement, OutputStream out) throws Exception {
// 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 		wsdlElement.serialize(baos);
// 
// 		Source stylesheetSource =
// 		                          new StreamSource(
// 		                                           new ByteArrayInputStream(
// 		                                                                    prettyPrintStylesheet
// 		                                                                                         .getBytes()));
// 		Source xmlSource = new StreamSource(new ByteArrayInputStream(baos.toByteArray()));
// 
// 		TransformerFactory tf = TransformerFactory.newInstance();
// 		Templates templates = tf.newTemplates(stylesheetSource);
// 		Transformer transformer = templates.newTransformer();
// 		transformer.transform(xmlSource, new StreamResult(out));
// 	}
// 
// 	protected String getPretifiedString(OMElement documentElement) throws Exception {
// 		String result;
// 		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 		prettify(documentElement, outputStream);
// 		result = outputStream.toString();
// 		return result;
// 	}
// 
// 	
// 	public void deserialize(File file) throws FactoryConfigurationError, Exception {
// 		deserialize(new FileInputStream(file));
// 	}
// 	
// 	public void deserialize(InputStream stream) throws FactoryConfigurationError, Exception {
//         XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(stream);
//         StAXOMBuilder builder = new StAXOMBuilder(parser);
//         OMElement documentElement =  builder.getDocumentElement();
//         deserialize(documentElement);
// 	}
// 	
// 	public void deserialize(String xml) throws FactoryConfigurationError, Exception {
// 		XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xml.getBytes()));
// 		StAXOMBuilder builder = new StAXOMBuilder(parser);
// 		OMElement documentElement = builder.getDocumentElement();
// 		deserialize(documentElement);
// 	}
// 	
// 	protected abstract void deserialize(OMElement documentElement) throws Exception;
// 	protected abstract String serialize() throws Exception;
// 	
// 	public String toString() {
// 	    try {
// 			return serialize();
// 		} catch (Exception e) {
// 			return null;
// 		}
// 	}
// 
// }


import org.wso2.maven.capp.utils.CAppUtils;
import org.wso2.maven.core.model.AbstractXMLDoc;
import sun.security.action.GetLongAction;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.wso2.maven.capp.utils.CAppMavenUtils;

	public String getCarTimestamp() {
		return carTimestamp;
	}

	public void setModificationStamp(long modificationStamp) {
		this.modificationStamp = modificationStamp;
	}

	public long getModificationStamp() {
		return modificationStamp;
	}

	public void setProject(MavenProject project) {
		type=null;
		this.project = project;
	}

	public MavenProject getProject() {
		return project;
	}

	public void setServerRole(String serverRole) {
		this.serverRole = serverRole;
	}

	public String getServerRole() {
		return serverRole;
	}

// Path: org.wso2.maven.core/src/main/java/org/wso2/maven/core/model/AbstractXMLDoc.java
// public abstract class AbstractXMLDoc extends AbstractManifest{
// 	public static OMFactory factory = OMAbstractFactory.getOMFactory();
// 
// 	protected List<OMElement> getChildElements(OMElement parentElement, String tagName) {
// 		List<OMElement> elements = new ArrayList<OMElement>();
// 		Iterator children = parentElement.getChildren();
// 		while (children.hasNext()) {
// 			Object o = children.next();
// 			if (o instanceof OMElement) {
// 				OMElement child = (OMElement) o;
// 				if (tagName==null || tagName.trim().equals("") || child.getLocalName().equals(tagName)) {
// 					elements.add(child);
// 				}
// 			}
// 		}
// 		return elements;
// 	}
// 
// 	protected String getAttribute(OMElement element, String attributeName) {
// 		return element.getAttributeValue(new QName(attributeName));
// 	}
// 	
// 
// 	protected OMElement getElement(String localName, String text) {
// 		OMElement element = factory.createOMElement(new QName(localName));
// 		element.setText(text);
// 		return element;
// 	}
// 
// 	protected OMElement getElement(String xmlString) throws XMLStreamException {
// 		return  AXIOMUtil.stringToOM(xmlString);
// 	}
// 	
// 	protected OMElement addAttribute(OMElement element, String attributeName, String attributeValue) {
// 		element.addAttribute(attributeName, attributeValue, null);
// 		return element;
// 	}
// 
// 	protected OMElement getFirstChildWithName(OMElement element, String localName) {
// 		return element.getFirstChildWithName(new QName(localName));
// 	}
// 	
// 	private static final String prettyPrintStylesheet =
//         "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0' "
//                 + " xmlns:xalan='http://xml.apache.org/xslt' "
//                 + " exclude-result-prefixes='xalan'>"
//                 + "  <xsl:output method='xml' indent='yes' xalan:indent-amount='4'/>"
//                 + "  <xsl:strip-space elements='*'/>"
//                 + "  <xsl:template match='/'>"
//                 + "    <xsl:apply-templates/>"
//                 + "  </xsl:template>"
//                 + "  <xsl:template match='node() | @*'>"
//                 + "        <xsl:copy>"
//                 + "          <xsl:apply-templates select='node() | @*'/>"
//                 + "        </xsl:copy>"
//                 + "  </xsl:template>"
//                 + "</xsl:stylesheet>";
// 
// 	protected static void prettify(OMElement wsdlElement, OutputStream out) throws Exception {
// 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 		wsdlElement.serialize(baos);
// 
// 		Source stylesheetSource =
// 		                          new StreamSource(
// 		                                           new ByteArrayInputStream(
// 		                                                                    prettyPrintStylesheet
// 		                                                                                         .getBytes()));
// 		Source xmlSource = new StreamSource(new ByteArrayInputStream(baos.toByteArray()));
// 
// 		TransformerFactory tf = TransformerFactory.newInstance();
// 		Templates templates = tf.newTemplates(stylesheetSource);
// 		Transformer transformer = templates.newTransformer();
// 		transformer.transform(xmlSource, new StreamResult(out));
// 	}
// 
// 	protected String getPretifiedString(OMElement documentElement) throws Exception {
// 		String result;
// 		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 		prettify(documentElement, outputStream);
// 		result = outputStream.toString();
// 		return result;
// 	}
// 
// 	
// 	public void deserialize(File file) throws FactoryConfigurationError, Exception {
// 		deserialize(new FileInputStream(file));
// 	}
// 	
// 	public void deserialize(InputStream stream) throws FactoryConfigurationError, Exception {
//         XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(stream);
//         StAXOMBuilder builder = new StAXOMBuilder(parser);
//         OMElement documentElement =  builder.getDocumentElement();
//         deserialize(documentElement);
// 	}
// 	
// 	public void deserialize(String xml) throws FactoryConfigurationError, Exception {
// 		XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xml.getBytes()));
// 		StAXOMBuilder builder = new StAXOMBuilder(parser);
// 		OMElement documentElement = builder.getDocumentElement();
// 		deserialize(documentElement);
// 	}
// 	
// 	protected abstract void deserialize(OMElement documentElement) throws Exception;
// 	protected abstract String serialize() throws Exception;
// 	
// 	public String toString() {
// 	    try {
// 			return serialize();
// 		} catch (Exception e) {
// 			return null;
// 		}
// 	}
// 
// }


// Path: org.wso2.maven.capp/src/main/java/org/wso2/maven/capp/model/CAppArtifact.java
import org.wso2.maven.capp.utils.CAppUtils;
import org.wso2.maven.core.model.AbstractXMLDoc;
import sun.security.action.GetLongAction;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.wso2.maven.capp.utils.CAppMavenUtils;


	public String getCarTimestamp() {
		return carTimestamp;
	}

	public void setModificationStamp(long modificationStamp) {
		this.modificationStamp = modificationStamp;
	}

	public long getModificationStamp() {
		return modificationStamp;
	}

	public void setProject(MavenProject project) {
		type=null;
		this.project = project;
	}

	public MavenProject getProject() {
		return project;
	}

	public void setServerRole(String serverRole) {
		this.serverRole = serverRole;
	}

	public String getServerRole() {
		return serverRole;
	}

	public String serialize() throws Exception {