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
}
|