pbwest 2004/03/13 18:44:54
Modified: src/java/org/apache/fop/configuration Tag:
FOP_0-20-0_Alt-Design SystemOptions.java
CLI_Options.java UserOptions.java
ConfigurationParser.java
Removed: src/java/org/apache/fop/configuration Tag:
FOP_0-20-0_Alt-Design FOPOptions.java
Log:
Fixes to options hierarchy
Revision Changes Path
No revision
No revision
1.1.2.2 +84 -98
xml-fop/src/java/org/apache/fop/configuration/Attic/SystemOptions.java
Index: SystemOptions.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/configuration/Attic/SystemOptions.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- SystemOptions.java 13 Mar 2004 08:41:29 -0000 1.1.2.1
+++ SystemOptions.java 14 Mar 2004 02:44:53 -0000 1.1.2.2
@@ -76,27 +76,12 @@
protected Configuration configuration = null;
- /* show configuration information */
- protected boolean dumpConfig = false;
- /* name of user configuration file */
- protected File userConfigFile = null;
- /* name of input fo file */
- protected File foFile = null;
- /* name of xsltFile (xslt transformation as input) */
- protected File xsltFile = null;
- /* name of xml file (xslt transformation as input) */
- protected File xmlFile = null;
- /* name of output file */
- protected File outputFile = null;
- /* name of buffer file */
- protected File bufferFile = null;
+// /* show configuration information */
+// protected boolean dumpConfig = false;
/* input mode */
protected int inputmode = NOT_SET;
/* output mode */
protected int outputmode = NOT_SET;
- /* buffer mode */
- protected int buffermode = NOT_SET;
- /* language for user information */
// baseDir (set from the config files
protected String baseDir = null;
@@ -130,13 +115,6 @@
public SystemOptions(Configuration configuration) {
setup();
this.configuration = configuration;
- try {
- configure();
- } catch (FileNotFoundException e) {
- throw new RuntimeException(e);
- } catch (FOPException e) {
- throw new RuntimeException(e);
- }
}
private void setup() {
@@ -214,7 +192,7 @@
* @return the index of that name in the array of input mode names,
* or -1 if not found
*/
- public int inputModeNameToIndex(String name) {
+ protected int inputModeNameToIndex(String name) {
for (int i = 0; i <= LAST_INPUT_MODE; i++) {
if (name.equals(inputModes[i])) return i;
}
@@ -227,7 +205,7 @@
* @return the index of that name in the array of output mode names,
* or -1 if not found
*/
- public int outputModeNameToIndex(String name) {
+ protected int outputModeNameToIndex(String name) {
for (int i = 0; i <= LAST_INPUT_MODE; i++) {
if (name.equals(outputModes[i])) return i;
}
@@ -250,26 +228,9 @@
*
* @exception FOPException
*/
- void initOptions() throws FOPException {
+ protected void initOptions() throws FOPException {
String str = null;
- // show configuration settings
- dumpConfig = configuration.isTrue("dumpConfiguration");
-
- if ((str = getFoFileName()) != null)
- foFile = new File(str);
- if ((str = getXmlFileName()) != null)
- xmlFile = new File(str);
- if ((str = getXsltFileName()) != null)
- xsltFile = new File(str);
- if ((str = getOutputFileName()) != null)
- outputFile = new File(str);
- if ((str = getBufferFileName()) != null)
- bufferFile = new File(str);
- // userConfigFile may be set in the process of loading said file
- if (userConfigFile == null && (str = getUserConfigFileName()) != null)
- userConfigFile = new File(str);
-
if ((str = getInputMode()) != null)
inputmode = inputModeIndex(str);
if ((str = getOutputMode()) != null)
@@ -291,7 +252,7 @@
log.config("base directory: " + baseDir);
}
- if (dumpConfig) {
+ if (dumpConfig()) {
configuration.dumpConfiguration();
System.exit(0);
}
@@ -313,7 +274,7 @@
* @exception FOPException if the configuration file
* cannot be discovered.
*/
- public void loadConfiguration(String fname)
+ protected void loadConfiguration(String fname)
throws FOPException {
InputStream configfile = ConfigurationResource.getResourceFile(
"conf/" + fname, ConfigurationReader.class);
@@ -331,7 +292,7 @@
* Get the log.
* @return the log
*/
- public Logger getLogger() {
+ protected Logger getLogger() {
return log;
}
@@ -388,7 +349,7 @@
/**
* checks whether all necessary information has been given in a consistent way
*/
- private void checkSettings() throws FOPException, FileNotFoundException {
+ protected void checkSettings() throws FOPException, FileNotFoundException {
if (inputmode == NOT_SET) {
throw new FOPException("No input file specified");
}
@@ -398,31 +359,31 @@
}
if (inputmode == XSLT_INPUT) {
- if (xmlFile == null) {
+ if (getXmlFile() == null) {
throw new FOPException("No xml input file specified");
}
- if (!xmlFile.exists()) {
+ if (!getXmlFile().exists()) {
throw new FileNotFoundException("Error: xml file "
- + xmlFile.getAbsolutePath()
+ + getXmlFile().getAbsolutePath()
+ " not found ");
}
- if (xsltFile == null ) {
+ if (getXsltFile() == null ) {
throw new FOPException(
"No xslt transformation file specified");
}
- if (!xsltFile.exists()) {
+ if (!getXsltFile().exists()) {
throw new FileNotFoundException("Error: xsl file "
- + xsltFile.getAbsolutePath()
+ + getXsltFile().getAbsolutePath()
+ " not found ");
}
} else if (inputmode == FO_INPUT) {
- if (foFile == null) {
+ if (getFoFile() == null) {
throw new FOPException("No fo input file specified");
}
- if (!foFile.exists()) {
+ if (!getFoFile().exists()) {
throw new FileNotFoundException("Error: fo file "
- + foFile.getAbsolutePath()
+ + getFoFile().getAbsolutePath()
+ " not found ");
}
}
@@ -470,9 +431,10 @@
public InputHandler getInputHandler() throws FOPException {
switch (inputmode) {
case FO_INPUT:
- return new FOFileHandler(foFile);
+ return new FOFileHandler(getFoFile());
case XSLT_INPUT:
- return new XSLTInputHandler(xmlFile, xsltFile, xsltParams);
+ return new XSLTInputHandler(
+ getXmlFile(), getXsltFile(), xsltParams);
default:
throw new FOPException("Invalid inputmode setting!");
}
@@ -495,7 +457,7 @@
* Returns the input mode (type of input data, ex. NOT_SET or FO_INPUT)
* @return the input mode
*/
- public int getInputModeIndex() throws FOPException {
+ protected int getInputModeIndex() throws FOPException {
String mode;
if ((mode = getInputMode()) == null) return NOT_SET;
return inputModeIndex(mode);
@@ -509,7 +471,7 @@
* Returns the output mode (output format, ex. NOT_SET or PDF_OUTPUT)
* @return the output mode
*/
- public int getOutputModeIndex() throws FOPException {
+ protected int getOutputModeIndex() throws FOPException {
String mode;
if ((mode = getOutputMode()) == null) return NOT_SET;
return outputModeIndex(mode);
@@ -521,7 +483,11 @@
}
public File getFoFile() {
- return foFile;
+ String fname;
+ if ((fname = getFoFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
}
public String getXmlFileName() {
@@ -529,7 +495,11 @@
}
public File getXmlFile() {
- return xmlFile;
+ String fname;
+ if ((fname = getXmlFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
}
public String getXsltFileName() {
@@ -537,7 +507,11 @@
}
public File getXsltFile() {
- return xsltFile;
+ String fname;
+ if ((fname = getXsltFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
}
public String getOutputFileName() {
@@ -545,7 +519,11 @@
}
public File getOutputFile() {
- return outputFile;
+ String fname;
+ if ((fname = getOutputFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
}
public String getSystemConfigFileName() {
@@ -557,20 +535,24 @@
return defaultConfigFile;
}
+ public File getSystemConfigFile() {
+ String fname;
+ if ((fname = getSystemConfigFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
+ }
+
public String getUserConfigFileName() {
return configuration.getStringValue("userConfigFileName");
}
public File getUserConfigFile() {
- return userConfigFile;
- }
-
- public String getBufferFileName() {
- return configuration.getStringValue("bufferFileName");
- }
-
- public File getBufferFile() {
- return bufferFile;
+ String fname;
+ if ((fname = getUserConfigFileName()) == null) {
+ return null;
+ }
+ return new File(fname);
}
public String getLanguage() {
@@ -585,6 +567,10 @@
return configuration.getBooleanObject("dumpConfiguration");
}
+ public boolean dumpConfig() {
+ return doDumpConfiguration().booleanValue();
+ }
+
public boolean isDebugMode() {
return configuration.isTrue("debugMode");
}
@@ -603,18 +589,18 @@
public File getInputFile() {
switch (inputmode) {
case FO_INPUT:
- return foFile;
+ return getFoFile();
case XSLT_INPUT:
- return xmlFile;
+ return getXmlFile();
default:
- return foFile;
+ return getFoFile();
}
}
/**
* shows the commandline syntax including a summary of all available options
and some examples
*/
- public void printUsage() {
+ protected void printUsage() {
HelpFormatter help = new HelpFormatter();
help.printHelp("FOP", options, true);
}
@@ -622,7 +608,7 @@
/**
* shows the options for print output
*/
- public void printUsagePrintOutput() {
+ protected void printUsagePrintOutput() {
System.err.println("USAGE: -print [-Dstart=i] [-Dend=i] [-Dcopies=i]
[-Deven=true|false] "
+ " org.apache.fop.apps.Fop (..) -print \n"
+ "Example:\n"
@@ -633,7 +619,7 @@
/**
* debug mode. outputs all commandline settings
*/
- private void debug() {
+ protected void debug() {
StringBuffer fine = new StringBuffer();
StringBuffer severe = new StringBuffer();
fine.append("Input mode: ");
@@ -643,12 +629,12 @@
break;
case FO_INPUT:
fine.append("FO ");
- fine.append("fo input file: " + foFile.toString());
+ fine.append("fo input file: " + getFoFileName());
break;
case XSLT_INPUT:
fine.append("xslt transformation");
- fine.append("xml input file: " + xmlFile.toString());
- fine.append("xslt stylesheet: " + xsltFile.toString());
+ fine.append("xml input file: " + getXmlFileName());
+ fine.append("xslt stylesheet: " + getXsltFileName());
break;
default:
fine.append("unknown input type");
@@ -660,45 +646,45 @@
break;
case PDF_OUTPUT:
fine.append("pdf");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case AWT_OUTPUT:
fine.append("awt on screen");
- if (outputFile != null) {
+ if (getOutputFile() != null) {
severe.append("awt mode, but outfile is set:\n");
- fine.append("out file: " + outputFile.toString());
+ severe.append("output file: " + getOutputFileName() + "\n");
}
break;
case MIF_OUTPUT:
fine.append("mif");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case RTF_OUTPUT:
fine.append("rtf");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case PRINT_OUTPUT:
fine.append("print directly");
- if (outputFile != null) {
+ if (getOutputFile() != null) {
severe.append("print mode, but outfile is set:\n");
- severe.append("out file: " + outputFile.toString() + "\n");
+ severe.append("output file: " + getOutputFileName() + "\n");
}
break;
case PCL_OUTPUT:
fine.append("pcl");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case PS_OUTPUT:
fine.append("PostScript");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case TXT_OUTPUT:
fine.append("txt");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
case SVG_OUTPUT:
fine.append("svg");
- fine.append("output file: " + outputFile.toString());
+ fine.append("output file: " + getOutputFileName());
break;
default:
fine.append("unknown input type");
@@ -706,14 +692,14 @@
fine.append("\nOPTIONS\n");
- if (userConfigFile != null) {
+ if (getUserConfigFileName() != null) {
fine.append("user configuration file: "
- + userConfigFile.toString());
+ + getUserConfigFileName());
} else {
fine.append("no user configuration file is used [default]");
}
fine.append("\n");
- if (dumpConfig == true) {
+ if (dumpConfig()) {
fine.append("dump configuration");
} else {
fine.append("don't dump configuration [default]");
1.1.2.2 +28 -50
xml-fop/src/java/org/apache/fop/configuration/Attic/CLI_Options.java
Index: CLI_Options.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/configuration/Attic/CLI_Options.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- CLI_Options.java 13 Mar 2004 08:41:29 -0000 1.1.2.1
+++ CLI_Options.java 14 Mar 2004 02:44:53 -0000 1.1.2.2
@@ -19,8 +19,6 @@
package org.apache.fop.configuration;
-// java
-import java.io.File;
import java.io.FileNotFoundException;
import java.util.Locale;
import java.util.logging.Level;
@@ -40,17 +38,12 @@
* additional setting of commandline options
*/
public class CLI_Options extends UserOptions {
-
+
+ String[] args = null;
+
public CLI_Options(Configuration configuration, String[] args) {
super(configuration);
- this.configuration = configuration;
- try {
- configure(args);
- } catch (FileNotFoundException e) {
- throw new RuntimeException(e);
- } catch (FOPException e) {
- throw new RuntimeException(e);
- }
+ this.args = args;
}
/**
@@ -69,18 +62,20 @@
private Options makeOptions() {
// Create the Options object that will be returned
Options options = new Options();
+ OptionBuilder.withArgName("help");
+ OptionBuilder.withLongOpt("help");
+ OptionBuilder.withDescription("Describe usage");
+ options.addOption(OptionBuilder.create("?"));
// The mutually exclusive verbosity group includes the -d and -q flags
OptionGroup verbosity = new OptionGroup();
OptionBuilder.withArgName("debug mode");
OptionBuilder.withLongOpt("full-error-dump");
OptionBuilder.withDescription("Debug mode: verbose reporting");
- verbosity.addOption(
- OptionBuilder.create("d"));
+ verbosity.addOption(OptionBuilder.create("d"));
OptionBuilder.withArgName("quiet mode");
OptionBuilder.withLongOpt("quiet");
OptionBuilder.withDescription("Quiet mode: report errors only");
- verbosity.addOption(
- OptionBuilder.create("q"));
+ verbosity.addOption(OptionBuilder.create("q"));
verbosity.setRequired(false);
// Add verbosity to options
options.addOptionGroup(verbosity);
@@ -95,23 +90,20 @@
OptionBuilder.withLongOpt("config-file");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Configuration file");
- options.addOption(
- OptionBuilder.create("c"));
+ options.addOption(OptionBuilder.create("c"));
// Add the language option directly
OptionBuilder.withArgName("language");
OptionBuilder.withLongOpt("language");
OptionBuilder.hasArg();
OptionBuilder.withDescription("ISO639 language code");
- options.addOption(
- OptionBuilder.create("l"));
+ options.addOption(OptionBuilder.create("l"));
// Create the mutually exclusive input group
OptionGroup input = new OptionGroup();
OptionBuilder.withArgName("fo:file");
OptionBuilder.withLongOpt("fo");
OptionBuilder.hasArg();
OptionBuilder.withDescription("XSL-FO input file");
- input.addOption(
- OptionBuilder.create("fo"));
+ input.addOption(OptionBuilder.create("fo"));
OptionBuilder.withArgName("xml file");
OptionBuilder.withLongOpt("xml");
OptionBuilder.hasArg();
@@ -126,8 +118,7 @@
OptionBuilder.withLongOpt("xsl");
OptionBuilder.hasArg();
OptionBuilder.withDescription("XSL stylesheet for transforming XML to
XSL-FO");
- options.addOption(
- OptionBuilder.create("xsl"));
+ options.addOption(OptionBuilder.create("xsl"));
// Work-around for the xsl parameters
// Allow multiple arguments (does this apply to multiple instances
// of the argument specifier?) of the form <name=value>, using '='
@@ -137,80 +128,68 @@
OptionBuilder.withLongOpt("xsl-param");
OptionBuilder.hasArgs(Option.UNLIMITED_VALUES);
OptionBuilder.withDescription("Parameter to XSL stylesheet");
- options.addOption(
- OptionBuilder.create("param"));
+ options.addOption(OptionBuilder.create("param"));
// Create the mutually exclusive output group
OptionGroup output = new OptionGroup();
OptionBuilder.withArgName("screen renderer");
OptionBuilder.withLongOpt("awt");
OptionBuilder.withDescription("Input will be renderered to display");
- output.addOption(
- OptionBuilder.create("awt"));
+ output.addOption(OptionBuilder.create("awt"));
OptionBuilder.withArgName("pdf output file");
OptionBuilder.withLongOpt("pdf");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as PDF to named
file");
- output.addOption(
- OptionBuilder.create("pdf"));
+ output.addOption(OptionBuilder.create("pdf"));
OptionBuilder.withArgName("postscript output file");
OptionBuilder.withLongOpt("ps");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as Postscript to
named file");
- output.addOption(
- OptionBuilder.create("ps"));
+ output.addOption(OptionBuilder.create("ps"));
OptionBuilder.withArgName("pcl output file");
OptionBuilder.withLongOpt("pcl");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as PCL to named
file");
- output.addOption(
- OptionBuilder.create("pcl"));
+ output.addOption(OptionBuilder.create("pcl"));
OptionBuilder.withArgName("rtf output file");
OptionBuilder.withLongOpt("rtf");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as RTF to named
file");
- output.addOption(
- OptionBuilder.create("rtf"));
+ output.addOption(OptionBuilder.create("rtf"));
OptionBuilder.withArgName("mif output file");
OptionBuilder.withLongOpt("mif");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as MIF to named
file");
- output.addOption(
- OptionBuilder.create("mif"));
+ output.addOption(OptionBuilder.create("mif"));
OptionBuilder.withArgName("svg output file");
OptionBuilder.withLongOpt("svg");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as SVG to named
file");
- output.addOption(
- OptionBuilder.create("svg"));
+ output.addOption(OptionBuilder.create("svg"));
OptionBuilder.withArgName("text output file");
OptionBuilder.withLongOpt("plain-text");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Input will be rendered as plain text to
named file");
- output.addOption(
- OptionBuilder.create("txt"));
+ output.addOption(OptionBuilder.create("txt"));
OptionBuilder.withArgName("area tree output file");
OptionBuilder.withLongOpt("area-tree");
OptionBuilder.hasArg();
OptionBuilder.withDescription("Area tree will be output as XML to named
file");
- output.addOption(
- OptionBuilder.create("at"));
+ output.addOption(OptionBuilder.create("at"));
OptionBuilder.withArgName("help");
OptionBuilder.withLongOpt("print");
OptionBuilder.hasOptionalArg();
OptionBuilder.withDescription("Input will be rendered and sent to the
printer. "
+ "Requires extra arguments to the \"java\" command. "
+ "See options with \"-print help\".");
- output.addOption(
- OptionBuilder.create("print"));
+ output.addOption(OptionBuilder.create("print"));
// -s option relevant only to -at area tree output. Again, no way
// to express this directly
OptionBuilder.withArgName("supress low-level areas");
OptionBuilder.withLongOpt("only-block-areas");
OptionBuilder.withDescription("Suppress non-block areas in XML renderer");
- options.addOption(
- OptionBuilder.create("s"));
+ options.addOption(OptionBuilder.create("s"));
return options;
}
@@ -328,7 +307,7 @@
if (cli.getOptionValue("print").toLowerCase(Locale.getDefault())
== "help") {
printUsagePrintOutput();
- throw new FOPException("Usage only");
+ throw new FOPException("Print usage only");
}
}
// Get any remaining non-options
@@ -341,7 +320,6 @@
setInputMode(FO_INPUT);
filename = remArgs[i++];
configuration.put("foFileName", filename);
- foFile = new File(filename);
}
if (outputmode == NOT_SET && i < remArgs.length
&& remArgs[i].charAt(0) != '-') {
1.1.2.2 +19 -3
xml-fop/src/java/org/apache/fop/configuration/Attic/UserOptions.java
Index: UserOptions.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/configuration/Attic/UserOptions.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- UserOptions.java 13 Mar 2004 08:41:29 -0000 1.1.2.1
+++ UserOptions.java 14 Mar 2004 02:44:53 -0000 1.1.2.2
@@ -22,6 +22,7 @@
// java
import java.io.File;
+import java.io.FileNotFoundException;
// fop
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.InputHandler;
@@ -41,6 +42,17 @@
public UserOptions(Configuration configuration) {
super(configuration);
}
+
+ /**
+ * Configure the system according to the system configuration file
+ * config.xml and the user configuration file if it is specified in the
+ * system configuration file.
+ */
+ public void configure()
+ throws FOPException, FileNotFoundException {
+ loadUserConfiguration(getUserConfigFileName());
+ super.configure();
+ }
/**
* Load a user-defined configuration file.
@@ -50,10 +62,14 @@
* <code>loadConfiguration</code>.
* @param userConfigFileName the name of the user configuration file.
*/
- public void loadConfiguration(String userConfigFileName) {
+ public void loadUserConfiguration(String userConfigFileName) {
// read user configuration file
boolean readOk = true;
- userConfigFile = new File(userConfigFileName);
+ if (userConfigFileName == null) {
+ log.config("No user config file name");
+ return;
+ }
+ File userConfigFile = new File(userConfigFileName);
if (userConfigFile == null) {
return;
}
1.1.2.7 +3 -2
xml-fop/src/java/org/apache/fop/configuration/Attic/ConfigurationParser.java
Index: ConfigurationParser.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/configuration/Attic/ConfigurationParser.java,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -r1.1.2.6 -r1.1.2.7
--- ConfigurationParser.java 13 Mar 2004 08:41:29 -0000 1.1.2.6
+++ ConfigurationParser.java 14 Mar 2004 02:44:53 -0000 1.1.2.7
@@ -270,8 +270,9 @@
configuration.logger.config(
"Existing value for key " + key + ":"
+ val.toString() + " overrides " + value.toString());
+ } else {
+ activeConfiguration.put(key, value);
}
- activeConfiguration.put(key, value);
} else {
configuration.logger.warning("Unknown role >" + role
+ "< for new configuration entry. \n"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]