From 8880ae5b8eb03e2363b1b66dc1f64ff0b08ce796 Mon Sep 17 00:00:00 2001 From: Glen Mazza Date: Tue, 12 Aug 2003 22:40:49 +0000 Subject: [PATCH] 1.) CommandLineStarter removed, its functionality placed directly into Fop.main(). Fop.main() now responsible for taking command-line input as provided from CommandLineOptions, and activating a Driver instance with that data. 2.) Minor cleanup of error messages in CommandLineOptions. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196794 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/fop/apps/CommandLineOptions.java | 10 +- .../apache/fop/apps/CommandLineStarter.java | 131 ------------------ src/java/org/apache/fop/apps/Fop.java | 46 +++++- 3 files changed, 44 insertions(+), 143 deletions(-) delete mode 100644 src/java/org/apache/fop/apps/CommandLineStarter.java diff --git a/src/java/org/apache/fop/apps/CommandLineOptions.java b/src/java/org/apache/fop/apps/CommandLineOptions.java index 646ba1022..d47a2aa6d 100644 --- a/src/java/org/apache/fop/apps/CommandLineOptions.java +++ b/src/java/org/apache/fop/apps/CommandLineOptions.java @@ -407,10 +407,10 @@ public class CommandLineOptions { if (inputmode == XSLT_INPUT) { // check whether xml *and* xslt file have been set if (xmlfile == null) { - throw new FOPException("XML file must be specified for the tranform mode"); + throw new FOPException("XML file must be specified for the transform mode"); } if (xsltfile == null) { - throw new FOPException("XSLT file must be specified for the tranform mode"); + throw new FOPException("XSLT file must be specified for the transform mode"); } // warning if fofile has been set in xslt mode @@ -424,12 +424,12 @@ public class CommandLineOptions { + fofile.getAbsolutePath()); } if (!xmlfile.exists()) { - throw new FileNotFoundException("xml file " + throw new FileNotFoundException("Error: xml file " + xmlfile.getAbsolutePath() + " not found "); } if (!xsltfile.exists()) { - throw new FileNotFoundException("xsl file " + throw new FileNotFoundException("Error: xsl file " + xsltfile.getAbsolutePath() + " not found "); } @@ -441,7 +441,7 @@ public class CommandLineOptions { log.error("xslt file: " + xsltfile.toString()); } if (!fofile.exists()) { - throw new FileNotFoundException("fo file " + throw new FileNotFoundException("Error: fo file " + fofile.getAbsolutePath() + " not found "); } diff --git a/src/java/org/apache/fop/apps/CommandLineStarter.java b/src/java/org/apache/fop/apps/CommandLineStarter.java deleted file mode 100644 index cb7166525..000000000 --- a/src/java/org/apache/fop/apps/CommandLineStarter.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * $Id$ - * ============================================================================ - * The Apache Software License, Version 1.1 - * ============================================================================ - * - * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modifica- - * tion, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The end-user documentation included with the redistribution, if any, must - * include the following acknowledgment: "This product includes software - * developed by the Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, if - * and wherever such third-party acknowledgments normally appear. - * - * 4. The names "FOP" and "Apache Software Foundation" must not be used to - * endorse or promote products derived from this software without prior - * written permission. For written permission, please contact - * apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", nor may - * "Apache" appear in their name, without prior written permission of the - * Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- - * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * ============================================================================ - * - * This software consists of voluntary contributions made by many individuals - * on behalf of the Apache Software Foundation and was originally created by - * James Tauber . For more information on the Apache - * Software Foundation, please see . - */ -package org.apache.fop.apps; - -// Java -import java.io.BufferedOutputStream; -import java.io.FileOutputStream; - -// Avalon -import org.apache.avalon.framework.logger.AbstractLogEnabled; - -// FOP -import org.apache.fop.render.awt.AWTRenderer; - -/** - * super class for all classes which start Fop from the commandline - * - * Modified to use new streaming API by Mark Lillywhite, mark-fop@inomial.com - */ -public class CommandLineStarter extends AbstractLogEnabled { - - /** the command-line options associated with this starter */ - protected CommandLineOptions commandLineOptions; - - /** InputHandler associated with this Starter */ - protected InputHandler inputHandler; - - /** - * Main constructor - * @param commandLineOptions command-line options to use - * @throws FOPException In case of failure - */ - public CommandLineStarter(CommandLineOptions commandLineOptions) - throws FOPException { - this.commandLineOptions = commandLineOptions; - inputHandler = commandLineOptions.getInputHandler(); - } - - /** - * Run the format. - * @exception FOPException if there is an error during processing - */ - public void run() throws FOPException { - BufferedOutputStream bos = null; - String version = Version.getVersion(); - getLogger().info(version); - Driver driver = new Driver(); - setupLogger(driver); - - try { - if (commandLineOptions.getOutputMode() == CommandLineOptions.AWT_OUTPUT) { - driver.setRenderer(new AWTRenderer(inputHandler)); - } else { - driver.setRenderer(commandLineOptions.getRenderer()); - } - - try { - if (commandLineOptions.getOutputFile() != null) { - bos = new BufferedOutputStream(new FileOutputStream( - commandLineOptions.getOutputFile())); - driver.setOutputStream(bos); - } - - if (driver.getRenderer() != null) { - driver.getRenderer().setOptions( - commandLineOptions.getRendererOptions()); - } - driver.render(inputHandler); - } finally { - if (bos != null) { - bos.close(); - } - } - } catch (Exception e) { - if (e instanceof FOPException) { - throw (FOPException) e; - } - throw new FOPException(e); - } - } - -} - diff --git a/src/java/org/apache/fop/apps/Fop.java b/src/java/org/apache/fop/apps/Fop.java index d7e432efb..6e85930b9 100644 --- a/src/java/org/apache/fop/apps/Fop.java +++ b/src/java/org/apache/fop/apps/Fop.java @@ -50,8 +50,17 @@ */ package org.apache.fop.apps; +// Java +import java.io.BufferedOutputStream; +import java.io.FileOutputStream; + +// Avalon import org.apache.avalon.framework.logger.ConsoleLogger; +// FOP +import org.apache.fop.render.awt.AWTRenderer; + + /** * The main application class for the FOP command line interface (CLI). */ @@ -63,13 +72,37 @@ public class Fop { */ public static void main(String[] args) { CommandLineOptions options = null; - CommandLineStarter starter = null; + InputHandler inputHandler = null; + BufferedOutputStream bos = null; + String version = Version.getVersion(); try { + Driver driver = new Driver(); + driver.enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_INFO)); + driver.getLogger().info(version); options = new CommandLineOptions(args); - starter = new CommandLineStarter(options); - starter.enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_INFO)); - starter.run(); + inputHandler = options.getInputHandler(); + + try { + if (options.getOutputMode() == CommandLineOptions.AWT_OUTPUT) { + driver.setRenderer(new AWTRenderer(inputHandler)); + } else { + driver.setRenderer(options.getRenderer()); + + if (options.getOutputFile() != null) { + bos = new BufferedOutputStream(new FileOutputStream( + options.getOutputFile())); + driver.setOutputStream(bos); + } + } + + driver.getRenderer().setOptions(options.getRendererOptions()); + driver.render(inputHandler); + } finally { + if (bos != null) { + bos.close(); + } + } } catch (FOPException e) { if (e.getMessage() == null) { System.err.println("Exception occured with a null error message"); @@ -81,15 +114,14 @@ public class Fop { } else { System.err.println("Turn on debugging for more information"); } - } catch (java.io.FileNotFoundException e) { + } catch (java.io.IOException e) { System.err.println("" + e.getMessage()); if (options != null && options.getLogger().isDebugEnabled()) { e.printStackTrace(); } else { System.err.println("Turn on debugging for more information"); } - } + } } - } -- 2.39.5