aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache
diff options
context:
space:
mode:
authorGlen Mazza <gmazza@apache.org>2004-02-10 23:51:26 +0000
committerGlen Mazza <gmazza@apache.org>2004-02-10 23:51:26 +0000
commitca0b7fc409b204caa971c3c4c1c0e77449e131b1 (patch)
treee7b9d114357c72474d401c7e34f91c2e60b973bb /src/java/org/apache
parentd8aebbe2502f26d2cfdf7a60b3d984b00eb911ec (diff)
downloadxmlgraphics-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')
-rw-r--r--src/java/org/apache/fop/apps/CommandLineOptions.java19
-rw-r--r--src/java/org/apache/fop/apps/XSLTInputHandler.java51
-rw-r--r--src/java/org/apache/fop/servlet/FopPrintServlet.java2
-rw-r--r--src/java/org/apache/fop/tools/TestConverter.java2
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();