You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ma...@apache.org on 2007/08/22 10:14:49 UTC

svn commit: r568493 - in /openejb/trunk/openejb3/container/openejb-core/src/main: java/org/apache/openejb/OpenEJB.java java/org/apache/openejb/config/EjbValidator.java java/org/apache/openejb/util/Logger.java resources/logging.properties

Author: manugeorge
Date: Wed Aug 22 01:14:48 2007
New Revision: 568493

URL: http://svn.apache.org/viewvc?rev=568493&view=rev
Log:
OPENEJB-667 

Fix for the above jira. Thanks Karan

Added:
    openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbValidator.java
    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/OpenEJB.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=568493&r1=568492&r2=568493&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java Wed Aug 22 01:14:48 2007
@@ -63,7 +63,6 @@
          */
         public Instance(Properties initProps, ApplicationServer appServer) throws OpenEJBException {
 
-            Logger.initialize(initProps);
 
             Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, "org.apache.openejb.util.resources");
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbValidator.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbValidator.java?rev=568493&r1=568492&r2=568493&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbValidator.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbValidator.java Wed Aug 22 01:14:48 2007
@@ -32,7 +32,7 @@
 import org.apache.openejb.config.rules.CheckInjectionTargets;
 import org.apache.openejb.config.rules.CheckServiceRefs;
 import org.apache.openejb.util.Messages;
-import org.apache.openejb.util.Logger;
+
 import org.apache.openejb.util.OpenEjbVersion;
 
 public class EjbValidator {
@@ -271,7 +271,7 @@
         } catch (Exception e) {
 
         }
-        Logger.initialize(SystemInstance.get().getProperties());
+
 
         try {
             EjbValidator v = new EjbValidator();
@@ -336,4 +336,4 @@
         }
     }
 
-}
\ No newline at end of file
+}

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?rev=568493&r1=568492&r2=568493&view=diff
==============================================================================
--- 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 Wed Aug 22 01:14:48 2007
@@ -16,27 +16,22 @@
  */
 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.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
+import java.net.URL;
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
 import java.util.MissingResourceException;
 import java.util.Properties;
 import java.util.ResourceBundle;
@@ -122,6 +117,85 @@
     private static final Computable<String, MessageFormat> messageFormatCache = new Memoizer<String, MessageFormat>(
             messageFormatResolver);
 
+	private static final String LOGGING_PROPERTIES_FILE = "logging.properties";
+	private static final String EMBEDDED_PROPERTIES_FILE = "embedded.logging.properties";
+	static {
+		try {
+			configure();
+
+		} catch (IOException e) {
+         // The fall back here is that if log4j.configuration system property is set, then that configuration file will be used. 
+			
+		}
+	}
+
+	private static void configure() throws IOException {
+
+		System.setProperty("openjpa.Log", "log4j");
+		SystemInstance system = SystemInstance.get();
+		FileUtils base = system.getBase();
+		File confDir = base.getDirectory("conf");
+		File loggingPropertiesFile = new File(confDir, LOGGING_PROPERTIES_FILE);
+		if (confDir.exists()) {
+			if (loggingPropertiesFile.exists()) {
+				BufferedInputStream bis = new BufferedInputStream(new FileInputStream(loggingPropertiesFile));
+				Properties props = new Properties();
+				props.load(bis);
+				PropertyConfigurator.configure(props);
+				try{
+					bis.close();
+				}catch(IOException e){
+					
+				}
+			} else {
+				installLoggingPropertiesFile(loggingPropertiesFile);
+			}
+		}else{
+			configureEmbedded();
+		} 
+	}
+    private static void configureEmbedded(){
+    	URL resource = Thread.currentThread().getContextClassLoader().getResource(EMBEDDED_PROPERTIES_FILE);
+    	if(resource != null)
+    		PropertyConfigurator.configure(resource);
+    	else
+    		System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. MISSING embedded.logging.properties FILE ");
+    }
+    private static void installLoggingPropertiesFile(File loggingPropertiesFile) throws IOException {
+    	URL resource = Thread.currentThread().getContextClassLoader().getResource(LOGGING_PROPERTIES_FILE);
+        if(resource == null){
+        	System.out.println("FATAL ERROR WHILE CONFIGURING LOGGING!!!. MISSING logging.properties FILE ");
+        	return;
+        }
+    	InputStream in = resource.openStream();
+    	in = new BufferedInputStream(in);
+    	ByteArrayOutputStream bao = new ByteArrayOutputStream();
+        byte buf[] = new byte[4096];
+        int i = in.read(buf);
+        while(i != -1){
+        	bao.write(buf);
+        	i = in.read(buf);
+        }
+        byte[] byteArray = bao.toByteArray();
+        ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
+        
+        Properties props = new Properties();
+        props.load(bis);
+		BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(loggingPropertiesFile));
+		bout.write(byteArray);
+        PropertyConfigurator.configure(props);
+        try {
+			bout.close();
+		} catch (IOException e) {
+			
+		}
+        try {
+			in.close();
+		} catch (IOException e) {
+
+		}
+
+    }
     /**
      * 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
@@ -160,21 +234,6 @@
         return key;
     }
 
-    /**
-     * @deprecated Use {@link #init()} instead
-     */
-    public static void initialize(Properties props) {
-        Log4jConfigUtils log4j = new Logger.Log4jConfigUtils(props);
-
-        log4j.configure();
-    }
-
-    /**
-     * Initialise using {@link 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.
@@ -460,170 +519,4 @@
         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("embedded.logging.properties");
-                    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);
-            // }
-		}
-
-	}
 }

Added: openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties?rev=568493&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties Wed Aug 22 01:14:48 2007
@@ -0,0 +1,39 @@
+#/** 
+* Licensed to the Apache Software Foundation (ASF) under one or more 
+* contributor license agreements.  See the NOTICE file distributed with 
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+log4j.category.OpenEJB=warn,R
+log4j.category.OpenEJB.startup=debug
+log4j.category.OpenEJB.server=info
+
+log4j.category.CORBA-Adapter=debug,R
+log4j.category.Transaction=warn,TX
+log4j.category.org.apache.geronimo=error,R
+log4j.category.org.apache.activemq=error,R
+log4j.category.openjpa=error,R
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.MaxFileSize=1000KB
+log4j.appender.R.MaxBackupIndex=7
+log4j.appender.R.File=logs/openejb.log
+log4j.appender.R.layout.ConversionPattern=%d - %-5p - %m%n
+
+log4j.appender.TX=org.apache.log4j.RollingFileAppender
+log4j.appender.TX.layout=org.apache.log4j.PatternLayout
+log4j.appender.TX.MaxFileSize=1000KB
+log4j.appender.TX.MaxBackupIndex=100
+log4j.appender.TX.File=logs/transaction.log
+log4j.appender.TX.layout.ConversionPattern=%d - %-5p - %m%n