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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to