diff options
author | Glen Mazza <gmazza@apache.org> | 2004-02-10 23:51:26 +0000 |
---|---|---|
committer | Glen Mazza <gmazza@apache.org> | 2004-02-10 23:51:26 +0000 |
commit | ca0b7fc409b204caa971c3c4c1c0e77449e131b1 (patch) | |
tree | e7b9d114357c72474d401c7e34f91c2e60b973bb /src/java/org/apache | |
parent | d8aebbe2502f26d2cfdf7a60b3d984b00eb911ec (diff) | |
download | xmlgraphics-fop-ca0b7fc409b204caa971c3c4c1c0e77449e131b1.tar.gz xmlgraphics-fop-ca0b7fc409b204caa971c3c4c1c0e77449e131b1.zip |
1.) Deprecation of most constructors in XSLTInputHandler in favor of JAXP.
2.) Removal of unused transformer member variable in XSLTInputHandler.
3.) Partial modifications -- code from Xalan project -- in order to be
able to handle command line parameters for XSLT stylesheet. (Changes
still needed in XSLTInputHandler.getXMLFilter() -- unsure how to set
parameters to an XMLFilter.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197350 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache')
4 files changed, 54 insertions, 20 deletions
diff --git a/src/java/org/apache/fop/apps/CommandLineOptions.java b/src/java/org/apache/fop/apps/CommandLineOptions.java index f31ba9596..3276e5f4a 100644 --- a/src/java/org/apache/fop/apps/CommandLineOptions.java +++ b/src/java/org/apache/fop/apps/CommandLineOptions.java @@ -54,6 +54,7 @@ package org.apache.fop.apps; import java.io.File; import java.io.FileNotFoundException; import java.util.Locale; +import java.util.Vector; // Avalon import org.apache.avalon.framework.logger.ConsoleLogger; @@ -116,6 +117,8 @@ public class CommandLineOptions { private Logger log; + private Vector xsltParams = null; + /** * Construct a command line option object from command line arguments * @param args command line parameters @@ -208,6 +211,18 @@ public class CommandLineOptions { i = i + parseUnknownOption(args, i); } else if (args[i].equals("-at")) { i = i + parseAreaTreeOption(args, i); + } else if (args[i].equals("-param")) { + if (i + 2 < args.length) { + if (xsltParams == null) { + xsltParams = new Vector(); + } + String name = args[++i]; + xsltParams.addElement(name); + String expression = args[++i]; + xsltParams.addElement(expression); + } else { + throw new FOPException("invalid param usage: use -param <name> <value>"); + } } else { printUsage(); return false; @@ -493,7 +508,7 @@ public class CommandLineOptions { case FO_INPUT: return new FOFileHandler(fofile); case XSLT_INPUT: - return new XSLTInputHandler(xmlfile, xsltfile); + return new XSLTInputHandler(xmlfile, xsltfile, xsltParams); default: throw new FOPException("Invalid inputmode setting!"); } @@ -621,6 +636,8 @@ public class CommandLineOptions { + " -fo infile xsl:fo input file \n" + " -xml infile xml input file, must be used together with -xsl \n" + " -xsl stylesheet xslt stylesheet \n \n" +/* + " -param name value <value> to use for parameter <name> in xslt stylesheet\n" + + " (repeat '-param name value' for each parameter)\n \n" */ + " [OUTPUT] \n" + " outfile input will be rendered as pdf file into outfile \n" + " -pdf outfile input will be rendered as pdf file (outfile req'd) \n" diff --git a/src/java/org/apache/fop/apps/XSLTInputHandler.java b/src/java/org/apache/fop/apps/XSLTInputHandler.java index d2bd26788..5227ad6be 100644 --- a/src/java/org/apache/fop/apps/XSLTInputHandler.java +++ b/src/java/org/apache/fop/apps/XSLTInputHandler.java @@ -52,6 +52,7 @@ package org.apache.fop.apps; // Imported java.io classes import java.io.File; +import java.util.Vector; // Imported TraX classes import javax.xml.transform.Source; @@ -73,20 +74,34 @@ import org.xml.sax.XMLFilter; */ public class XSLTInputHandler extends InputHandler { - private Transformer transformer; private StreamSource xmlSource; private Source xsltSource; + private Vector xsltParams = null; // not yet implemented + + /** + * Constructor for files as input + * @param xmlfile XML file + * @param xsltfile XSLT file + * @param params Vector of command-line parameters (name, value, + * name, value, ...) for XSL stylesheet + * @throws FOPException if initializing the Transformer fails + */ + public XSLTInputHandler(File xmlfile, File xsltfile, Vector params) throws FOPException { + this.xmlSource = new StreamSource(xmlfile); + this.xsltSource = new StreamSource(xsltfile); + xsltParams = params; + } /** * Constructor for files as input * @param xmlfile XML file * @param xsltfile XSLT file * @throws FOPException if initializing the Transformer fails + * @deprecated Use JAXP instead. */ public XSLTInputHandler(File xmlfile, File xsltfile) throws FOPException { this.xmlSource = new StreamSource(xmlfile); this.xsltSource = new StreamSource(xsltfile); - initTransformer(); } /** @@ -94,11 +109,11 @@ public class XSLTInputHandler extends InputHandler { * @param xmlURL XML URL * @param xsltURL XSLT URL * @throws FOPException if initializing the Transformer fails + * @deprecated Use JAXP instead. */ public XSLTInputHandler(String xmlURL, String xsltURL) throws FOPException { this.xmlSource = new StreamSource(xmlURL); this.xsltSource = new StreamSource(xsltURL); - initTransformer(); } /** @@ -106,6 +121,7 @@ public class XSLTInputHandler extends InputHandler { * @param xmlSource XML InputSource * @param xsltSource XSLT InputSource * @throws FOPException if initializing the Transformer fails + * @deprecated Use JAXP instead. */ public XSLTInputHandler(InputSource xmlSource, InputSource xsltSource) throws FOPException { @@ -113,16 +129,6 @@ public class XSLTInputHandler extends InputHandler { xmlSource.getSystemId()); this.xsltSource = new StreamSource(xsltSource.getByteStream(), xsltSource.getSystemId()); - initTransformer(); - } - - private void initTransformer() throws FOPException { - try { - this.transformer = - TransformerFactory.newInstance().newTransformer(xsltSource); - } catch (Exception ex) { - throw new FOPException(ex); - } } /** @@ -141,7 +147,7 @@ public class XSLTInputHandler extends InputHandler { * @see org.apache.fop.apps.InputHandler#getParser() */ public XMLReader getParser() throws FOPException { - return getXMLFilter(xsltSource); + return getXMLFilter(xsltSource, xsltParams); } /** @@ -154,11 +160,11 @@ public class XSLTInputHandler extends InputHandler { * XMLReaders or XMLFilters * @throws FOPException if setting up the XMLFilter fails */ - public static XMLFilter getXMLFilter(Source xsltSource) throws FOPException { + public static XMLFilter getXMLFilter(Source xsltSource, Vector inParams) throws FOPException { try { // Instantiate a TransformerFactory. TransformerFactory tFactory = TransformerFactory.newInstance(); - // Determine whether the TransformerFactory supports The use uf SAXSource + // Determine whether the TransformerFactory supports The use of SAXSource // and SAXResult if (tFactory.getFeature(SAXSource.FEATURE) && tFactory.getFeature(SAXResult.FEATURE)) { @@ -168,7 +174,18 @@ public class XSLTInputHandler extends InputHandler { // Create an XMLFilter for each stylesheet. XMLFilter xmlfilter = saxTFactory.newXMLFilter(xsltSource); - + +/* if (inParams != null) { + Transformer transformer = ??? how to obtain from an XMLFilter? + int nParams = inParams.size(); + + for (int i = 0; i < nParams; i += 2) { + transformer.setParameter((String) inParams.elementAt(i), + (String) inParams.elementAt(i + 1)); + } + } +*/ + // Create an XMLReader. XMLReader parser = FOFileHandler.createParser(); if (parser == null) { diff --git a/src/java/org/apache/fop/servlet/FopPrintServlet.java b/src/java/org/apache/fop/servlet/FopPrintServlet.java index 4db2e4b45..2e7abc44d 100644 --- a/src/java/org/apache/fop/servlet/FopPrintServlet.java +++ b/src/java/org/apache/fop/servlet/FopPrintServlet.java @@ -133,7 +133,7 @@ public class FopPrintServlet extends HttpServlet { } else if ((xmlParam != null) && (xsltParam != null)) { XSLTInputHandler input = new XSLTInputHandler(new File(xmlParam), - new File(xsltParam)); + new File(xsltParam), null); renderXML(input, response); } else { response.setContentType("text/html"); diff --git a/src/java/org/apache/fop/tools/TestConverter.java b/src/java/org/apache/fop/tools/TestConverter.java index b93cd7b30..3569d8666 100644 --- a/src/java/org/apache/fop/tools/TestConverter.java +++ b/src/java/org/apache/fop/tools/TestConverter.java @@ -306,7 +306,7 @@ public class TestConverter extends AbstractLogEnabled { } else { inputHandler = new XSLTInputHandler(xmlFile, new File(baseDir + "/" - + xsl)); + + xsl), null); } Driver driver = new Driver(); |