Author: dblevins
Date: Mon Aug  6 11:23:53 2007
New Revision: 563214

URL: http://svn.apache.org/viewvc?view=rev&rev=563214
Log:
Reformatted, added a couple lines of javadoc

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?view=diff&rev=563214&r1=563213&r2=563214
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 Mon Aug  6 11:23:53 2007
@@ -16,6 +16,14 @@
  */
 package org.apache.openejb.util;
 
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.SimpleLayout;
+import org.apache.openejb.loader.FileUtils;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.xbean.finder.ResourceFinder;
+
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -26,7 +34,6 @@
 import java.io.OutputStream;
 import java.text.MessageFormat;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -34,579 +41,574 @@
 import java.util.Properties;
 import java.util.ResourceBundle;
 
-import org.apache.log4j.Appender;
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Level;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.SimpleLayout;
-import org.apache.openejb.loader.FileUtils;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.xbean.finder.ResourceFinder;
-
 public class Logger {
 
-       protected org.apache.log4j.Logger _logger = null;
+    protected org.apache.log4j.Logger _logger = null;
 
-       private String baseName;
+    private String baseName;
 
-       private static final String SUFFIX = ".Messages";
+    private static final String SUFFIX = ".Messages";
 
-       private static final String OPENEJB = "org.apache.openejb";
-       /**
-        * Computes the parent of a resource name. E.g. if we pass in a key of
-        * a.b.c, it returns the value a.b
-        * 
-        */
-       private static final Computable<String, String> heirarchyResolver = new 
Computable<String, String>() {
-               public String compute(String key) throws InterruptedException {
-                       int index = key.lastIndexOf(".");
-                       String parent = key.substring(0, index);
-                       if (parent.contains(OPENEJB))
-                               return parent;
-                       return null;
-               }
-       };
-       /**
-        * Simply returns the ResourceBundle for a given baseName
-        */
-       private static final Computable<String, ResourceBundle> bundleResolver 
= new Computable<String, ResourceBundle>() {
-               public ResourceBundle compute(String baseName)
-                               throws InterruptedException {
-                       try {
-                               return ResourceBundle.getBundle(baseName + 
SUFFIX);
-                       } catch (MissingResourceException e) {
-                               return null;
-                       }
-               }
-       };
-       /**
-        * Builds a Logger object and returns it
-        */
-       private static final Computable<String[], Logger> loggerResolver = new 
Computable<String[], Logger>() {
-               public Logger compute(String[] args) throws 
InterruptedException {
-
-                       Logger logger = new Logger();
-                       logger._logger = 
org.apache.log4j.Logger.getLogger(args[0]);
-                       logger.baseName = args[1];
-                       return logger;
-
-               }
-       };
-       /**
-        * Creates a MessageFormat object for a message and returns it
-        */
-       private static final Computable<String, MessageFormat> 
messageFormatResolver = new Computable<String, MessageFormat>() {
-               public MessageFormat compute(String message)
-                               throws InterruptedException {
-
-                       return new MessageFormat(message);
-
-               }
-       };
-       /**
-        * Cache of parent-child relationships between resource names
-        */
-       private static final Computable<String, String> heirarchyCache = new 
Memoizer<String, String>(
-                       heirarchyResolver);
-       /**
-        * Cache of ResourceBundles
-        */
-       private static final Computable<String, ResourceBundle> bundleCache = 
new Memoizer<String, ResourceBundle>(
-                       bundleResolver);
-       /**
-        * Cache of Loggers
-        */
-       private static final Computable<String[], Logger> loggerCache = new 
Memoizer<String[], Logger>(
-                       loggerResolver);
-       /**
-        * Cache of MessageFormats
-        */
-       private static final Computable<String, MessageFormat> 
messageFormatCache = new Memoizer<String, MessageFormat>(
-                       messageFormatResolver);
-
-       /**
-        * Given a key and a baseName, this method computes a message for a 
key. if
-        * the key is not found in this ResourceBundle for this baseName, then 
it
-        * recursively looks up its parent to find the message for a key. If no
-        * message is found for a key, the key is returned as is and is logged 
by
-        * the logger.
-        * 
-        */
-       private String getMessage(String key, String baseName) {
-               try {
-
-                       ResourceBundle bundle = bundleCache.compute(baseName);
-                       if (bundle != null) {
-                               String message = null;
-                               try {
-                                       message = bundle.getString(key);
-                                       return message;
-                               } catch (MissingResourceException e) {
-                                       String parentName = 
heirarchyCache.compute(baseName);
-                                       if (parentName == null)
-                                               return key;
-                                       else
-                                               return getMessage(key, 
parentName);
-                               }
-
-                       } else {
-                               String parentName = 
heirarchyCache.compute(baseName);
-                               if (parentName == null)
-                                       return key;
-                               else
-                                       return getMessage(key, parentName);
-
-                       }
-               } catch (InterruptedException e) {
-                       // ignore
-               }
-               return key;
-       }
-
-       /**
-        * @deprecated Use [EMAIL PROTECTED] #init()} instead
-        */
-       public static void initialize(Properties props) {
-               Log4jConfigUtils log4j = new Logger.Log4jConfigUtils(props);
-
-               log4j.configure();
-       }
-
-       /**
-        * Initialise using [EMAIL PROTECTED] SystemInstance} as the source of 
properties
-        */
-       public static void init() {
-               initialize(SystemInstance.get().getProperties());
-       }
-/**
- * Finds a Logger from the cache and returns it. If not found in cache then 
builds a Logger and returns it.
- * @param name - The name of the logger
- * @param baseName - The baseName for the ResourceBundle
- * @return Logger
- */
-       public static Logger getInstance(String name, String baseName) {
-               try {
-                       Logger logger = loggerCache
-                                       .compute(new String[] { name, baseName 
});
-                       return logger;
-               } catch (InterruptedException e) {
-                       /*
-                        * Don't return null here. Just create a new Logger and 
set it up.
-                        * It will not be stored in the cache, but a later 
lookup for the
-                        * same Logger would probably end up in the cache
-                        */
-                       Logger logger = new Logger();
-                       logger._logger = 
org.apache.log4j.Logger.getLogger(name);
-                       logger.baseName = baseName;
-                       return logger;
-               }
-
-       }
-/**
- * Formats a given message
- * @param message
- * @param args
- * @return
- */
-       private String formatMessage(String message, Object... args) {
-               try {
-                       MessageFormat mf = messageFormatCache.compute(message);
-                       String msg = mf.format(args);
-                       return msg;
-               } catch (InterruptedException e) {
-                       return "Error in formatting message " + message;
-               }
-
-       }
-
-       private Logger() {
-       }
-
-       public boolean isDebugEnabled() {
-               return _logger.isDebugEnabled();
-       }
-
-       public boolean isErrorEnabled() {
-               return _logger.isEnabledFor(Level.ERROR);
-       }
-
-       public boolean isFatalEnabled() {
-               return _logger.isEnabledFor(Level.FATAL);
-       }
-
-       public boolean isInfoEnabled() {
-               return _logger.isInfoEnabled();
-       }
-
-       public boolean isWarningEnabled() {
-               return _logger.isEnabledFor(Level.WARN);
-       }
-/**
- * If this level is enabled, then it finds a message for the given key  and 
logs it
- * @param message - This could be a plain message or a key in 
Messages.properties
- * @return
- */
-       public String debug(String message) {
-
-               if (isDebugEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.debug(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String debug(String message, Object... args) {
-
-               if (isDebugEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.debug(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String debug(String message, Throwable t) {
-
-               if (isDebugEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.debug(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String debug(String message, Throwable t, Object... args) {
-
-               if (isDebugEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.debug(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String error(String message) {
-
-               if (isErrorEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.error(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String error(String message, Object... args) {
-
-               if (isErrorEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.error(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String error(String message, Throwable t) {
-
-               if (isErrorEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.error(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String error(String message, Throwable t, Object... args) {
-
-               if (isErrorEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.error(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String fatal(String message) {
-               if (isFatalEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.fatal(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String fatal(String message, Object... args) {
-               if (isFatalEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.fatal(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String fatal(String message, Throwable t) {
-               if (isFatalEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.fatal(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String fatal(String message, Throwable t, Object... args) {
-               if (isFatalEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.fatal(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String info(String message) {
-               if (isInfoEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.info(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String info(String message, Object... args) {
-               if (isInfoEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.info(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String info(String message, Throwable t) {
-               if (isInfoEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.info(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String info(String message, Throwable t, Object... args) {
-               if (isInfoEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.info(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String warning(String message) {
-               if (isWarningEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.warn(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String warning(String message, Object... args) {
-               if (isWarningEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.warn(msg);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String warning(String message, Throwable t) {
-               if (isWarningEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       _logger.warn(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       public String warning(String message, Throwable t, Object... args) {
-               if (isWarningEnabled()) {
-                       String msg = getMessage(message, baseName);
-                       msg = formatMessage(msg, args);
-                       _logger.warn(msg, t);
-                       return msg;
-               }
-               return message;
-       }
-
-       static class Log4jConfigUtils {
-
-               Properties props;
-
-               public Log4jConfigUtils(Properties props) {
-                       this.props = props;
-               }
-
-               public void configure() {
-                       // make openjpa use log4j
-                       System.setProperty("openjpa.Log", "log4j");
-
-                       Properties properties = null;
-
-                       String config = 
props.getProperty("log4j.configuration");
-                       String[] search = { config, "logging.properties", 
"logging.conf" };
-
-                       FileUtils base = SystemInstance.get().getBase();
-                       File confDir = new File(base.getDirectory(), "conf");
-                       File baseDir = base.getDirectory();
-                       File userDir = new File("foo").getParentFile();
-
-                       File[] paths = { confDir, baseDir, userDir };
-
-                       for (int i = 0; i < search.length && properties == 
null; i++) {
-                               String fileName = search[i];
-                               if (fileName == null) {
-                                       continue;
-                               }
-
-                               for (int j = 0; j < paths.length; j++) {
-                                       File path = paths[j];
-
-                                       File configFile = new File(path, 
fileName);
-
-                                       if (configFile.exists()) {
-
-                                               InputStream in = null;
-                                               try {
-                                                       in = new 
FileInputStream(configFile);
-                                                       in = new 
BufferedInputStream(in);
-                                                       properties = new 
Properties();
-                                                       properties.load(in);
-                                               } catch (IOException e) {
-                                                       org.apache.log4j.Logger 
logger = doFallbackConfiguration();
-                                                       logger.error("Unable to 
read logging config file "
-                                                                       + 
configFile.getAbsolutePath(), e);
-                                               } finally {
-                                                       try {
-                                                               in.close();
-                                                       } catch (IOException e) 
{
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-
-                       if (properties == null) {
-                               String configData = null;
-                               try {
-                                       ResourceFinder finder = new 
ResourceFinder("");
-                                       configData = 
finder.findString("default.logging.conf");
-                                       properties = new Properties();
-                                       properties.load(new 
ByteArrayInputStream(configData
-                                                       .getBytes()));
-                               } catch (IOException e) {
-                                       org.apache.log4j.Logger logger = 
doFallbackConfiguration();
-                                       logger.error("Unable to read default 
logging config file.",
-                                                       e);
-                                       return;
-                               }
-
-                               if (confDir.exists()) {
-                                       OutputStream out = null;
-                                       File configFile = new File(confDir, 
"logging.properties");
-                                       try {
-                                               out = new 
FileOutputStream(configFile);
-                                               
out.write(configData.getBytes());
-                                       } catch (IOException e) {
-                                               org.apache.log4j.Logger logger 
= doFallbackConfiguration();
-                                               logger.warn(
-                                                               "Unable write 
default logging config file to "
-                                                                               
+ configFile.getAbsolutePath(), e);
-                                       } finally {
-                                               try {
-                                                       out.close();
-                                               } catch (IOException e) {
-                                               }
-                                       }
-                               }
-                       }
-
-                       List missing = new ArrayList();
-
-                       for (Iterator iterator = 
properties.entrySet().iterator(); iterator
-                                       .hasNext();) {
-                               Map.Entry entry = (Map.Entry) iterator.next();
-                               String key = (String) entry.getKey();
-                               String value = (String) entry.getValue();
-
-                               if (key.endsWith(".File")) {
-
-                                       boolean found = false;
-                                       for (int i = 0; i < paths.length && 
!found; i++) {
-                                               File path = paths[i];
-                                               File logfile = new File(path, 
value);
-                                               if 
(logfile.getParentFile().exists()) {
-                                                       
properties.setProperty(key, logfile
-                                                                       
.getAbsolutePath());
-                                                       found = true;
-                                               }
-                                       }
-
-                                       if (!found) {
-                                               File logfile = new 
File(paths[0], value);
-                                               missing.add(logfile);
-                                       }
-                               }
-                       }
-
-                       if (missing.size() > 0) {
-                               org.apache.log4j.Logger logger = 
doFallbackConfiguration();
-
-                               logger
-                                               .warn("Unable use logging 
config as there are "
-                                                               + missing.size()
-                                                               + " file 
references containing directories which have not been created.  See the list 
below.");
-                               for (int i = 0; i < missing.size(); i++) {
-                                       File file = (File) missing.get(i);
-                                       logger.warn("[" + i + "] " + 
file.getAbsolutePath());
-                               }
-                       } else {
-                               PropertyConfigurator.configure(properties);
-                       }
-
-               }
-
-               private org.apache.log4j.Logger doFallbackConfiguration() {
-                       set("org.apache.activemq", Level.INFO);
-                       set("openjpa", Level.WARN);
-                       set("Transaction", Level.WARN);
-                       set("OpenEJB.startup", Level.INFO);
-                       set("OpenEJB.startup.config", Level.WARN);
-                       set("OpenEJB", Level.WARN);
-
-                       org.apache.log4j.Logger logger = org.apache.log4j.Logger
-                                       .getLogger("OpenEJB");
-
-                       SimpleLayout simpleLayout = new SimpleLayout();
-                       ConsoleAppender newAppender = new 
ConsoleAppender(simpleLayout);
-                       logger.addAppender(newAppender);
-                       return logger;
-
-               }
-
-               private void set(String category, Level level) {
-                       
org.apache.log4j.Logger.getLogger(category).setLevel(level);
-                       // Enumeration allAppenders =
-                       // 
org.apache.log4j.Logger.getLogger(category).getAllAppenders();
-                       // while (allAppenders.hasMoreElements()) {
-                       // Object object = allAppenders.nextElement();
-                       // System.out.println(category +" = " + object);
-                       // }
+    private static final String OPENEJB = "org.apache.openejb";
+    /**
+     * Computes the parent of a resource name. E.g. if we pass in a key of
+     * a.b.c, it returns the value a.b
+     */
+    private static final Computable<String, String> heirarchyResolver = new 
Computable<String, String>() {
+        public String compute(String key) throws InterruptedException {
+            int index = key.lastIndexOf(".");
+            String parent = key.substring(0, index);
+            if (parent.contains(OPENEJB))
+                return parent;
+            return null;
+        }
+    };
+    /**
+     * Simply returns the ResourceBundle for a given baseName
+     */
+    private static final Computable<String, ResourceBundle> bundleResolver = 
new Computable<String, ResourceBundle>() {
+        public ResourceBundle compute(String baseName)
+                throws InterruptedException {
+            try {
+                return ResourceBundle.getBundle(baseName + SUFFIX);
+            } catch (MissingResourceException e) {
+                return null;
+            }
+        }
+    };
+    /**
+     * Builds a Logger object and returns it
+     */
+    private static final Computable<String[], Logger> loggerResolver = new 
Computable<String[], Logger>() {
+        public Logger compute(String[] args) throws InterruptedException {
+
+            Logger logger = new Logger();
+            logger._logger = org.apache.log4j.Logger.getLogger(args[0]);
+            logger.baseName = args[1];
+            return logger;
+
+        }
+    };
+    /**
+     * Creates a MessageFormat object for a message and returns it
+     */
+    private static final Computable<String, MessageFormat> 
messageFormatResolver = new Computable<String, MessageFormat>() {
+        public MessageFormat compute(String message)
+                throws InterruptedException {
+
+            return new MessageFormat(message);
+
+        }
+    };
+    /**
+     * Cache of parent-child relationships between resource names
+     */
+    private static final Computable<String, String> heirarchyCache = new 
Memoizer<String, String>(
+            heirarchyResolver);
+    /**
+     * Cache of ResourceBundles
+     */
+    private static final Computable<String, ResourceBundle> bundleCache = new 
Memoizer<String, ResourceBundle>(
+            bundleResolver);
+    /**
+     * Cache of Loggers
+     */
+    private static final Computable<String[], Logger> loggerCache = new 
Memoizer<String[], Logger>(
+            loggerResolver);
+    /**
+     * Cache of MessageFormats
+     */
+    private static final Computable<String, MessageFormat> messageFormatCache 
= new Memoizer<String, MessageFormat>(
+            messageFormatResolver);
+
+    /**
+     * Given a key and a baseName, this method computes a message for a key. if
+     * the key is not found in this ResourceBundle for this baseName, then it
+     * recursively looks up its parent to find the message for a key. If no
+     * message is found for a key, the key is returned as is and is logged by
+     * the logger.
+     */
+    private String getMessage(String key, String baseName) {
+        try {
+
+            ResourceBundle bundle = bundleCache.compute(baseName);
+            if (bundle != null) {
+                String message = null;
+                try {
+                    message = bundle.getString(key);
+                    return message;
+                } catch (MissingResourceException e) {
+                    String parentName = heirarchyCache.compute(baseName);
+                    if (parentName == null)
+                        return key;
+                    else
+                        return getMessage(key, parentName);
+                }
+
+            } else {
+                String parentName = heirarchyCache.compute(baseName);
+                if (parentName == null)
+                    return key;
+                else
+                    return getMessage(key, parentName);
+
+            }
+        } catch (InterruptedException e) {
+            // ignore
+        }
+        return key;
+    }
+
+    /**
+     * @deprecated Use [EMAIL PROTECTED] #init()} instead
+     */
+    public static void initialize(Properties props) {
+        Log4jConfigUtils log4j = new Logger.Log4jConfigUtils(props);
+
+        log4j.configure();
+    }
+
+    /**
+     * Initialise using [EMAIL PROTECTED] SystemInstance} as the source of 
properties
+     */
+    public static void init() {
+        initialize(SystemInstance.get().getProperties());
+    }
+
+    /**
+     * Finds a Logger from the cache and returns it. If not found in cache 
then builds a Logger and returns it.
+     *
+     * @param name     - The name of the logger
+     * @param baseName - The baseName for the ResourceBundle
+     * @return Logger
+     */
+    public static Logger getInstance(String name, String baseName) {
+        try {
+            Logger logger = loggerCache
+                    .compute(new String[]{name, baseName});
+            return logger;
+        } catch (InterruptedException e) {
+            /*
+                * Don't return null here. Just create a new Logger and set it 
up.
+                * It will not be stored in the cache, but a later lookup for 
the
+                * same Logger would probably end up in the cache
+                */
+            Logger logger = new Logger();
+            logger._logger = org.apache.log4j.Logger.getLogger(name);
+            logger.baseName = baseName;
+            return logger;
+        }
+
+    }
+
+    /**
+     * Formats a given message
+     *
+     * @param message
+     * @param args
+     * @return the formatted message
+     */
+    private String formatMessage(String message, Object... args) {
+        try {
+            MessageFormat mf = messageFormatCache.compute(message);
+            String msg = mf.format(args);
+            return msg;
+        } catch (InterruptedException e) {
+            return "Error in formatting message " + message;
+        }
+
+    }
+
+    private Logger() {
+    }
+
+    public boolean isDebugEnabled() {
+        return _logger.isDebugEnabled();
+    }
+
+    public boolean isErrorEnabled() {
+        return _logger.isEnabledFor(Level.ERROR);
+    }
+
+    public boolean isFatalEnabled() {
+        return _logger.isEnabledFor(Level.FATAL);
+    }
+
+    public boolean isInfoEnabled() {
+        return _logger.isInfoEnabled();
+    }
+
+    public boolean isWarningEnabled() {
+        return _logger.isEnabledFor(Level.WARN);
+    }
+
+    /**
+     * If this level is enabled, then it finds a message for the given key  
and logs it
+     *
+     * @param message - This could be a plain message or a key in 
Messages.properties
+     * @return the formatted i18n message
+     */
+    public String debug(String message) {
+
+        if (isDebugEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.debug(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String debug(String message, Object... args) {
+
+        if (isDebugEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.debug(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String debug(String message, Throwable t) {
+
+        if (isDebugEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.debug(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String debug(String message, Throwable t, Object... args) {
+
+        if (isDebugEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.debug(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String error(String message) {
+
+        if (isErrorEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.error(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String error(String message, Object... args) {
+
+        if (isErrorEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.error(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String error(String message, Throwable t) {
+
+        if (isErrorEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.error(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String error(String message, Throwable t, Object... args) {
+
+        if (isErrorEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.error(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String fatal(String message) {
+        if (isFatalEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.fatal(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String fatal(String message, Object... args) {
+        if (isFatalEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.fatal(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String fatal(String message, Throwable t) {
+        if (isFatalEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.fatal(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String fatal(String message, Throwable t, Object... args) {
+        if (isFatalEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.fatal(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String info(String message) {
+        if (isInfoEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.info(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String info(String message, Object... args) {
+        if (isInfoEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.info(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String info(String message, Throwable t) {
+        if (isInfoEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.info(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String info(String message, Throwable t, Object... args) {
+        if (isInfoEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.info(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String warning(String message) {
+        if (isWarningEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.warn(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String warning(String message, Object... args) {
+        if (isWarningEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.warn(msg);
+            return msg;
+        }
+        return message;
+    }
+
+    public String warning(String message, Throwable t) {
+        if (isWarningEnabled()) {
+            String msg = getMessage(message, baseName);
+            _logger.warn(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    public String warning(String message, Throwable t, Object... args) {
+        if (isWarningEnabled()) {
+            String msg = getMessage(message, baseName);
+            msg = formatMessage(msg, args);
+            _logger.warn(msg, t);
+            return msg;
+        }
+        return message;
+    }
+
+    static class Log4jConfigUtils {
+
+        Properties props;
+
+        public Log4jConfigUtils(Properties props) {
+            this.props = props;
+        }
+
+        public void configure() {
+            // make openjpa use log4j
+            System.setProperty("openjpa.Log", "log4j");
+
+            Properties properties = null;
+
+            String config = props.getProperty("log4j.configuration");
+            String[] search = {config, "logging.properties", "logging.conf"};
+
+            FileUtils base = SystemInstance.get().getBase();
+            File confDir = new File(base.getDirectory(), "conf");
+            File baseDir = base.getDirectory();
+            File userDir = new File("foo").getParentFile();
+
+            File[] paths = {confDir, baseDir, userDir};
+
+            for (int i = 0; i < search.length && properties == null; i++) {
+                String fileName = search[i];
+                if (fileName == null) {
+                    continue;
+                }
+
+                for (int j = 0; j < paths.length; j++) {
+                    File path = paths[j];
+
+                    File configFile = new File(path, fileName);
+
+                    if (configFile.exists()) {
+
+                        InputStream in = null;
+                        try {
+                            in = new FileInputStream(configFile);
+                            in = new BufferedInputStream(in);
+                            properties = new Properties();
+                            properties.load(in);
+                        } catch (IOException e) {
+                            org.apache.log4j.Logger logger = 
doFallbackConfiguration();
+                            logger.error("Unable to read logging config file "
+                                    + configFile.getAbsolutePath(), e);
+                        } finally {
+                            try {
+                                in.close();
+                            } catch (IOException e) {
+                            }
+                        }
+                    }
+                }
+            }
+
+            if (properties == null) {
+                String configData = null;
+                try {
+                    ResourceFinder finder = new ResourceFinder("");
+                    configData = finder.findString("default.logging.conf");
+                    properties = new Properties();
+                    properties.load(new ByteArrayInputStream(configData
+                            .getBytes()));
+                } catch (IOException e) {
+                    org.apache.log4j.Logger logger = doFallbackConfiguration();
+                    logger.error("Unable to read default logging config file.",
+                            e);
+                    return;
+                }
+
+                if (confDir.exists()) {
+                    OutputStream out = null;
+                    File configFile = new File(confDir, "logging.properties");
+                    try {
+                        out = new FileOutputStream(configFile);
+                        out.write(configData.getBytes());
+                    } catch (IOException e) {
+                        org.apache.log4j.Logger logger = 
doFallbackConfiguration();
+                        logger.warn(
+                                "Unable write default logging config file to "
+                                        + configFile.getAbsolutePath(), e);
+                    } finally {
+                        try {
+                            out.close();
+                        } catch (IOException e) {
+                        }
+                    }
+                }
+            }
+
+            List missing = new ArrayList();
+
+            for (Iterator iterator = properties.entrySet().iterator(); iterator
+                    .hasNext();) {
+                Map.Entry entry = (Map.Entry) iterator.next();
+                String key = (String) entry.getKey();
+                String value = (String) entry.getValue();
+
+                if (key.endsWith(".File")) {
+
+                    boolean found = false;
+                    for (int i = 0; i < paths.length && !found; i++) {
+                        File path = paths[i];
+                        File logfile = new File(path, value);
+                        if (logfile.getParentFile().exists()) {
+                            properties.setProperty(key, logfile
+                                    .getAbsolutePath());
+                            found = true;
+                        }
+                    }
+
+                    if (!found) {
+                        File logfile = new File(paths[0], value);
+                        missing.add(logfile);
+                    }
+                }
+            }
+
+            if (missing.size() > 0) {
+                org.apache.log4j.Logger logger = doFallbackConfiguration();
+
+                logger
+                        .warn("Unable use logging config as there are "
+                                + missing.size()
+                                + " file references containing directories 
which have not been created.  See the list below.");
+                for (int i = 0; i < missing.size(); i++) {
+                    File file = (File) missing.get(i);
+                    logger.warn("[" + i + "] " + file.getAbsolutePath());
+                }
+            } else {
+                PropertyConfigurator.configure(properties);
+            }
+
+        }
+
+        private org.apache.log4j.Logger doFallbackConfiguration() {
+            set("org.apache.activemq", Level.INFO);
+            set("openjpa", Level.WARN);
+            set("Transaction", Level.WARN);
+            set("OpenEJB.startup", Level.INFO);
+            set("OpenEJB.startup.config", Level.WARN);
+            set("OpenEJB", Level.WARN);
+
+            org.apache.log4j.Logger logger = org.apache.log4j.Logger
+                    .getLogger("OpenEJB");
+
+            SimpleLayout simpleLayout = new SimpleLayout();
+            ConsoleAppender newAppender = new ConsoleAppender(simpleLayout);
+            logger.addAppender(newAppender);
+            return logger;
+
+        }
+
+        private void set(String category, Level level) {
+            org.apache.log4j.Logger.getLogger(category).setLevel(level);
+            // Enumeration allAppenders =
+            // org.apache.log4j.Logger.getLogger(category).getAllAppenders();
+            // while (allAppenders.hasMoreElements()) {
+            // Object object = allAppenders.nextElement();
+            // System.out.println(category +" = " + object);
+            // }
                }
 
        }


Reply via email to