gmazza 2004/02/10 15:51:26
Modified: . fop.bat
src/java/org/apache/fop/apps CommandLineOptions.java
XSLTInputHandler.java
src/java/org/apache/fop/servlet FopPrintServlet.java
src/java/org/apache/fop/tools TestConverter.java
Log:
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.
Revision Changes Path
1.16 +3 -1 xml-fop/fop.bat
Index: fop.bat
===================================================================
RCS file: /home/cvs/xml-fop/fop.bat,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- fop.bat 10 Feb 2004 22:27:42 -0000 1.15
+++ fop.bat 10 Feb 2004 23:51:25 -0000 1.16
@@ -15,5 +15,7 @@
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\jimi-1.0.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\jai_core.jar
set LOCALCLASSPATH=%LOCALCLASSPATH%;%LIBDIR%\jai_codec.jar
-java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %1 %2 %3 %4 %5 %6 %7 %8
+rem 'shift' removes %0 (i.e., the fop.bat filename)
+shift
+java -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %*
1.14 +18 -1 xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java
Index: CommandLineOptions.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/CommandLineOptions.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- CommandLineOptions.java 1 Sep 2003 13:31:24 -0000 1.13
+++ CommandLineOptions.java 10 Feb 2004 23:51:26 -0000 1.14
@@ -54,6 +54,7 @@
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 @@
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 @@
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 @@
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 @@
+ " -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"
1.11 +34 -17 xml-fop/src/java/org/apache/fop/apps/XSLTInputHandler.java
Index: XSLTInputHandler.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/XSLTInputHandler.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XSLTInputHandler.java 7 Oct 2003 20:06:17 -0000 1.10
+++ XSLTInputHandler.java 10 Feb 2004 23:51:26 -0000 1.11
@@ -52,6 +52,7 @@
// Imported java.io classes
import java.io.File;
+import java.util.Vector;
// Imported TraX classes
import javax.xml.transform.Source;
@@ -73,20 +74,34 @@
*/
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 @@
* @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 @@
* @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 @@
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 @@
* @see org.apache.fop.apps.InputHandler#getParser()
*/
public XMLReader getParser() throws FOPException {
- return getXMLFilter(xsltSource);
+ return getXMLFilter(xsltSource, xsltParams);
}
/**
@@ -154,11 +160,11 @@
* 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 @@
// 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) {
1.9 +1 -1 xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java
Index: FopPrintServlet.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/servlet/FopPrintServlet.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FopPrintServlet.java 19 Sep 2003 14:33:15 -0000 1.8
+++ FopPrintServlet.java 10 Feb 2004 23:51:26 -0000 1.9
@@ -133,7 +133,7 @@
} 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");
1.10 +1 -1 xml-fop/src/java/org/apache/fop/tools/TestConverter.java
Index: TestConverter.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/tools/TestConverter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestConverter.java 10 Feb 2004 17:42:03 -0000 1.9
+++ TestConverter.java 10 Feb 2004 23:51:26 -0000 1.10
@@ -306,7 +306,7 @@
} else {
inputHandler = new XSLTInputHandler(xmlFile,
new File(baseDir + "/"
- + xsl));
+ + xsl), null);
}
Driver driver = new Driver();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]