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();
> > +             }
> > +     }
> > }
> >
> >
> >
>
>

Reply via email to