From: <one...@us...> - 2003-02-09 06:28:19
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/util In directory sc8-pr-cvs1:/tmp/cvs-serv20713/hibernate/util Modified Files: XMLHelper.java Log Message: standardised on dom4j fixed bugs in collection caching (sometimes an exception occurred) allowed null discriminators set autocommit to true in SchemaUpdate collections now deserialize correctly Index: XMLHelper.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/util/XMLHelper.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** XMLHelper.java 27 Jan 2003 07:12:04 -0000 1.4 --- XMLHelper.java 9 Feb 2003 06:28:17 -0000 1.5 *************** *** 2,62 **** package net.sf.hibernate.util; - import java.io.ByteArrayInputStream; - import java.io.IOException; - - import javax.xml.parsers.DocumentBuilder; - import javax.xml.parsers.DocumentBuilderFactory; - import javax.xml.parsers.ParserConfigurationException; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; ! import org.w3c.dom.Document; import org.xml.sax.EntityResolver; import org.xml.sax.ErrorHandler; - import org.xml.sax.InputSource; - import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public final class XMLHelper { ! private static final Log log = LogFactory.getLog(XMLHelper.class); ! private static final EntityResolver dtdResolver = new DTDEntityResolver(); ! ! private XMLHelper() { //cannot be instantiated } ! public static Document parseFile(String fileName) throws IOException, SAXException, ParserConfigurationException { ! return parseInputSource( new InputSource(fileName) ); } ! public static Document parseInputSource(InputSource source) throws IOException, SAXException, ParserConfigurationException { ! DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); ! factory.setValidating(true); ! //factory.setIgnoringComments(true); ! DocumentBuilder builder = factory.newDocumentBuilder(); ! builder.setEntityResolver(dtdResolver); ! ! final String file = (source.getSystemId()==null) ? "unknown system id" : source.getSystemId(); ! ! log.info("Parsing XML: " + file); ! ! builder.setErrorHandler( new ErrorHandler() { ! public void error(SAXParseException error) { ! log.error( "Error parsing XML: " + file + '(' + error.getLineNumber() + ')', error ); ! } ! public void fatalError(SAXParseException error) { ! error(error); ! } ! public void warning(SAXParseException error) { ! log.warn( "Warning parsing XML: " + file + '(' + error.getLineNumber() + ')', error ); ! } ! } ); ! ! return builder.parse(source).getDocumentElement().getOwnerDocument(); ! } ! public static Document parseString(String xml) throws IOException, SAXException, ParserConfigurationException { ! return parseInputSource( new InputSource( new ByteArrayInputStream( xml.getBytes() ) ) ); } --- 2,49 ---- package net.sf.hibernate.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; ! import org.dom4j.io.DOMReader; ! import org.dom4j.io.SAXReader; import org.xml.sax.EntityResolver; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXParseException; public final class XMLHelper { ! public static SAXReader createSAXReader(String file) { ! SAXReader reader = new SAXReader(); ! reader.setEntityResolver(dtdResolver); ! reader.setErrorHandler( new ErrorLogger(file) ); ! reader.setMergeAdjacentText(true); ! reader.setValidation(true); ! return reader; } ! public static DOMReader createDOMReader() { ! DOMReader reader = new DOMReader(); ! return reader; } ! private static final Log log = LogFactory.getLog(XMLHelper.class); ! private static final EntityResolver dtdResolver = new DTDEntityResolver(); + public static class ErrorLogger implements ErrorHandler { + private String file; + ErrorLogger(String file) { + this.file=file; + } + public void error(SAXParseException error) { + log.error( "Error parsing XML: " + file + '(' + error.getLineNumber() + ')', error ); + } + public void fatalError(SAXParseException error) { + error(error); + } + public void warning(SAXParseException error) { + log.warn( "Warning parsing XML: " + file + '(' + error.getLineNumber() + ')', error ); + } + }; ! private XMLHelper() { //cannot be instantiated } |