Browse Source

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
pull/30/head
Glen Mazza 21 years ago
parent
commit
cbf102e3fa

+ 5
- 5
src/java/org/apache/fop/apps/CommandLineOptions.java View File

@@ -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 ");
}

+ 0
- 131
src/java/org/apache/fop/apps/CommandLineStarter.java View File

@@ -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 <jtauber@jtauber.com>. For more information on the Apache
* Software Foundation, please see <http://www.apache.org/>.
*/
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);
}
}

}


+ 39
- 7
src/java/org/apache/fop/apps/Fop.java View File

@@ -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");
}
}
}
}

}


Loading…
Cancel
Save