Author: sletellier Date: 2011-10-28 17:03:30 +0200 (Fri, 28 Oct 2011) New Revision: 624 Url: http://nuiton.org/repositories/revision/jrst/624 Log: - Replace DocumentResolver by FasterCachedResourceResolver - Fix #1661 : Error with RST transformation in MS Windows Modified: trunk/jrst/src/main/java/org/nuiton/jrst/JRSTGenerator.java trunk/jrst/src/main/resources/log4j.properties trunk/jrst/src/test/resources/log4j.properties Modified: trunk/jrst/src/main/java/org/nuiton/jrst/JRSTGenerator.java =================================================================== --- trunk/jrst/src/main/java/org/nuiton/jrst/JRSTGenerator.java 2011-10-28 14:10:56 UTC (rev 623) +++ trunk/jrst/src/main/java/org/nuiton/jrst/JRSTGenerator.java 2011-10-28 15:03:30 UTC (rev 624) @@ -26,7 +26,36 @@ package org.nuiton.jrst; -import static org.nuiton.jrst.ReStructuredText.*; +import static org.nuiton.jrst.ReStructuredText.ADDRESS; +import static org.nuiton.jrst.ReStructuredText.AUTHOR; +import static org.nuiton.jrst.ReStructuredText.AUTHORS; +import static org.nuiton.jrst.ReStructuredText.BULLET_LIST; +import static org.nuiton.jrst.ReStructuredText.CLASSIFIER; +import static org.nuiton.jrst.ReStructuredText.CONTACT; +import static org.nuiton.jrst.ReStructuredText.COPYRIGHT; +import static org.nuiton.jrst.ReStructuredText.DATE; +import static org.nuiton.jrst.ReStructuredText.DEFINITION; +import static org.nuiton.jrst.ReStructuredText.DEFINITION_LIST; +import static org.nuiton.jrst.ReStructuredText.DOCINFO; +import static org.nuiton.jrst.ReStructuredText.EMPHASIS; +import static org.nuiton.jrst.ReStructuredText.ENUMERATED_LIST; +import static org.nuiton.jrst.ReStructuredText.FIELD_BODY; +import static org.nuiton.jrst.ReStructuredText.FIELD_LIST; +import static org.nuiton.jrst.ReStructuredText.FIELD_NAME; +import static org.nuiton.jrst.ReStructuredText.LIST_ITEM; +import static org.nuiton.jrst.ReStructuredText.LITERAL; +import static org.nuiton.jrst.ReStructuredText.LITERAL_BLOCK; +import static org.nuiton.jrst.ReStructuredText.ORGANIZATION; +import static org.nuiton.jrst.ReStructuredText.PARAGRAPH; +import static org.nuiton.jrst.ReStructuredText.REVISION; +import static org.nuiton.jrst.ReStructuredText.SECTION; +import static org.nuiton.jrst.ReStructuredText.STATUS; +import static org.nuiton.jrst.ReStructuredText.STRONG; +import static org.nuiton.jrst.ReStructuredText.TABLE; +import static org.nuiton.jrst.ReStructuredText.TITLE; +import static org.nuiton.jrst.ReStructuredText.TITLE_CHAR; +import static org.nuiton.jrst.ReStructuredText.TRANSITION; +import static org.nuiton.jrst.ReStructuredText.VERSION; import java.io.File; import java.io.IOException; @@ -52,6 +81,7 @@ import org.dom4j.Text; import org.dom4j.io.DocumentResult; import org.dom4j.io.DocumentSource; +import org.nuiton.util.FasterCachedResourceResolver; import org.xml.sax.ContentHandler; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; @@ -181,7 +211,7 @@ if (uriResolver != null) { factory.setURIResolver(uriResolver); } else { - factory.setURIResolver(new DocumentResolver(stylesheet)); + factory.setURIResolver(new FasterCachedResourceResolver(stylesheet.toString())); } Transformer transformer = factory.newTransformer(new StreamSource( stylesheet.openStream())); @@ -216,7 +246,7 @@ if (uriResolver != null) { factory.setURIResolver(uriResolver); } else { - factory.setURIResolver(new DocumentResolver(stylesheet)); + factory.setURIResolver(new FasterCachedResourceResolver(stylesheet.toString())); } Transformer transformer = factory.newTransformer(new StreamSource( @@ -233,59 +263,6 @@ return transformedDoc; } - static public class DocumentResolver implements URIResolver, EntityResolver { - - URL baseURL; - - public DocumentResolver(URL url) throws MalformedURLException { - String path = new File(url.getPath()).getParent(); - baseURL = new URL(url.getProtocol(), url.getHost(), url.getPort(), - path); - } - - @Override - public Source resolve(String href, String base) - throws TransformerException { - try { - URL url = null; - if (href == null) { - url = baseURL; - } else { - String path = baseURL.getPath(); - if (path.startsWith("file:")) { - path = "file:" - + new File(path.substring("file:".length()), - href).getCanonicalPath(); - } else { - path = new File(path, href).getCanonicalPath(); - } - url = new URL(baseURL.getProtocol(), baseURL.getHost(), - baseURL.getPort(), path); - } - log.debug("** resolve href: '" + href + "' base: '" + base - + "' return: '" + url + "'"); - Source result = new StreamSource(url.openStream()); - return result; - } catch (MalformedURLException eee) { - throw new TransformerException("Can't create url ", eee); - } catch (IOException eee) { - throw new TransformerException("Can't read url", eee); - } - } - - /* - * @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String) - */ - @Override - public InputSource resolveEntity(String publicId, String systemId) - throws SAXException, IOException { - log.debug("## resolveEntity publicId '" + publicId - + "' systemId: '" + systemId + "'"); - return null; - } - - } - protected String string(String s, int number) { String result = ""; for (int i = 0; i < number; i++) { Modified: trunk/jrst/src/main/resources/log4j.properties =================================================================== --- trunk/jrst/src/main/resources/log4j.properties 2011-10-28 14:10:56 UTC (rev 623) +++ trunk/jrst/src/main/resources/log4j.properties 2011-10-28 15:03:30 UTC (rev 624) @@ -23,7 +23,7 @@ # #L% ### # Global logging configuration -log4j.rootLogger=WARN, stdout +log4j.rootLogger=INFO, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender @@ -31,4 +31,4 @@ log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd hh:mm:ss} %5p (%F:%L) %m%n # package level -log4j.logger.org.nuiton.jrst=WARN +log4j.logger.org.nuiton.jrst=INFO Modified: trunk/jrst/src/test/resources/log4j.properties =================================================================== --- trunk/jrst/src/test/resources/log4j.properties 2011-10-28 14:10:56 UTC (rev 623) +++ trunk/jrst/src/test/resources/log4j.properties 2011-10-28 15:03:30 UTC (rev 624) @@ -23,7 +23,7 @@ # #L% ### # Global logging configuration -log4j.rootLogger=ERROR, stdout +log4j.rootLogger=INFO, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout