Sorry about that! It looks like not scanning the classloader classes is not quite right. Seems like we've identified why we're loading so many classes though. I was thinking that maybe we could swap the JarScanner in the StandardContext for one that either filters out our jar files, or uses xbean-finder. What do you think?
Jon On Fri, Apr 1, 2011 at 9:00 PM, David Blevins <[email protected]>wrote: > We're definitely heading in the right direction. We might need to tweak > our JSF support a bit. See tck@ > > Side note, check out the BackportUtil class. Probably can merge that > TomcatHelper right in. > > > -David > > On Mar 31, 2011, at 4:19 PM, [email protected] wrote: > > > Author: jgallimore > > Date: Thu Mar 31 23:19:14 2011 > > New Revision: 1087503 > > > > URL: http://svn.apache.org/viewvc?rev=1087503&view=rev > > Log: > > stop tomcat scanning the whole classpath looking for web.xml fragments > > > > Modified: > > > > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java > > > > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java > > > > Modified: > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java?rev=1087503&r1=1087502&r2=1087503&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java > (original) > > +++ > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java > Thu Mar 31 23:19:14 2011 > > @@ -28,6 +28,7 @@ import org.apache.catalina.core.Standard > > import org.apache.catalina.core.StandardHost; > > import org.apache.catalina.core.StandardServer; > > import org.apache.openejb.tomcat.loader.TomcatHelper; > > +import org.apache.tomcat.JarScanner; > > > > import java.beans.PropertyChangeEvent; > > import java.beans.PropertyChangeListener; > > @@ -113,6 +114,10 @@ public class GlobalListenerSupport imple > > contextListener.afterStop(standardContext); > > } else if (DESTROY_EVENT.equals(type) || > Lifecycle.AFTER_DESTROY_EVENT.equals(type)) { > > contextListener.destroy(standardContext); > > + } else if (Lifecycle.CONFIGURE_START_EVENT.equals(type)) { > > + if (TomcatHelper.isTomcat7()) { > > + TomcatHelper.configureJarScanner(standardContext); > > + } > > } > > } else if (source instanceof StandardHost) { > > StandardHost standardHost = (StandardHost) source; > > > > Modified: > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java > > URL: > http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java?rev=1087503&r1=1087502&r2=1087503&view=diff > > > ============================================================================== > > --- > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java > (original) > > +++ > openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java > Thu Mar 31 23:19:14 2011 > > @@ -130,4 +130,14 @@ public class TomcatHelper { > > public static boolean isTomcat7() { > > return > System.getProperty("tomcat.version").startsWith("7."); > > } > > + > > + public static void configureJarScanner(StandardContext > standardContext) { > > + try { > > + Object jarScanner = > StandardContext.class.getMethod("getJarScanner").invoke(standardContext); > > + jarScanner.getClass().getMethod("setScanClassPath", > Boolean.TYPE).invoke(jarScanner, false); > > + } catch (Exception e) { > > + // ignore > > + e.printStackTrace(); > > + } > > + } > > } > > > > > > > >
