[jboss-cvs] JBossAS SVN: r71035 - branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 19 21:12:59 EDT 2008


Author: stan.silvert at jboss.com
Date: 2008-03-19 21:12:59 -0400 (Wed, 19 Mar 2008)
New Revision: 71035

Modified:
   branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/JBossJSFConfigureListener.java
   branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/Log4JConversionFilter.java
Log:
JBPAPP-682


Modified: branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/JBossJSFConfigureListener.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/JBossJSFConfigureListener.java	2008-03-20 01:12:25 UTC (rev 71034)
+++ branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/JBossJSFConfigureListener.java	2008-03-20 01:12:59 UTC (rev 71035)
@@ -1,6 +1,6 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * Copyright 2007, JBoss Inc., and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
@@ -23,10 +23,11 @@
 package org.jboss.web.jsf.integration.config;
 
 import com.sun.faces.config.ConfigureListener;
-import com.sun.faces.util.Util;
+import com.sun.faces.util.FacesLogger;
 import java.util.logging.Filter;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
+import org.apache.log4j.Level;
 import org.jboss.logging.Logger;
 
 /**
@@ -38,12 +39,13 @@
 public class JBossJSFConfigureListener extends ConfigureListener 
 {
     private static final String WAR_BUNDLES_JSF_IMPL = "org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL";
-
+   
     private static Logger LOG = Logger.getLogger(JBossJSFConfigureListener.class);
     
+    public static final String BASE_JSF_LOGGER = "javax.enterprise.resource.webcontainer.jsf";
+    
     public static final String SHOULD_LOG_CONFIG_MESSAGES = "com.sun.faces.displayConfiguration";
     
-    
     private ServletContext servletContext;
     
     public static boolean warBundlesJSFImpl(ServletContext servletContext)
@@ -65,10 +67,27 @@
         }
 
         checkForMyFaces();
-
+        initializeJspRuntime();
         super.contextInitialized(event);
     }
     
+    // This method accounts for a peculiar problem with Jasper that pops up from time
+    // to time.  In some cases, if the JspRuntimeContext is not loaded then the JspFactory
+    // will not be initialized for JSF.  This method assures that it will always be
+    // be loaded before JSF is initialized.
+    private static void initializeJspRuntime() 
+    {
+
+        try 
+        {
+            Class.forName("org.apache.jasper.compiler.JspRuntimeContext");
+        }  
+        catch (ClassNotFoundException cnfe) 
+        {
+            // do nothing 
+        }
+    }
+
     private void checkForMyFaces()
     {
         try
@@ -83,28 +102,87 @@
             // ignore - this is a good thing
         }
     }
+
     /**
+     * For a given JSF julLogger find the logging level set to the
+     * corresponding log4jLogger.  Then set the julLogger to the
+     * same level as the log4jLogger.
+     *
+     * At this point we know that Log4J is being used.  So we can
+     * reference a real Log4J logger instead of the JBoss one.
+     */
+    private void setLevel(java.util.logging.Logger julLogger)
+    {
+        org.apache.log4j.Logger log4jLogger = 
+            org.apache.log4j.Logger.getLogger(julLogger.getName());
+
+        julLogger.setLevel(java.util.logging.Level.OFF);
+
+        if (log4jLogger.isEnabledFor(Level.FATAL))
+            julLogger.setLevel(java.util.logging.Level.SEVERE);
+
+        if (log4jLogger.isEnabledFor(Level.ERROR))
+            julLogger.setLevel(java.util.logging.Level.SEVERE);
+
+        if (log4jLogger.isEnabledFor(Level.WARN))
+            julLogger.setLevel(java.util.logging.Level.WARNING);
+
+        if (log4jLogger.isEnabledFor(Level.INFO))
+            julLogger.setLevel(java.util.logging.Level.INFO);
+ 
+        if (log4jLogger.isEnabledFor(Level.DEBUG)) 
+            julLogger.setLevel(java.util.logging.Level.FINE);
+
+        if (log4jLogger.isEnabledFor(Level.DEBUG))
+            julLogger.setLevel(java.util.logging.Level.FINEST);
+
+        if (log4jLogger.isEnabledFor(Level.ALL))
+            julLogger.setLevel(java.util.logging.Level.ALL);
+    }
+
+    /**
      * If Log4J is being used, set a filter that converts JSF RI java.util.logger
      * messages to Log4J messages.
      */
     private void setLog4J() 
     {
         Filter conversionFilter = new Log4JConversionFilter(logConfigMessages());
+
+        java.util.logging.Logger julLogger = java.util.logging.Logger.getLogger(BASE_JSF_LOGGER);
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.APPLICATION.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.CONFIG.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.CONTEXT.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.LIFECYCLE.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
         
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.APPLICATION_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.CONFIG_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.CONTEXT_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.LIFECYCLE_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.RENDERKIT_LOGGER)
-                                .setFilter(conversionFilter);
-        java.util.logging.Logger.getLogger(Util.FACES_LOGGER + Util.TAGLIB_LOGGER)
-                                .setFilter(conversionFilter);
+        julLogger = FacesLogger.MANAGEDBEAN.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.RENDERKIT.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+
+        julLogger = FacesLogger.TAGLIB.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
+        
+        julLogger = FacesLogger.TIMING.getLogger();
+        setLevel(julLogger);
+        julLogger.setFilter(conversionFilter);
     }
     
     // should we log the configuration messages?

