[xwiki-notifications] r4732 - xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/pdf/impl
Vincent Massol
vmassol at users.forge.objectweb.org
Wed Sep 5 21:58:44 CEST 2007
Author: vmassol
Date: 2007-09-05 21:58:43 +0200 (Wed, 05 Sep 2007)
New Revision: 4732
Modified:
xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/pdf/impl/XWikiURIResolver.java
Log:
Small refactoring and added logs so that we know when an entity is not present locally (they should be present locally so that PDF export works even when offline).
Merged from trunk (rev 4731)
Modified: xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/pdf/impl/XWikiURIResolver.java
===================================================================
--- xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/pdf/impl/XWikiURIResolver.java 2007-09-05 19:57:31 UTC (rev 4731)
+++ xwiki-platform/core/branches/xwiki-core-1.1/src/main/java/com/xpn/xwiki/pdf/impl/XWikiURIResolver.java 2007-09-05 19:58:43 UTC (rev 4732)
@@ -24,6 +24,8 @@
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.IOException;
@@ -31,7 +33,9 @@
import java.net.URI;
import java.net.URISyntaxException;
-public class XWikiURIResolver implements EntityResolver {
+public class XWikiURIResolver implements EntityResolver
+{
+ private static final Log LOG = LogFactory.getLog(XWikiURIResolver.class);
/**
* Allow the application to resolve external entities.
@@ -67,22 +71,30 @@
* or Reader for the InputSource.
* @see org.xml.sax.InputSource
*/
- public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
+ public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
+ {
+ InputSource source = null;
+
try {
URI uri = new URI(systemId);
- if ("http".equals(uri.getScheme())) {
+ if ("http".equals(uri.getScheme()) || "file".equals(uri.getScheme())) {
String filename = (new File(uri.getPath())).getName();
InputStream istream = getClass().getClassLoader().getResourceAsStream(filename);
- return new InputSource(istream);
- } else if ("file".equals(uri.getScheme())) {
- String filename = (new File(uri.getPath())).getName();
- InputStream istream = getClass().getClassLoader().getResourceAsStream(filename);
- return new InputSource(istream);
+ if (istream != null) {
+ source = new InputSource(istream);
+ } else {
+ LOG.warn("Failed to load resource [" + filename
+ + "] locally. Will try to get it online at [" + systemId + "]");
+ }
+ } else {
+ LOG.warn("Unknown URI scheme [" + uri.getScheme() + "] for entity ["
+ + systemId + "].");
}
} catch (URISyntaxException e) {
+ LOG.warn("Invalid URI [" + systemId + "].", e);
}
- // Returning null causes the caller to try accessing the href
- return null;
+ // Returning null causes the caller to try accessing the entity online
+ return source;
}
}
\ No newline at end of file
More information about the notifications
mailing list