You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2006/01/24 15:22:09 UTC

svn commit: r371922 - in /xmlgraphics/fop/trunk: src/documentation/content/xdocs/trunk/ src/java/org/apache/fop/cli/ src/java/org/apache/fop/fo/ src/java/org/apache/fop/render/awt/viewer/ src/java/org/apache/fop/tools/ src/java/org/apache/fop/tools/ant...

Author: jeremias
Date: Tue Jan 24 06:21:46 2006
New Revision: 371922

URL: http://svn.apache.org/viewcvs?rev=371922&view=rev
Log:
Command-line support for the intermediate format: Use "-atin" to specify an area tree XML file.
Refactoring of the InputHandler to accomodate the IF as input format and to make responsibilities clearer in general.

Added:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java   (with props)
Modified:
    xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/intermediate.xml
    xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/running.xml
    xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/InputHandler.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/Main.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/Renderable.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java
    xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java

Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/intermediate.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/intermediate.xml?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/intermediate.xml (original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/intermediate.xml Tue Jan 24 06:21:46 2006
@@ -101,6 +101,11 @@
         <code>endDocument()</code> on the AreaTreeModel. This lets the Renderer know that the processing
         is now finished.
       </p>
+      <p>
+        The intermediate format can also be used from the <a href="running.html#standalone-start">command-line</a>
+        by using the "-atin" parameter for specifying the area tree XML as input file. You can also 
+        specify a "mimic renderer" by inserting a MIME type between "-at" and the output file.
+      </p>
       <section id="concat">
         <title>Concatenating Documents</title>
         <p>

Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/running.xml
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/running.xml?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/running.xml (original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/running.xml Tue Jan 24 06:21:46 2006
@@ -128,7 +128,7 @@
   -fo  infile       xsl:fo input file
   -xml infile       xml input file, must be used together with -xsl
   -xsl stylesheet   xslt stylesheet
-
+  -atin infile      area tree input file
   -param name value <value> to use for parameter <name> in xslt stylesheet
                     (repeat '-param name value' for each parameter)
 
@@ -144,7 +144,9 @@
   -ps outfile       input will be rendered as PostScript file (outfile req'd)
   -txt outfile      input will be rendered as text file (outfile req'd)
   -svg outfile      input will be rendered as an svg slides file (outfile req'd)
-  -at outfile       representation of area tree as XML (outfile req'd)
+  -at [mime] out    representation of area tree as XML (outfile req'd)
+                    specify optional mime output to allow AT to be converted
+                    to final format later
   -print            input file will be rendered and sent to the printer
                     see options with "-print help"
   -out mime outfile input will be rendered using the given MIME type

Added: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java?rev=371922&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java (added)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java Tue Jan 24 06:21:46 2006
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.cli;
+
+import java.io.File;
+import java.io.OutputStream;
+import java.util.Vector;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.sax.SAXResult;
+
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.area.AreaTreeModel;
+import org.apache.fop.area.AreaTreeParser;
+import org.apache.fop.area.RenderPagesModel;
+import org.apache.fop.fonts.FontInfo;
+import org.xml.sax.SAXException;
+
+/**
+ * InputHandler for the area tree XML (intermediate format) as input.
+ */
+public class AreaTreeInputHandler extends InputHandler {
+
+    /**
+     * Constructor for XML->XSLT->area tree XML input
+     * @param xmlfile XML file
+     * @param xsltfile XSLT file
+     * @param params Vector of command-line parameters (name, value, 
+     *      name, value, ...) for XSL stylesheet, null if none
+     */
+    public AreaTreeInputHandler(File xmlfile, File xsltfile, Vector params) {
+        super(xmlfile, xsltfile, params);
+    }
+
+    /**
+     * Constructor for area tree XML input
+     * @param atfile the file to read the area tree document.
+     */
+    public AreaTreeInputHandler(File atfile) {
+        super(atfile);
+    }
+
+    /** @see org.apache.fop.cli.InputHandler */
+    public void renderTo(FOUserAgent userAgent, String outputFormat, OutputStream out) 
+                throws FOPException {
+        FontInfo fontInfo = new FontInfo();
+        FOUserAgent effUserAgent = userAgent;
+        if (effUserAgent == null) {
+            effUserAgent = new FOUserAgent();
+        }
+        AreaTreeModel treeModel = new RenderPagesModel(userAgent, 
+                outputFormat, fontInfo, out);
+        
+        //Iterate over all intermediate files
+        AreaTreeParser parser = new AreaTreeParser();
+        
+        // Resulting SAX events (the generated FO) must be piped through to FOP
+        Result res = new SAXResult(parser.getContentHandler(treeModel, userAgent));
+
+        transformTo(res);
+        
+        try {
+            treeModel.endDocument();
+        } catch (SAXException e) {
+            throw new FOPException(e);
+        }
+    }
+
+}

Propchange: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/AreaTreeInputHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java Tue Jan 24 06:21:46 2006
@@ -1,12 +1,12 @@
-/* 
- * Copyright 1999-2005 The Apache Software Foundation.
- * 
+/*
+ * Copyright 1999-2006 The Apache Software Foundation.
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -29,10 +29,11 @@
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.MimeConstants;
-import org.apache.fop.fo.Constants;
 import org.apache.fop.pdf.PDFEncryptionManager;
 import org.apache.fop.pdf.PDFEncryptionParams;
 import org.apache.fop.render.awt.AWTRenderer;
+import org.apache.fop.render.Renderer;
+import org.apache.fop.render.xml.XMLRenderer;
 import org.apache.fop.util.CommandLineLogger;
 
 // commons logging
@@ -52,11 +53,24 @@
 /**
  * Options parses the commandline arguments
  */
-public class CommandLineOptions implements Constants {
+public class CommandLineOptions {
 
     /** Used to indicate that only the result of the XSL transformation should be output */
     public static final int RENDER_NONE = -1;
-    
+
+    /* These following constants are used to describe the input (either .FO, .XML/.XSL or 
+     * intermediate format)
+     */
+
+    /** (input) not set */
+    public static final int NOT_SET = 0;
+    /** input: fo file */
+    public static final int FO_INPUT = 1;
+    /** input: xml+xsl file */
+    public static final int XSLT_INPUT = 2;
+    /** input: Area Tree XML file */
+    public static final int AREATREE_INPUT = 3;
+
     /* show configuration information */
     private Boolean showConfiguration = Boolean.FALSE;
     /* for area tree XML output, only down to block area level */
@@ -69,6 +83,8 @@
     private File xsltfile = null;
     /* xml file (xslt transformation as input) */
     private File xmlfile = null;
+    /* area tree input file */
+    private File areatreefile = null;
     /* output file */
     private File outfile = null;
     /* input mode */
@@ -77,30 +93,32 @@
     private String outputmode = null;
 
     private FOUserAgent foUserAgent;
-    
+
     private InputHandler inputHandler;
-    
+
     private Log log;
 
     private Vector xsltParams = null;
-    
+
+    private String mimicRenderer = null;
+
     /**
      * Construct a command line option object.
      */
     public CommandLineOptions() {
         LogFactory logFactory = LogFactory.getFactory();
-        
+
         // Enable the simple command line logging when no other logger is
         // defined.
         if (System.getProperty("org.apache.commons.logging.Log") == null) {
-            logFactory.setAttribute("org.apache.commons.logging.Log", 
+            logFactory.setAttribute("org.apache.commons.logging.Log",
                                             CommandLineLogger.class.getName());
             setLogLevel("info");
         }
 
         log = LogFactory.getLog("FOP");
     }
-    
+
     /**
      * Parse the command line arguments.
      * @param args the command line arguments.
@@ -108,12 +126,12 @@
      * @throws FileNotFoundException if an input file wasn't found
      * @throws IOException if the the configuration file could not be loaded
      */
-    public void parse(String[] args) 
+    public void parse(String[] args)
             throws FOPException, IOException {
         boolean optionsParsed = true;
-        
+
         foUserAgent = new FOUserAgent();
-        
+
         try {
             optionsParsed = parseOptions(args);
             if (optionsParsed) {
@@ -132,14 +150,27 @@
             printUsage();
             throw e;
         }
-        
+
         inputHandler = createInputHandler();
-        
+
         if (outputmode.equals(MimeConstants.MIME_FOP_AWT_PREVIEW)) {
             AWTRenderer renderer = new AWTRenderer();
             renderer.setRenderable(inputHandler); //set before user agent!
             renderer.setUserAgent(foUserAgent);
             foUserAgent.setRendererOverride(renderer);
+        } else if (outputmode.equals(MimeConstants.MIME_FOP_AREA_TREE)
+               && mimicRenderer != null) {
+            // render from FO to Intermediate Format
+            Renderer targetRenderer = foUserAgent.getRendererFactory().createRenderer(
+                   foUserAgent, mimicRenderer);
+            XMLRenderer xmlRenderer = new XMLRenderer();
+            xmlRenderer.setUserAgent(foUserAgent);
+
+            //Tell the XMLRenderer to mimic the target renderer
+            xmlRenderer.mimicRenderer(targetRenderer);
+
+            //Make sure the prepared XMLRenderer is used
+            foUserAgent.setRendererOverride(xmlRenderer);
         }
     }
 
@@ -149,7 +180,7 @@
     public InputHandler getInputHandler() {
         return inputHandler;
     }
-    
+
     /**
      * Get the logger.
      * @return the logger
@@ -165,7 +196,7 @@
         xsltParams.addElement(name);
         xsltParams.addElement(value);
     }
-    
+
     /**
      * parses the commandline arguments
      * @return true if parse was successful and processing can continue, false
@@ -197,6 +228,8 @@
                 i = i + parseXSLInputOption(args, i);
             } else if (args[i].equals("-xml")) {
                 i = i + parseXMLInputOption(args, i);
+            } else if (args[i].equals("-atin")) {
+                i = i + parseAreaTreeInputOption(args, i);
             } else if (args[i].equals("-awt")) {
                 i = i + parseAWTOutputOption(args, i);
             } else if (args[i].equals("-pdf")) {
@@ -508,9 +541,27 @@
         if ((i + 1 == args.length)
                 || (args[i + 1].charAt(0) == '-')) {
             throw new FOPException("you must specify the area-tree output file");
-        } else {
+          } else if ((i + 2 == args.length)
+                || (args[i + 2].charAt(0) == '-')) {
+            // only output file is specified
             outfile = new File(args[i + 1]);
             return 1;
+        } else {
+            // mimic format and output file have been specified
+            mimicRenderer = args[i + 1];
+            outfile = new File(args[i + 2]);
+            return 2;
+        }
+    }
+
+    private int parseAreaTreeInputOption(String[] args, int i) throws FOPException {
+        inputmode = AREATREE_INPUT;
+        if ((i + 1 == args.length)
+                || (args[i + 1].charAt(0) == '-')) {
+            throw new FOPException("you must specify the Area Tree file for the '-atin' option");
+        } else {
+            areatreefile = new File(args[i + 1]);
+            return 1;
         }
     }
 
@@ -524,7 +575,7 @@
         }
         return foUserAgent.getPDFEncryptionParams();
     }
-    
+
     private int parsePDFOwnerPassword(String[] args, int i) throws FOPException {
         if ((i + 1 == args.length)
                 || (args[i + 1].charAt(0) == '-')) {
@@ -575,7 +626,7 @@
             ((CommandLineLogger) log).setLogLevel(level);
         }
     }
-        
+
     /**
      * checks whether all necessary information has been given in a consistent way
      */
@@ -588,10 +639,10 @@
             throw new FOPException("No output file specified");
         }
 
-        if ((outputmode.equals(MimeConstants.MIME_FOP_AWT_PREVIEW) 
-                || outputmode.equals(MimeConstants.MIME_FOP_PRINT)) 
+        if ((outputmode.equals(MimeConstants.MIME_FOP_AWT_PREVIEW)
+                || outputmode.equals(MimeConstants.MIME_FOP_PRINT))
                     && outfile != null) {
-            throw new FOPException("Output file may not be specified " 
+            throw new FOPException("Output file may not be specified "
                     + "for AWT or PRINT output");
         }
 
@@ -640,7 +691,24 @@
                                                 + fofile.getAbsolutePath()
                                                 + " not found ");
             }
-
+        } else if (inputmode == AREATREE_INPUT) {
+            if (outputmode.equals(MimeConstants.MIME_XSL_FO)) {
+                throw new FOPException(
+                        "FO output mode is only available if you use -xml and -xsl");
+            } else if (outputmode.equals(MimeConstants.MIME_FOP_AREA_TREE)) {
+                throw new FOPException(
+                        "Area Tree Output is not available if Area Tree is used as input!");
+            }
+            if (xmlfile != null || xsltfile != null) {
+                log.warn("area tree input mode, but xmlfile or xslt file are set:");
+                log.error("xml file: " + xmlfile.toString());
+                log.error("xslt file: " + xsltfile.toString());
+            }
+            if (!areatreefile.exists()) {
+                throw new FileNotFoundException("Error: area tree file "
+                                              + areatreefile.getAbsolutePath()
+                                              + " not found ");
+            }
         }
     }    // end checkSettings
 
@@ -690,6 +758,8 @@
         switch (inputmode) {
             case FO_INPUT:
                 return new InputHandler(fofile);
+            case AREATREE_INPUT:
+                return new AreaTreeInputHandler(areatreefile);
             case XSLT_INPUT:
                 return new InputHandler(xmlfile, xsltfile, xsltParams);
             default:
@@ -774,7 +844,7 @@
     public static void printUsage() {
         System.err.println(
               "\nUSAGE\nFop [options] [-fo|-xml] infile [-xsl file] "
-                    + "[-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|-ps|-txt|-at|-print] <outfile>\n"
+                    + "[-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|-ps|-txt|-at [mime]|-print] <outfile>\n"
             + " [OPTIONS]  \n"
             + "  -d             debug mode   \n"
             + "  -x             dump configuration settings  \n"
@@ -795,9 +865,10 @@
             + "  infile            xsl:fo input file (the same as the next) \n"
             + "  -fo  infile       xsl:fo input file  \n"
             + "  -xml infile       xml input file, must be used together with -xsl \n"
+            + "  -atin infile      area tree input file \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" 
+            + "                    (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"
@@ -810,7 +881,9 @@
             + "  -ps outfile       input will be rendered as PostScript file (outfile req'd) \n"
             + "  -txt outfile      input will be rendered as text file (outfile req'd) \n"
             + "  -svg outfile      input will be rendered as an svg slides file (outfile req'd) \n"
-            + "  -at outfile       representation of area tree as XML (outfile req'd) \n"
+            + "  -at [mime] out    representation of area tree as XML (outfile req'd) \n"
+            + "                    specify optional mime output to allow AT to be converted\n"
+            + "                    to final format later\n"
             + "  -print            input file will be rendered and sent to the printer \n"
             + "                    see options with \"-print help\" \n"
             + "  -out mime outfile input will be rendered using the given MIME type\n"
@@ -878,6 +951,9 @@
             }
         } else if (MimeConstants.MIME_FOP_AREA_TREE.equals(outputmode)) {
             log.info("area tree");
+            if (mimicRenderer != null) {
+              log.info("mimic renderer: " + mimicRenderer);
+            }
             log.info("output file: " + outfile.toString());
         } else {
             log.info(outputmode);
@@ -885,7 +961,7 @@
         }
 
         log.info("OPTIONS");
-        
+
         if (userConfigFile != null) {
             log.info("user configuration file: "
                                  + userConfigFile.toString());

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/InputHandler.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/InputHandler.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/InputHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/InputHandler.java Tue Jan 24 06:21:46 2006
@@ -37,6 +37,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.Fop;
 import org.apache.fop.render.awt.viewer.Renderable;
 
@@ -77,10 +78,18 @@
 
     /**
      * Generate a document, given an initialized Fop object
-     * @param fop -- Fop object
+     * @param userAgent the user agent
+     * @param outputFormat the output format to generate (MIME type, see MimeConstants)
+     * @param out the output stream to write the generated output to (may be null if not applicable)
      * @throws FOPException in case of an error during processing
      */
-    public void render(Fop fop) throws FOPException {
+    public void renderTo(FOUserAgent userAgent, String outputFormat, OutputStream out) 
+                throws FOPException {
+        
+        Fop fop = new Fop(outputFormat, userAgent);
+        if (out != null) {
+            fop.setOutputStream(out);
+        }
 
         // if base URL was not explicitly set in FOUserAgent, obtain here
         if (fop.getUserAgent().getBaseURL() == null) {
@@ -101,6 +110,11 @@
         transformTo(res);
     }
     
+    /** @see org.apache.fop.render.awt.viewer.Renderable */
+    public void renderTo(FOUserAgent userAgent, String outputFormat) throws FOPException {
+        renderTo(userAgent, outputFormat, null);
+    }
+
     /**
      * In contrast to render(Fop) this method only performs the XSLT stage and saves the
      * intermediate XSL-FO file to the output file.
@@ -112,7 +126,12 @@
         transformTo(res);
     }
     
-    private void transformTo(Result result) throws FOPException {
+    /**
+     * Transforms the input document to the input format expected by FOP using XSLT.
+     * @param result the Result object where the result of the XSL transformation is sent to
+     * @throws FOPException in case of an error during processing
+     */
+    protected void transformTo(Result result) throws FOPException {
         try {
             // Setup XSLT
             TransformerFactory factory = TransformerFactory.newInstance();

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/Main.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/Main.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/Main.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/Main.java Tue Jan 24 06:21:46 2006
@@ -18,17 +18,16 @@
 
 package org.apache.fop.cli;
 
-import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileFilter;
-import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.MimeConstants;
 
 /**
@@ -141,37 +140,28 @@
         //System.out.println("static CL: " + Fop.class.getClassLoader().toString());
         CommandLineOptions options = null;
         FOUserAgent foUserAgent = null;
-        BufferedOutputStream bos = null;
+        OutputStream out = null;
 
         try {
             options = new CommandLineOptions();
             options.parse(args);
-            foUserAgent = options.getFOUserAgent();
             
-            Fop fop = null;
+            foUserAgent = options.getFOUserAgent();
             String outputFormat = options.getOutputFormat();
-            if (!MimeConstants.MIME_XSL_FO.equals(outputFormat)) {
-                fop = new Fop(outputFormat, foUserAgent);
-            }
 
             try {
                 if (options.getOutputFile() != null) {
-                    bos = new BufferedOutputStream(new FileOutputStream(
-                        options.getOutputFile()));
-                    if (fop != null) {
-                        fop.setOutputStream(bos);
-                        foUserAgent.setOutputFile(options.getOutputFile());
-                    }
+                    out = new java.io.BufferedOutputStream(
+                            new java.io.FileOutputStream(options.getOutputFile()));
+                    foUserAgent.setOutputFile(options.getOutputFile());
                 }
-                if (fop != null) {
-                    options.getInputHandler().render(fop);
+                if (!MimeConstants.MIME_XSL_FO.equals(outputFormat)) {
+                    options.getInputHandler().renderTo(foUserAgent, outputFormat, out);
                 } else {
-                    options.getInputHandler().transformTo(bos);
+                    options.getInputHandler().transformTo(out);
                 }
              } finally {
-                 if (bos != null) {
-                     bos.close();
-                 }
+                 IOUtils.closeQuietly(out);
              }
 
             // System.exit(0) called to close AWT/SVG-created threads, if any.

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/Constants.java Tue Jan 24 06:21:46 2006
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2005 The Apache Software Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,15 +30,8 @@
  */
 public interface Constants {
 
-    /* These constants are used by apps.CommandLineOptions 
-       to describe the input (either .FO or .XML/.XSL) */
-       
-    /** (input) not set */
+    /** not set */
     int NOT_SET = 0;
-    /** input: fo file */
-    int FO_INPUT = 1;
-    /** input: xml+xsl file */
-    int XSLT_INPUT = 2;
 
     // element constants
     /** FObj base class */
@@ -165,26 +158,26 @@
     int FO_PAGE_SEQUENCE_WRAPPER = 60;
     /** Number of FO element constants defined */
     int FRM_OBJ_COUNT = 60;
-    
+
     // Masks
-    /** 
+    /**
      * For compound properties the property constant value is shifted by this amount.
      * The low order bits hold the constant for the component property.
      */
     int COMPOUND_SHIFT = 9;
-    /** 
+    /**
      * Mask that when applied to a compound property returns the constant of
      * the component property.
      */
     int PROPERTY_MASK = (1 << COMPOUND_SHIFT) - 1;
-    /** 
+    /**
      * Mask that when applied to a compound property returns the constant of
      * the compound property.
      */
     int COMPOUND_MASK = ~PROPERTY_MASK;
     /** Number of compund properties defined */
     int COMPOUND_COUNT = 11;
-    
+
     // property constants
     /** Property constant */
     int PR_ABSOLUTE_POSITION = 1;

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java Tue Jan 24 06:21:46 2006
@@ -35,7 +35,6 @@
 import javax.swing.SwingUtilities;
 import javax.swing.border.EmptyBorder;
 
-import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.MimeConstants;
@@ -135,9 +134,6 @@
     /** Asynchronous reloader thread, used when reload() method is called. */
     private Reloader reloader;
 
-    /** The Fop object used for refreshing/reloading the view */
-    protected Fop fop;
-
     /**
      * Allows any mouse drag on the page area to scroll the display window.
      */
@@ -303,9 +299,6 @@
                 return;
             }
 
-            //Always recreate the Fop instance. It is a use-once only.
-            fop = new Fop(MimeConstants.MIME_FOP_AWT_PREVIEW, foUserAgent);
-
             pagePanels = null;
 
             int savedCurrentPage = currentPage;
@@ -341,7 +334,7 @@
             try {
                 if (renderable != null) {
                     renderer.clearViewportList();
-                    renderable.render(fop);
+                    renderable.renderTo(foUserAgent, MimeConstants.MIME_FOP_AWT_PREVIEW);
                 }
             } catch (FOPException e) {
                 e.printStackTrace();

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/Renderable.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/Renderable.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/Renderable.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/Renderable.java Tue Jan 24 06:21:46 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@
 package org.apache.fop.render.awt.viewer;
 
 import org.apache.fop.apps.FOPException;
-import org.apache.fop.apps.Fop;
+import org.apache.fop.apps.FOUserAgent;
 
 /**
  * The interface is used by the AWT preview dialog to reload a document.
@@ -28,9 +28,11 @@
 
     /**
      * Renders the pre-setup document.
-     * @param fop the Fop instance to do the FO processing with
+     * @param userAgent the user agent
+     * @param outputFormat the output format to generate (MIME type, see MimeConstants)
      * @exception FOPException if the FO processing fails
      */
-    void render(Fop fop) throws FOPException;
+    void renderTo(FOUserAgent userAgent, String outputFormat)
+            throws FOPException;
     
 }

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/TestConverter.java Tue Jan 24 06:21:46 2006
@@ -286,7 +286,6 @@
 
             FOUserAgent userAgent = new FOUserAgent();
             userAgent.setBaseURL(baseURL);
-            Fop fop = new Fop(outputFormat, userAgent);
 
             userAgent.getRendererOptions().put("fineDetail", new Boolean(false));
             userAgent.getRendererOptions().put("consistentOutput", new Boolean(true));
@@ -302,9 +301,8 @@
             outputFile.getParentFile().mkdirs();
             OutputStream outStream = new java.io.BufferedOutputStream(
                                  new java.io.FileOutputStream(outputFile));
-            fop.setOutputStream(outStream);
             logger.debug("ddir:" + destdir + " on:" + outputFile.getName());
-            inputHandler.render(fop);
+            inputHandler.renderTo(userAgent, outputFormat, outStream);
             outStream.close();
 
             // check difference

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/tools/anttasks/Fop.java Tue Jan 24 06:21:46 2006
@@ -538,10 +538,7 @@
         try {
             FOUserAgent userAgent = new FOUserAgent();
             userAgent.setBaseURL(this.baseURL);
-            org.apache.fop.apps.Fop fop = new org.apache.fop.apps.Fop(
-                    outputFormat, userAgent);
-            fop.setOutputStream(out);
-            inputHandler.render(fop);
+            inputHandler.renderTo(userAgent, outputFormat, out);
         } catch (Exception ex) {
             throw new BuildException(ex);
         } finally {

Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java?rev=371922&r1=371921&r2=371922&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/BasicDriverTestCase.java Tue Jan 24 06:21:46 2006
@@ -110,11 +110,9 @@
         File xmlFile = new File(getBaseDir(), "test/xml/1.xml");
         File xsltFile = new File(getBaseDir(), "test/xsl/doc.xsl");
         ByteArrayOutputStream baout = new ByteArrayOutputStream();
-        Fop fop = new Fop(MimeConstants.MIME_PDF);
-        fop.setOutputStream(baout);
         
         InputHandler handler = new InputHandler(xmlFile, xsltFile, null);
-        handler.render(fop);
+        handler.renderTo(null, MimeConstants.MIME_PDF, baout);
         
         assertTrue("Generated PDF has zero length", baout.size() > 0);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org