Modified: branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/Log4JConversionFilter.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/Log4JConversionFilter.java	2008-03-20 01:12:25 UTC (rev 71034)
+++ branches/JBPAPP_4_2_0_GA_CP/tomcat/src/main/org/jboss/web/jsf/integration/config/Log4JConversionFilter.java	2008-03-20 01:12:59 UTC (rev 71035)
@@ -1,6 +1,6 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * Copyright 2007, JBoss Inc., and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
@@ -92,23 +92,37 @@
         Object message = formatter.formatMessage(record);
         Throwable throwable = record.getThrown();
         
-        if (loggedLevel == Level.INFO.intValue()) 
+        if (loggedLevel == Level.SEVERE.intValue())
         {
-            logger.info(message, throwable);
-            return;
+           logger.error(message, throwable);
+           return;
         }
-        
-        if (loggedLevel == Level.WARNING.intValue()) 
+
+        if (loggedLevel == Level.WARNING.intValue())
         {
-            logger.warn(message, throwable);
-            return;
+           logger.warn(message, throwable);
+           return;
         }
+
+        if ((loggedLevel == Level.INFO.intValue()) ||
+            (loggedLevel == Level.CONFIG.intValue()))
+        {
+           logger.info(message, throwable);
+           return;
+        }
         
-        if (loggedLevel == Level.SEVERE.intValue()) 
+        if (loggedLevel == Level.FINE.intValue())
         {
-            logger.fatal(message, throwable);
-            return;
+           logger.debug(message, throwable);
+           return;
         }
+
+        if ((loggedLevel == Level.FINER.intValue()) ||
+            (loggedLevel == Level.FINEST.intValue()))
+        {
+           logger.trace(message, throwable);
+           return;
+        }
     
         logger.info(message, throwable);
     }
@@ -118,24 +132,38 @@
         int loggedLevel = record.getLevel().intValue();
         Object message = formatter.formatMessage(record);
         
-        if (loggedLevel == Level.INFO.intValue()) 
+        if (loggedLevel == Level.SEVERE.intValue())
         {
-            logger.info(message);
-            return;
+           logger.error(message);
+           return;
         }
-        
-        if (loggedLevel == Level.WARNING.intValue()) 
+
+        if (loggedLevel == Level.WARNING.intValue())
         {
-            logger.warn(message);
-            return;
+           logger.warn(message);
+           return;
         }
+
+        if ((loggedLevel == Level.INFO.intValue()) ||
+            (loggedLevel == Level.CONFIG.intValue()))
+        {
+           logger.info(message);
+           return;
+        }
         
-        if (loggedLevel == Level.SEVERE.intValue()) 
+        if (loggedLevel == Level.FINE.intValue())
         {
-            logger.fatal(message);
-            return;
+           logger.debug(message);
+           return;
         }
-    
+
+        if ((loggedLevel == Level.FINER.intValue()) ||
+            (loggedLevel == Level.FINEST.intValue()))
+        {
+           logger.trace(message);
+           return;
+        }
+
         logger.info(message);
     }
     




More information about the jboss-cvs-commits mailing list