Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.kuali.maven.plugins.externals;
  
  import java.io.Reader;
  import java.util.List;
  
 
 
 public class POMUtils {
 	private static final Logger logger = LoggerFactory.getLogger(POMUtils.class);
 
 	private static final String FORMAT_PRETTY_PRINT = "format-pretty-print";
 	private static final String XML_DECLARATION = "xml-declaration";
 	private static final String DOM_IMPLEMENTATION = "LS";
 	private static final String GROUP_ID = "groupId";
 	private static final String ARTIFACT_ID = "artifactId";
 	private static final String VERSION = "version";
 	private static final String PARENT = "parent";
 	private static final String PROJECT = "project";
 	private static final String SCM = "scm";
 	private static final String DEVELOPER_CONNECTION = "developerConnection";
 	private static final String CONNECTION = "connection";
 	private static final String PROPERTIES = "properties";
 	private static final String URL = "url";
 
 	public String format(String xml) {
 		try {
 			Reader reader = new StringReader(xml);
 			InputSource src = new InputSource(reader);
 			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 			DocumentBuilder builder = factory.newDocumentBuilder();
 			Document document = builder.parse(src);
 			return getFormattedXml(document);
 		} catch (Exception e) {
 			throw new IllegalStateException(e);
 		}
 	}
 
 	public String getFormattedXml(Document document) {
 		try {
 			Element element = document.getDocumentElement();
 			DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
 			LSSerializer writer = impl.createLSSerializer();
 			DOMConfiguration configuration = writer.getDomConfig();
 			configuration.setParameter(true);
 			configuration.setParameter(false);
 			return writer.writeToString(element);
 		} catch (Exception e) {
 			throw new IllegalStateException(e);
 		}
 	}
 
 	public GAV getParentGAV(String xml) {
 		Document document = getDocument(xml);
 		return getParentGav(document);
 	}
 
 	public GAV getGAV(String xml) {
 		Document document = getDocument(xml);
 		NodeList nodeList = document.getChildNodes();
 		if (nodeList == null || nodeList.getLength() == 0) {
 			throw new IllegalArgumentException("Invalid xml for a Maven pom:\n " + xml);
 		}
 		if (nodeList.getLength() > 1) {
 			throw new IllegalArgumentException("Invalid xml for a Maven pom.  Expected exactly 1 top level node:\n " + xml);
 		}
 		Node projectNode = nodeList.item(0);
 		if (!projectNode.getNodeName().equals()) {
 			throw new IllegalArgumentException("Invalid xml for a Maven pom.  Must start with a <project> tag:\n " + xml);
 		}
 		return getGAV(projectNode.getChildNodes());
 	}
 
 	public Document getDocument(String xml) {
 		try {
 			Reader reader = new StringReader(xml);
 			InputSource src = new InputSource(reader);
 			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 			DocumentBuilder builder = factory.newDocumentBuilder();
 			return builder.parse(src);
 		} catch (Exception e) {
			throw new IllegalStateException(e);
		}
	}
	public String updateScm(String xmlString prefixString url) {
		Document document = getDocument(xml);
		NodeList nodeList = document.getElementsByTagName();
		Node scmNode = nodeList.item(0);
		NodeList scmNodeList = scmNode.getChildNodes();
		int childCount = scmNodeList.getLength();
		for (int i = 0; i < childCounti++) {
			Node node = scmNodeList.item(i);
				node.setTextContent(prefix + url);
else if (node.getNodeName().equals()) {
				node.setTextContent(prefix + url);
else if (node.getNodeName().equals()) {
				node.setTextContent(url);
			}
		}
		return getFormattedXml(document);
	}
	public String updateParentVersion(String xmlString version) {
		Document document = getDocument(xml);
		NodeList nodeList = document.getElementsByTagName();
		Node parentNode = nodeList.item(0);
		NodeList gavNodeList = parentNode.getChildNodes();
		updateVersion(gavNodeListversion);
		return getFormattedXml(document);
	}
	public String updateVersion(String xmlString version) {
		Document document = getDocument(xml);
		NodeList nodeList = document.getChildNodes();
		Node projectNode = nodeList.item(0);
		updateVersion(projectNode.getChildNodes(), version);
		return getFormattedXml(document);
	}
	public String updateProperties(String xmlProperties properties) {
		Document document = getDocument(xml);
		NodeList nodeList = document.getElementsByTagName();
		Node propertiesNode = nodeList.item(0);
		NodeList propertiesNodeList = propertiesNode.getChildNodes();
		List<Stringkeys = new ArrayList<String>(properties.stringPropertyNames());
		Collections.sort(keys);
		for (String key : keys) {
			String value = properties.getProperty(key);
			Node node = findNode(propertiesNodeListkey);
			node.setTextContent(value);
		}
		return getFormattedXml(document);
	}
	protected Node findNode(NodeList nodeListString key) {
		int childCount = nodeList.getLength();
		for (int i = 0; i < childCounti++) {
			Node node = nodeList.item(i);
			String name = node.getNodeName();
			if (name.equals(key)) {
				return node;
			}
		}
		throw new IllegalArgumentException("Unable to locate property '" + key + "'");
	}
	protected void updateVersion(NodeList nodeListString version) {
		int childCount = nodeList.getLength();
		for (int i = 0; i < childCounti++) {
			Node node = nodeList.item(i);
			if (node.getNodeName().equals()) {
				node.setTextContent(version);
				return;
			}
		}
		throw new IllegalStateException("No <" +  + "> tag was found");
	}
	public GAV getGAV(NodeList nodeList) {
		GAV gav = new GAV();
		int childCount = nodeList.getLength();
		for (int i = 0; i < childCounti++) {
			Node node = nodeList.item(i);
			if (node.getNodeName().equals()) {
			}
			}
			if (node.getNodeName().equals()) {
			}
		}
		return gav;
	}
	public GAV getParentGav(Document document) {
		NodeList nodeList = document.getElementsByTagName();
		if (nodeList == null || nodeList.getLength() == 0) {
			return null;
		}
		if (nodeList.getLength() > 1) {
			throw new IllegalStateException("There should only be one <" +  + "> tag in a pom");
		}
		Node parentNode = nodeList.item(0);
		NodeList gavNodeList = parentNode.getChildNodes();
		return getGAV(gavNodeList);
	}
	public void display(NodeList nodeListint level) {
		String content = getDisplayString(nodeListlevel);
		.info(content);
	}
	protected String getDisplayString(NodeList nodeListint level) {
		int childCount = nodeList.getLength();
		level++;
		for (int i = 0; i < childCounti++) {
			Node node = nodeList.item(i);
			sb.append(getDisplayString(nodelevel) + "\n");
		}
		return sb.toString();
	}
	protected String getDisplayString(Node node) {
		return getDisplayString(node, -1);
	}
	protected String getDisplayString(Node nodeint level) {
		String name = node.getNodeName();
		int type = node.getNodeType();
		String value = node.getNodeValue();
		if (level != -1) {
			sb.append(level + ":");
			sb.append(StringUtils.repeat(" "level));
		}
		sb.append("[");
		sb.append(name);
		sb.append(",");
		sb.append(type);
		sb.append(",");
		sb.append(flatten(value));
		sb.append("]");
		return sb.toString();
	}
	protected String nullSafeTrim(String s) {
		if (s == null) {
			return null;
else {
			return s.trim();
		}
	}
	protected String flatten(String s) {
		if (s == null) {
			return null;
else {
			return s.replace("\n""LF").replace("\r""CR");
		}
	}
New to GrepCode? Check out our FAQ X