diff options
Diffstat (limited to 'src/java')
-rw-r--r-- | src/java/org/apache/fop/apps/Driver.java | 2 | ||||
-rw-r--r-- | src/java/org/apache/fop/apps/FOFileHandler.java | 7 | ||||
-rw-r--r-- | src/java/org/apache/fop/apps/InputHandler.java | 10 | ||||
-rw-r--r-- | src/java/org/apache/fop/apps/XSLTInputHandler.java | 19 | ||||
-rw-r--r-- | src/java/org/apache/fop/image/ImageFactory.java | 1 |
5 files changed, 33 insertions, 6 deletions
diff --git a/src/java/org/apache/fop/apps/Driver.java b/src/java/org/apache/fop/apps/Driver.java index ec4b11aa4..55059cff1 100644 --- a/src/java/org/apache/fop/apps/Driver.java +++ b/src/java/org/apache/fop/apps/Driver.java @@ -248,7 +248,6 @@ public class Driver implements LogEnabled { if (userAgent == null) { userAgent = new FOUserAgent(); userAgent.enableLogging(getLogger()); - userAgent.setBaseURL(""); } return userAgent; } @@ -572,6 +571,7 @@ public class Driver implements LogEnabled { public synchronized void render(InputHandler inputHandler) throws FOPException { XMLReader parser = inputHandler.getParser(); + userAgent.setBaseURL(inputHandler.getBaseURL()); render(parser, inputHandler.getInputSource()); } diff --git a/src/java/org/apache/fop/apps/FOFileHandler.java b/src/java/org/apache/fop/apps/FOFileHandler.java index 28226e677..acefd0cda 100644 --- a/src/java/org/apache/fop/apps/FOFileHandler.java +++ b/src/java/org/apache/fop/apps/FOFileHandler.java @@ -45,6 +45,12 @@ public class FOFileHandler extends InputHandler { */ public FOFileHandler(File fofile) { this.fofile = fofile; + try { + baseURL = + new File(fofile.getAbsolutePath()).getParentFile().toURL().toExternalForm(); + } catch (Exception e) { + baseURL = ""; + } } /** @@ -55,7 +61,6 @@ public class FOFileHandler extends InputHandler { this.foURL = url; } - /** * @see org.apache.fop.apps.InputHandler#getInputSource() */ diff --git a/src/java/org/apache/fop/apps/InputHandler.java b/src/java/org/apache/fop/apps/InputHandler.java index 9597ee324..acb6c50e9 100644 --- a/src/java/org/apache/fop/apps/InputHandler.java +++ b/src/java/org/apache/fop/apps/InputHandler.java @@ -39,6 +39,16 @@ public abstract class InputHandler { */ public abstract InputSource getInputSource(); + protected String baseURL = null; + + /** + * Get the base URL associated with this input source + * @return the input source + */ + public String getBaseURL() { + return baseURL; + } + /** * Get the SAX parser associated with this input handler. * @return the SAX parser diff --git a/src/java/org/apache/fop/apps/XSLTInputHandler.java b/src/java/org/apache/fop/apps/XSLTInputHandler.java index 9634f073f..88771f6b3 100644 --- a/src/java/org/apache/fop/apps/XSLTInputHandler.java +++ b/src/java/org/apache/fop/apps/XSLTInputHandler.java @@ -57,6 +57,12 @@ public class XSLTInputHandler extends InputHandler { public XSLTInputHandler(File xmlfile, File xsltfile, Vector params) throws FOPException { this.xmlSource = new StreamSource(xmlfile); this.xsltSource = new StreamSource(xsltfile); + try { + baseURL = + new File(xmlfile.getAbsolutePath()).getParentFile().toURL().toExternalForm(); + } catch (Exception e) { + baseURL = ""; + } xsltParams = params; } @@ -70,6 +76,12 @@ public class XSLTInputHandler extends InputHandler { public XSLTInputHandler(File xmlfile, File xsltfile) throws FOPException { this.xmlSource = new StreamSource(xmlfile); this.xsltSource = new StreamSource(xsltfile); + try { + baseURL = + new File(xmlfile.getAbsolutePath()).getParentFile().toURL().toExternalForm(); + } catch (Exception e) { + baseURL = ""; + } } /** @@ -144,11 +156,10 @@ public class XSLTInputHandler extends InputHandler { saxTFactory.newXMLFilter(xsltSource); /* if (inParams != null) { - Transformer transformer = ??? how to obtain from an XMLFilter? - int nParams = inParams.size(); - + // parameters currently not settable with an XMLFilter for (int i = 0; i < nParams; i += 2) { - transformer.setParameter((String) inParams.elementAt(i), + // setParameter() method doesn't exist + xmlfilter.setParameter((String) inParams.elementAt(i), (String) inParams.elementAt(i + 1)); } } diff --git a/src/java/org/apache/fop/image/ImageFactory.java b/src/java/org/apache/fop/image/ImageFactory.java index bf19d3f10..45aef78c5 100644 --- a/src/java/org/apache/fop/image/ImageFactory.java +++ b/src/java/org/apache/fop/image/ImageFactory.java @@ -219,6 +219,7 @@ public class ImageFactory { // Get the absolute URL URL absoluteURL = null; InputStream in = null; + try { in = ua.getStream(href); } catch (IOException ioe) { |