costin      01/03/07 15:51:08

  Modified:    src/share/org/apache/tomcat/modules/config
                        LoaderInterceptor11.java
  Log:
  Simplified reloading - the DependManager is set by ReloadInterceptor,
  if the user wants to enable reloading.
  
  LoaderInterceptor will use it if available, but will not force reloading
  ( as before ) if the user doesn't have ReloadInterceptor.
  
  Also, on reload we just reset the DependManager ( and create a new
  class loader, as normal )
  
  Revision  Changes    Path
  1.8       +27 -18    
jakarta-tomcat/src/share/org/apache/tomcat/modules/config/LoaderInterceptor11.java
  
  Index: LoaderInterceptor11.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/config/LoaderInterceptor11.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- LoaderInterceptor11.java  2001/02/27 16:56:24     1.7
  +++ LoaderInterceptor11.java  2001/03/07 23:51:08     1.8
  @@ -151,11 +151,9 @@
   
        DependManager dm=(DependManager)context.getContainer().
            getNote("DependManager");
  -     //context.getDependManager();
  +
        if( dm==null ) {
  -         dm=new DependManager();
  -         context.getContainer().setNote("DependManager", dm);
  -         //setDependManager( dm );
  +         // No depend manager - that means no ReloadInterceptor.
        }
   
        ClassLoader parent=null;
  @@ -166,22 +164,30 @@
        else
            parent=this.getClass().getClassLoader();
   
  -     // Construct a class loader. Use URLClassLoader if Java2,
  -     // replacement ( SimpleClassLoader ) if not
  -     //      SimpleClassLoader loader=new SimpleClassLoader(classP, parent);
        ClassLoader loader=jdk11Compat.newClassLoaderInstance( classP, parent);
  -     DependClassLoader dcl=new DependClassLoader( dm, loader);
        if( debug > 0 )
            log("Loader " + loader.getClass().getName() + " " + parent);
  -     context.setClassLoader( dcl );
  +
  +     if( dm != null ) {
  +         // If depend manager is present, create a wrapper loader
  +         // that will add dependencies for reloading ( using depentManager)
  +         loader=new DependClassLoader( dm, loader);
  +     }
  +     // If another reloading scheme is implemented, you'll
  +     // have to plug it in here.
  +     
  +     context.setClassLoader( loader );
  +
        // support for jasper and other applications
  -     context.setAttribute( "org.apache.tomcat.classloader",
  -                           context.getClassLoader());
  +     context.setAttribute( "org.apache.tomcat.classloader",loader);
       }
   
       public void reload( Request req, Context context) throws TomcatException {
        log( "Reload event " + context.getPath() );
        
  +     DependManager dm=(DependManager)context.getContainer().
  +         getNote("DependManager");
  +
        ContextManager cm = context.getContextManager();
        URL urls[]=context.getClassPath();
        if( debug>5 ) {
  @@ -190,9 +196,11 @@
                log("    " + urls[i].toString() );
        }
   
  -     DependManager dm=new DependManager();
  -     context.getContainer().setNote("DependManager", dm);
  -     //setDependManager( dm );
  +     if( dm!=null ) {
  +         // we are using a util.depend for reloading
  +         dm.reset();
  +     }
  +     // construct a new loader
        ClassLoader oldLoader=context.getClassLoader();
        int oldLoaderNote=cm.getNoteId( ContextManager.CONTAINER_NOTE,
                                        "oldLoader");
  @@ -210,10 +218,11 @@
        // replacement ( SimpleClassLoader ) if not
        //      SimpleClassLoader loader=new SimpleClassLoader(urls, parent);
        ClassLoader loader=jdk11Compat.newClassLoaderInstance( urls, parent);
  -     DependClassLoader dcl=new DependClassLoader( dm, loader);
  -     context.setClassLoader( dcl );
  -     context.setAttribute( "org.apache.tomcat.classloader",
  -                           ctx.getClassLoader());
  +
  +     if( dm!=null ) 
  +         loader=new DependClassLoader( dm, loader);
  +     context.setClassLoader( loader );
  +     context.setAttribute( "org.apache.tomcat.classloader", loader);
       }
   
       // --------------------
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to