Amsterdam Utils

This project contains a collection if Java util classes, with a small focus on xml, io and lang type of utils.

Usage is documented in the javadoc.

Funtionality teasers

xml

Get a root Element from a String.

        Element xml = DocumentUtil.getDocumentElement("<my><name>Myname</name><rep><disap/></rep></my>");
	

Get content from required element.

	   String name = ElementUtil.getContent(ElementUtil.getUniqueChild(xml,"name"));
	

Get a List:

	  List names = ElementUtil.getElementsByTagName(xml,"name");
	

Get by XPath

	  Node n = XPathUtil.selectNodes(xml,"/my/name");
	

Set new element content

	  Element rep = ElementUtil.getUniqueChild(xml,"rep");
	  Element elem = DocumentUtil.getDocumentElement("<my-newdisap><hej/><my-newdisap>");
          ElementUtil.setElement(rep, elem);
	

Which would look like:

	  <my><rep><my-newdisap><hej/><my-newdisap></rep></my>
	

And don't forget the CatalogResolver!

io

Write input to output

	  IOHelper.connect(inputStream, outputStream);
	

Stream a DOM Document

	  DOMInputStream dis = new DOMInputStream(document);
	  IOHelper.connect(dis, myOutpoutStream);
	

ant

Filter XML

   <copy todir="/home/pra/src/jboss-installer/dist//jboss" overwrite="true">
       <fileset dir="${tmp.dir}/jbossinstall/">
         <include name=" **\/conf/jboss-service.xml"/>
       </fileset>
       <filterchain>
           <filterreader classname="org.backsource.ant.XmlFilter">
             <param value="${jboss.jndi.jnp.port}" name="//mbean/attribute[@name='Port'][text()='1099']" type="replace"/>
             <param value="${jboss.webservice.port}" name="//mbean/attribute[@name='Port'][text()='8083']" type="replace"/>
             <param value="${jboss.rmi.object.port}" name="//mbean/attribute[@name='RMIObjectPort']" type="replace"/>
           </filterreader>
       </filterchain>
   </copy>
  

tools

The xmlescaper tool is greate to have when writing javadocs for example, since it does exactly what it says:

	  java -jar xmlescaper.java -
	

With xpath tools its seasy to test xpath expressions on the command line (even boolean ones):

	  java -jar target/xpath.jar project.xml '/project/dependencies/dependency/id'