aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlen Mazza <gmazza@apache.org>2003-08-02 01:15:20 +0000
committerGlen Mazza <gmazza@apache.org>2003-08-02 01:15:20 +0000
commit944fab93a1edb00ac1517f769dcf6d14c180dfb3 (patch)
treef5cc42cf265bd852a0f758ef5ad270ffcdd0e298
parent96eb6e6c2d7339c898fae69e8b30e7c7b2653d72 (diff)
downloadxmlgraphics-fop-944fab93a1edb00ac1517f769dcf6d14c180dfb3.tar.gz
xmlgraphics-fop-944fab93a1edb00ac1517f769dcf6d14c180dfb3.zip
1. Moved the XMLReader createParser() functionality from abstract class InputHandler to FOInputHandler.
2. Added the setting of the "namespace-prefix" SAX option directly into createParser(), and removed function setParserFeatures (where it was previously being set). 3. Removed the duplicate XMLReader creation code in Driver.run(), it now uses FOTreeBuilder.createParser(). git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196769 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/apps/Driver.java13
-rw-r--r--src/java/org/apache/fop/apps/FOInputHandler.java30
-rw-r--r--src/java/org/apache/fop/apps/InputHandler.java35
-rw-r--r--src/java/org/apache/fop/apps/XSLTInputHandler.java2
4 files changed, 32 insertions, 48 deletions
diff --git a/src/java/org/apache/fop/apps/Driver.java b/src/java/org/apache/fop/apps/Driver.java
index f45f50f46..acf863a54 100644
--- a/src/java/org/apache/fop/apps/Driver.java
+++ b/src/java/org/apache/fop/apps/Driver.java
@@ -579,7 +579,6 @@ public class Driver implements LogEnabled {
public synchronized void render(InputHandler inputHandler)
throws FOPException {
XMLReader parser = inputHandler.getParser();
- inputHandler.setParserFeatures(parser);
render(parser, inputHandler.getInputSource());
}
@@ -660,15 +659,8 @@ public class Driver implements LogEnabled {
if (reader == null) {
if (!(source instanceof DocumentInputSource)) {
- try {
- SAXParserFactory spf = javax.xml.parsers.SAXParserFactory.newInstance();
- spf.setNamespaceAware(true);
- reader = spf.newSAXParser().getXMLReader();
- } catch (SAXException e) {
- throw new FOPException(e);
- } catch (ParserConfigurationException e) {
- throw new FOPException(e);
- }
+ //TODO: (gm) rename to FOFileHandler or similar
+ reader = org.apache.fop.apps.FOInputHandler.createParser();
}
}
@@ -678,6 +670,5 @@ public class Driver implements LogEnabled {
render(reader, source);
}
}
-
}
diff --git a/src/java/org/apache/fop/apps/FOInputHandler.java b/src/java/org/apache/fop/apps/FOInputHandler.java
index 9f23c7dd5..1c52f75ee 100644
--- a/src/java/org/apache/fop/apps/FOInputHandler.java
+++ b/src/java/org/apache/fop/apps/FOInputHandler.java
@@ -53,11 +53,16 @@ package org.apache.fop.apps;
// Imported SAX classes
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotSupportedException;
// java
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.net.URL;
+
/**
* Manages input if it is an XSL-FO file.
*/
@@ -97,7 +102,7 @@ public class FOInputHandler extends InputHandler {
* @see org.apache.fop.apps.InputHandler#getParser()
*/
public XMLReader getParser() throws FOPException {
- return super.createParser();
+ return createParser();
}
/**
@@ -107,6 +112,29 @@ public class FOInputHandler extends InputHandler {
throw new FOPException("not implemented: FOInputHandler.run(Driver)");
}
+ /**
+ * Creates <code>XMLReader</code> object using default
+ * <code>SAXParserFactory</code>
+ * @return the created <code>XMLReader</code>
+ * @throws FOPException if the parser couldn't be created or configured for proper operation.
+ */
+ protected static XMLReader createParser() throws FOPException {
+ try {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ factory.setFeature(
+ "http://xml.org/sax/features/namespace-prefixes", true);
+ return factory.newSAXParser().getXMLReader();
+ } catch (SAXNotSupportedException se) {
+ throw new FOPException("Error: You need a parser which allows the"
+ + " http://xml.org/sax/features/namespace-prefixes"
+ + " feature to be set to true to support namespaces", se);
+ } catch (SAXException se) {
+ throw new FOPException("Couldn't create XMLReader", se);
+ } catch (ParserConfigurationException pce) {
+ throw new FOPException("Couldn't create XMLReader", pce);
+ }
+ }
}
diff --git a/src/java/org/apache/fop/apps/InputHandler.java b/src/java/org/apache/fop/apps/InputHandler.java
index c9783fc13..fb060d47d 100644
--- a/src/java/org/apache/fop/apps/InputHandler.java
+++ b/src/java/org/apache/fop/apps/InputHandler.java
@@ -111,24 +111,6 @@ public abstract class InputHandler {
throw new Error("unexpected MalformedURLException");
}
}
-
- /**
- * Creates <code>XMLReader</code> object using default
- * <code>SAXParserFactory</code>
- * @return the created <code>XMLReader</code>
- * @throws FOPException if the parser couldn't be created or configured for proper operation.
- */
- protected static XMLReader createParser() throws FOPException {
- try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setNamespaceAware(true);
- return factory.newSAXParser().getXMLReader();
- } catch (SAXException se) {
- throw new FOPException("Coudn't create XMLReader", se);
- } catch (ParserConfigurationException pce) {
- throw new FOPException("Coudn't create XMLReader", pce);
- }
- }
/**
* Runs this InputHandler through the Driver.
@@ -136,22 +118,5 @@ public abstract class InputHandler {
* @throws FOPException if processing this InputHandler fails
*/
public abstract void run(Driver driver) throws FOPException;
-
- /**
- * Sets the parser features on an XMLReader
- * @param parser XMLReader to set features on
- * @throws FOPException if the XMLReader doesn't support the feature that
- * need to be set
- */
- public static void setParserFeatures(XMLReader parser) throws FOPException {
- try {
- parser.setFeature("http://xml.org/sax/features/namespace-prefixes",
- true);
- } catch (SAXException e) {
- throw new FOPException("Error: You need a parser which allows the"
- + " http://xml.org/sax/features/namespace-prefixes"
- + " feature to be set to true to support namespaces", e);
- }
- }
}
diff --git a/src/java/org/apache/fop/apps/XSLTInputHandler.java b/src/java/org/apache/fop/apps/XSLTInputHandler.java
index 82a01b15d..d287e0f16 100644
--- a/src/java/org/apache/fop/apps/XSLTInputHandler.java
+++ b/src/java/org/apache/fop/apps/XSLTInputHandler.java
@@ -170,7 +170,7 @@ public class XSLTInputHandler extends InputHandler {
saxTFactory.newXMLFilter(xsltSource);
// Create an XMLReader.
- XMLReader parser = createParser();
+ XMLReader parser = FOInputHandler.createParser();
if (parser == null) {
throw new FOPException("Unable to create SAX parser");
}