aboutsummaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java')
-rw-r--r--src/java/org/apache/fop/apps/Driver.java2
-rw-r--r--src/java/org/apache/fop/apps/FOFileHandler.java7
-rw-r--r--src/java/org/apache/fop/apps/InputHandler.java10
-rw-r--r--src/java/org/apache/fop/apps/XSLTInputHandler.java19
-rw-r--r--src/java/org/apache/fop/image/ImageFactory.java1
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) {