[jboss-cvs] JBossAS SVN: r63577 - branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 20 03:29:47 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-06-20 03:29:47 -0400 (Wed, 20 Jun 2007)
New Revision: 63577
Modified:
branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5.java
branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5MBean.java
Log:
ASPATCH-234, preload the tomcat classes using commons logging during create
Modified: branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5.java
===================================================================
--- branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5.java 2007-06-19 23:31:00 UTC (rev 63576)
+++ branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5.java 2007-06-20 07:29:47 UTC (rev 63577)
@@ -22,6 +22,7 @@
package org.jboss.web.tomcat.tc5;
import java.io.File;
+import java.lang.reflect.Field;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
@@ -165,9 +166,62 @@
/** The service used to flush authentication cache on session invalidation. */
private JaasSecurityManagerServiceMBean secMgrService;
- /** */
+ /** The package prefixes of classes to exclude from class loading */
private String[] filteredPackages;
-
+
+ /** The class names of web container classes using commons logging that
+ * need to be preloaded to ensure the logging classes are configured in the
+ * context of the web container class loader.
+ */
+ private String[] loggingClasses = {
+ "org.apache.catalina.authenticator.AuthenticatorBase",
+ "org.apache.catalina.authenticator.BasicAuthenticator",
+ "org.apache.catalina.authenticator.DigestAuthenticator",
+ "org.apache.catalina.authenticator.FormAuthenticator",
+ "org.apache.catalina.connector.Connector",
+ "org.apache.catalina.connector.CoyoteAdapter",
+ "org.apache.catalina.connector.MapperListener",
+ "org.apache.catalina.core.ApplicationDispatcher",
+ "org.apache.catalina.core.AprLifecycleListener",
+ "org.apache.catalina.core.ContainerBase",
+ "org.apache.catalina.core.NamingContextListener",
+ "org.apache.catalina.core.StandardContext",
+ "org.apache.catalina.core.StandardHostValve",
+ "org.apache.catalina.core.StandardEngine",
+ "org.apache.catalina.core.StandardPipeline",
+ "org.apache.catalina.core.StandardService",
+ "org.apache.catalina.core.StandardServer",
+ "org.apache.catalina.deploy.SecurityCollection",
+ "org.apache.catalina.mbeans.MBeanUtils",
+ "org.apache.catalina.mbeans.GlobalResourcesLifecycleListener",
+ "org.apache.catalina.mbeans.ServerLifecycleListener",
+ "org.apache.catalina.realm.RealmBase",
+ "org.apache.catalina.session.ManagerBase",
+ "org.apache.catalina.session.PersistentManagerBase",
+ "org.apache.catalina.valves.ExtendedAccessLogValve",
+ "org.apache.catalina.valves.ValveBase",
+ "org.apache.tomcat.util.digester.Digester",
+ "org.apache.tomcat.util.digester.GenericParser",
+ "org.apache.tomcat.util.digester.XercesParser",
+ "org.apache.tomcat.util.http.ServerCookie",
+ "org.apache.tomcat.util.net.AprEndpoint",
+ "org.apache.tomcat.util.net.PoolTcpEndpoint",
+ "org.apache.tomcat.util.threads.ThreadPool",
+ "org.apache.jasper.compiler.Compiler",
+ "org.apache.jasper.EmbeddedServletOptions",
+ "org.apache.jasper.JspCompilationContext",
+ "org.apache.jasper.compiler.JspConfig",
+ "org.apache.jasper.compiler.JspReader",
+ "org.apache.jasper.compiler.JspRuntimeContext",
+ "org.apache.jasper.compiler.SmapUtil",
+ "org.apache.jasper.compiler.SmapUtil$SDEInstaller",
+ "org.apache.jasper.compiler.TldLocationsCache",
+ "org.apache.jasper.runtime.PageContextImpl",
+ "org.apache.jasper.servlet.JspServlet",
+ "org.apache.jasper.servlet.JspServletWrapper",
+ "org.apache.jasper.xmlparser.UTF8Reader",
+ };
+
/** Hold a proxy reference to myself, used when registering to MainDeployer */
private SubDeployerExt thisProxy;
@@ -407,6 +461,16 @@
this.filteredPackages = pkgs;
}
+ public String[] getLoggingClasses()
+ {
+ return loggingClasses;
+ }
+
+ public void setLoggingClasses(String[] loggingClasses)
+ {
+ this.loggingClasses = loggingClasses;
+ }
+
public void startService()
throws Exception
{
@@ -525,6 +589,9 @@
server.addNotificationListener(ServerImplMBean.OBJECT_NAME, this, null, null);
}
+
+ // L
+ loadLoggingClasses();
}
@@ -662,7 +729,37 @@
deployer.init(config);
return deployer;
}
-
+
+ protected void loadLoggingClasses()
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ int count = loggingClasses != null ? loggingClasses.length : 0;
+ for(int n = 0; n < count; n ++)
+ {
+ String name = loggingClasses[n];
+ try
+ {
+ Class c = loader.loadClass(name);
+ try
+ {
+ Field flog = c.getDeclaredField("log");
+ flog.setAccessible(true);
+ flog.get(null);
+ }
+ catch(NoSuchFieldException e)
+ {
+ Field flog = c.getDeclaredField("logger");
+ flog.setAccessible(true);
+ flog.get(null);
+ }
+ }
+ catch(Throwable e)
+ {
+ log.debug("Failed to load loggingClass: "+name, e);
+ }
+ }
+ }
+
/**
* Start all the connectors
*
Modified: branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5MBean.java
===================================================================
--- branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5MBean.java 2007-06-19 23:31:00 UTC (rev 63576)
+++ branches/JBoss_4_0_5_GA_CP_ASPATCH-234/tomcat/src/main/org/jboss/web/tomcat/tc5/Tomcat5MBean.java 2007-06-20 07:29:47 UTC (rev 63577)
@@ -213,4 +213,16 @@
* @param pkgs
*/
public void setFilteredPackages(String[] pkgs);
+
+ /**
+ *
+ * @return
+ */
+ public String[] getLoggingClasses();
+
+ /**
+ *
+ * @param loggingClasses
+ */
+ public void setLoggingClasses(String[] loggingClasses);
}
More information about the jboss-cvs-commits
mailing list