aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremias Maerki <jeremias@apache.org>2006-07-11 08:28:02 +0000
committerJeremias Maerki <jeremias@apache.org>2006-07-11 08:28:02 +0000
commit8cef4a0766bf1ae378043264df7dbcde71829329 (patch)
tree8634e219821a2c04ea36aff9c46c682a56428b03
parentb0f1446578661b8a20fbbe8f6a3a30797ddfaf40 (diff)
downloadxmlgraphics-fop-8cef4a0766bf1ae378043264df7dbcde71829329.tar.gz
xmlgraphics-fop-8cef4a0766bf1ae378043264df7dbcde71829329.zip
Made FOUserAgent.configure() protected again (not to tempt any users to play with it). Instead improved CommandLineOptions to properly build and adjust the FOUserAgent. Manuel's fix was ok, but I wasn't too comfortable with the public configure() method.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@420761 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/apps/FOUserAgent.java2
-rw-r--r--src/java/org/apache/fop/cli/CommandLineOptions.java29
2 files changed, 19 insertions, 12 deletions
diff --git a/src/java/org/apache/fop/apps/FOUserAgent.java b/src/java/org/apache/fop/apps/FOUserAgent.java
index ab9d8335f..5c78221f4 100644
--- a/src/java/org/apache/fop/apps/FOUserAgent.java
+++ b/src/java/org/apache/fop/apps/FOUserAgent.java
@@ -282,7 +282,7 @@ public class FOUserAgent {
* Configures the FOUserAgent through the factory's configuration.
* @see org.apache.avalon.framework.configuration.Configurable
*/
- public void configure(Configuration cfg) {
+ protected void configure(Configuration cfg) {
setBaseURL(FopFactory.getBaseURLfromConfig(cfg, "base"));
if (cfg.getChild("target-resolution", false) != null) {
this.targetResolution
diff --git a/src/java/org/apache/fop/cli/CommandLineOptions.java b/src/java/org/apache/fop/cli/CommandLineOptions.java
index 8618ec5b4..e0714cfea 100644
--- a/src/java/org/apache/fop/cli/CommandLineOptions.java
+++ b/src/java/org/apache/fop/cli/CommandLineOptions.java
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Locale;
+import java.util.Map;
import java.util.Vector;
import javax.swing.UIManager;
@@ -88,7 +89,11 @@ public class CommandLineOptions {
private int inputmode = NOT_SET;
/* output mode */
private String outputmode = null;
-
+ /* rendering options (for the user agent) */
+ private Map renderingOptions = new java.util.HashMap();
+ /* target resolution (for the user agent) */
+ private int targetResolution = 0;
+
private FopFactory factory = FopFactory.newInstance();
private FOUserAgent foUserAgent;
@@ -128,8 +133,6 @@ public class CommandLineOptions {
throws FOPException, IOException {
boolean optionsParsed = true;
- foUserAgent = factory.newFOUserAgent();
-
try {
optionsParsed = parseOptions(args);
if (optionsParsed) {
@@ -138,8 +141,12 @@ public class CommandLineOptions {
}
checkSettings();
createUserConfig();
- if (factory.getUserConfig() != null) {
- foUserAgent.configure(factory.getUserConfig());
+
+ //Factory config is set up, now we can create the user agent
+ foUserAgent = factory.newFOUserAgent();
+ foUserAgent.getRendererOptions().putAll(renderingOptions);
+ if (targetResolution != 0) {
+ foUserAgent.setTargetResolution(targetResolution);
}
addXSLTParameter("fop-output-format", getOutputFormat());
addXSLTParameter("fop-version", Version.getVersion());
@@ -337,7 +344,7 @@ public class CommandLineOptions {
throw new FOPException(
"if you use '-dpi', you must specify a resolution (dots per inch)");
} else {
- foUserAgent.setTargetResolution(Integer.parseInt(args[i + 1]));
+ this.targetResolution = Integer.parseInt(args[i + 1]);
return 1;
}
}
@@ -390,7 +397,7 @@ public class CommandLineOptions {
} else {
outfile = new File(args[i + 1]);
if (pdfAMode != null) {
- foUserAgent.getRendererOptions().put("pdf-a-mode", pdfAMode);
+ renderingOptions.put("pdf-a-mode", pdfAMode);
}
return 1;
}
@@ -517,7 +524,7 @@ public class CommandLineOptions {
|| (args[i + 1].charAt(0) != '-')) {
mime = args[i + 1];
if ("list".equals(mime)) {
- String[] mimes = foUserAgent.getRendererFactory().listSupportedMimeTypes();
+ String[] mimes = factory.getRendererFactory().listSupportedMimeTypes();
System.out.println("Supported MIME types:");
for (int j = 0; j < mimes.length; j++) {
System.out.println(" " + mimes[j]);
@@ -580,7 +587,7 @@ public class CommandLineOptions {
}
private PDFEncryptionParams getPDFEncryptionParams() throws FOPException {
- PDFEncryptionParams params = (PDFEncryptionParams)foUserAgent.getRendererOptions().get(
+ PDFEncryptionParams params = (PDFEncryptionParams)renderingOptions.get(
PDFRenderer.ENCRYPTION_PARAMS);
if (params == null) {
if (!PDFEncryptionManager.checkAvailableAlgorithms()) {
@@ -588,7 +595,7 @@ public class CommandLineOptions {
+ " Please make sure MD5 and RC4 algorithms are available.");
}
params = new PDFEncryptionParams();
- foUserAgent.getRendererOptions().put(PDFRenderer.ENCRYPTION_PARAMS, params);
+ renderingOptions.put(PDFRenderer.ENCRYPTION_PARAMS, params);
}
return params;
}
@@ -754,7 +761,7 @@ public class CommandLineOptions {
throw new FOPException("Renderer has not been set!");
}
if (outputmode.equals(MimeConstants.MIME_FOP_AREA_TREE)) {
- foUserAgent.getRendererOptions().put("fineDetail", isCoarseAreaXml());
+ renderingOptions.put("fineDetail", isCoarseAreaXml());
}
return outputmode;
}