Michael Gratton wrote: > > Attached is a patch (for the 'fop-0_20_2-maintain' branch) for > MessageHandler There was a problem with MessageHandler.error() in that patch. The attached patch fixes that and makes MessageHandler.log() a bit more readable. It also includes a fix for the outstanding ToBeImplementedProperty problem - by using MessageHandler. Note that the document patch on the previous message is still valid. Mike. -- Michael Gratton <[EMAIL PROTECTED]> Recall Design <http://www.recalldesign.com/> s: 53 Gilbert Street Adelaide SA 5000 Australia t: +61 8 8217 0500 f: +61 8 8217 0555
Index: src/org/apache/fop/messaging/MessageHandler.java
===================================================================
RCS file:
/home/cvspublic/xml-fop/src/org/apache/fop/messaging/Attic/MessageHandler.java,v
retrieving revision 1.6.2.1
diff -u -r1.6.2.1 MessageHandler.java
--- src/org/apache/fop/messaging/MessageHandler.java 17 Mar 2002 23:37:07 -0000
1.6.2.1
+++ src/org/apache/fop/messaging/MessageHandler.java 19 Mar 2002 04:46:04 -0000
@@ -48,6 +48,7 @@
public static final int EVENT = 2;
public static final int NONE = 3; // this should always be the last method
+ private static Logger logger = null;
private static String logfileName = "fop.log";
private static PrintWriter writer;
private static int outputMethod = SCREEN;
@@ -81,47 +82,47 @@
}
}
- // temp workaround
- private static Logger logger = null;
-
/**
* informs the user of the message
* @param message the message for the user
*/
public static void log(String message) {
- if (!quiet) {
- if(logger == null) {
- logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
- }
- setMessage(message);
- switch (outputMethod) {
- case SCREEN:
- logger.debug(getMessage());
- break;
- case FILE:
- if (fileOpened) {
- writer.print(getMessage());
- writer.flush();
- } else {
- openFile();
- writer.print(getMessage());
- writer.flush();
- }
- break;
- case EVENT:
- setMessage(message);
- Enumeration enum = listeners.elements();
- while (enum.hasMoreElements()) {
- ((MessageListener)enum.nextElement()).processMessage(new
MessageEvent(getMessage()));
- }
- break;
- case NONE:
- // do nothing
- break;
- default:
- logger.debug(message);
- }
- }
+ if (quiet)
+ return;
+
+ if (logger == null) {
+ logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ logger.warn("Screen logger not set.");
+ }
+
+ setMessage(message);
+ switch (outputMethod) {
+ case SCREEN:
+ logger.debug(getMessage());
+ break;
+ case FILE:
+ if (fileOpened) {
+ writer.print(getMessage());
+ writer.flush();
+ } else {
+ openFile();
+ writer.print(getMessage());
+ writer.flush();
+ }
+ break;
+ case EVENT:
+ setMessage(message);
+ Enumeration enum = listeners.elements();
+ while (enum.hasMoreElements()) {
+ ((MessageListener)enum.nextElement()).processMessage(new
+MessageEvent(getMessage()));
+ }
+ break;
+ case NONE:
+ // do nothing
+ break;
+ default:
+ logger.debug(message);
+ }
}
/**
@@ -138,9 +139,11 @@
*/
public static void error(String errorMessage) {
- if(logger == null) {
- logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
- }
+ if (logger == null) {
+ logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ logger.warn("Screen logger not set.");
+ }
+
setMessage(errorMessage);
switch (outputMethod) {
case SCREEN:
@@ -195,6 +198,16 @@
*/
public static void removeListener(MessageListener listener) {
listeners.removeElement(listener);
+ }
+
+ /**
+ * Sets the Logger used for the screen output method.
+ * @param newLogger a logger for screen output. This may not be null.
+ */
+ public static void setScreenLogger(Logger newLogger) {
+ if (newLogger == null)
+ throw new NullPointerException();
+ logger = newLogger;
}
/**
Index: src/org/apache/fop/apps/CommandLineOptions.java
===================================================================
RCS file: /home/cvspublic/xml-fop/src/org/apache/fop/apps/CommandLineOptions.java,v
retrieving revision 1.14.2.1
diff -u -r1.14.2.1 CommandLineOptions.java
--- src/org/apache/fop/apps/CommandLineOptions.java 17 Mar 2002 23:37:06 -0000
1.14.2.1
+++ src/org/apache/fop/apps/CommandLineOptions.java 19 Mar 2002 04:46:04 -0000
@@ -15,6 +15,7 @@
// FOP
import org.apache.fop.configuration.Configuration;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.messaging.MessageHandler;
// Avalon
import org.apache.avalon.framework.logger.ConsoleLogger;
@@ -92,7 +93,7 @@
public CommandLineOptions(String[] args)
throws FOPException, FileNotFoundException {
- log = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ setLogger(new ConsoleLogger(ConsoleLogger.LEVEL_INFO));
boolean optionsParsed = true;
rendererOptions = new java.util.Hashtable();
@@ -123,13 +124,13 @@
for (int i = 0; i < args.length; i++) {
if (args[i].equals("-d") || args[i].equals("--full-error-dump")) {
errorDump = new Boolean(true);
- log = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
+ setLogger(new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG));
} else if (args[i].equals("-x")
|| args[i].equals("--dump-config")) {
dumpConfiguration = new Boolean(true);
} else if (args[i].equals("-q") || args[i].equals("--quiet")) {
quiet = new Boolean(true);
- log = new ConsoleLogger(ConsoleLogger.LEVEL_ERROR);
+ setLogger(new ConsoleLogger(ConsoleLogger.LEVEL_ERROR));
} else if (args[i].equals("-c")) {
if ((i + 1 == args.length)
|| (args[i + 1].charAt(0) == '-')) {
@@ -346,6 +347,11 @@
}
} // end checkSettings
+
+ private void setLogger(Logger newLogger) {
+ this.log = newLogger;
+ MessageHandler.setScreenLogger(newLogger);
+ }
/**
* returns the chosen renderer, throws FOPException
Index: src/org/apache/fop/tools/TestConverter.java
===================================================================
RCS file: /home/cvspublic/xml-fop/src/org/apache/fop/tools/TestConverter.java,v
retrieving revision 1.15.2.1
diff -u -r1.15.2.1 TestConverter.java
--- src/org/apache/fop/tools/TestConverter.java 17 Mar 2002 23:37:08 -0000
1.15.2.1
+++ src/org/apache/fop/tools/TestConverter.java 19 Mar 2002 04:46:04 -0000
@@ -9,6 +9,7 @@
import org.apache.fop.apps.*;
import org.apache.fop.configuration.*;
+import org.apache.fop.messaging.MessageHandler;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
@@ -87,6 +88,7 @@
private void setupLogging() {
log = new ConsoleLogger(ConsoleLogger.LEVEL_ERROR);
+ MessageHandler.setScreenLogger(log);
}
public void setOutputPDF(boolean pdf) {
Index: src/org/apache/fop/tools/anttasks/Fop.java
===================================================================
RCS file: /home/cvspublic/xml-fop/src/org/apache/fop/tools/anttasks/Fop.java,v
retrieving revision 1.14.2.1
diff -u -r1.14.2.1 Fop.java
--- src/org/apache/fop/tools/anttasks/Fop.java 17 Mar 2002 23:37:08 -0000
1.14.2.1
+++ src/org/apache/fop/tools/anttasks/Fop.java 19 Mar 2002 04:46:04 -0000
@@ -195,6 +195,7 @@
this.task = task;
log = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+ MessageHandler.setScreenLogger(log);
}
private int determineRenderer(String format) {
Index: src/org/apache/fop/datatypes/ToBeImplementedProperty.java
===================================================================
RCS file:
/home/cvspublic/xml-fop/src/org/apache/fop/datatypes/ToBeImplementedProperty.java,v
retrieving revision 1.3.2.1
diff -u -r1.3.2.1 ToBeImplementedProperty.java
--- src/org/apache/fop/datatypes/ToBeImplementedProperty.java 17 Mar 2002 23:37:07
-0000 1.3.2.1
+++ src/org/apache/fop/datatypes/ToBeImplementedProperty.java 19 Mar 2002 04:46:04
+-0000
@@ -8,6 +8,7 @@
package org.apache.fop.datatypes;
import org.apache.fop.fo.*;
+import org.apache.fop.messaging.MessageHandler;
public class ToBeImplementedProperty extends Property {
@@ -29,14 +30,8 @@
}
public ToBeImplementedProperty(String propName) {
-
- // XXX (mjg) This is a bit of a kluge, perhaps an
- // UnimplementedPropertyException or similar should
- // get thrown here instead.
-
-// Logger log = Hierarchy.getDefaultHierarchy().getLoggerFor("fop");
-// log.warn("property - \"" + propName
-// + "\" is not implemented yet.");
+ MessageHandler.errorln("property - \"" + propName
+ + "\" is not implemented yet.");
}
}
smime.p7s
Description: S/MIME Cryptographic Signature
