package com.openedit.util;
import java.io.OutputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import com.openedit.BaseTestCase;
import com.openedit.page.Page;
import com.openedit.users.User;
public class XmlTest extends BaseTestCase
{
private static final Log log = LogFactory.getLog(XmlTest.class);
public XmlTest()
{
// TODO Auto-generated constructor stub
}
public void testXmlReader() throws Exception
{
Element root = DocumentHelper.createDocument().addElement("mounts");
for (int i = 0; i < 10000; i++)
{
Element e =root.addElement("mount");
e.addAttribute("id", "1234" + i);
e.addAttribute("path", "/home/stuff/" + i);
e.addElement("child1").setText("This is a long text" + i);
e.addElement("child2").setText("This is a long text" + i);
e.addElement("child3").setText("This is a long text" + i);
//e.addElement("childContent").addElement("childA").addElement("childB").addElement("childC").addElement("childD").addAttribute("Dattrib", "sdfsddsfdsfsdf");
}
XmlUtil xml = new XmlUtil();
User user = getFixture().createPageRequest().getUser();
Page junk = getPage("/WEB-INF/junksave.xml");
long start = System.currentTimeMillis();
// for (int i = 0; i < 100; i++)
// {
// StringWriter out = new StringWriter();
// xml.saveXml(root, out, "UTF-8");
// getFixture().getPageManager().saveContent( junk,user,out.toString(),null);
// }
// log.info("Saved String in " + (System.currentTimeMillis() - start)/1000F + " seconds");
start = System.currentTimeMillis();
for (int i = 0; i < 100; i++)
{
// StringWriter out = new StringWriter();
// new OutputFiller().fill(new ElementReader(root,xml.getWriter("UTF-8")),out);
// log.info(out.toString());
// xml.saveXml(root, out, "UTF-8");
// getFixture().getPageManager().saveContent( junk,user,new StringReader(out.toString()),null);
// getFixture().getPageManager().saveContent( junk,user,new ElementReader(root,xml.getWriter("UTF-8")),null);
OutputStream out = getFixture().getPageManager().saveToStream(junk, user, null);
XMLWriter writer = xml.getWriter("UTF-8");
writer.setOutputStream(out);
writer.write(root);
out.close();
}
log.info("Saved Reader in " + (System.currentTimeMillis() - start)/1000F + " seconds");
}
}