You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bi...@apache.org on 2002/08/21 06:08:43 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/config LoaderInterceptor11.java

billbarker    2002/08/20 21:08:43

  Modified:    src/share/org/apache/tomcat/modules/config
                        LoaderInterceptor11.java
  Log:
  Session reloading support on Context reload.
  
  Revision  Changes    Path
  1.25      +23 -5     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.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- LoaderInterceptor11.java	11 Jan 2002 07:01:24 -0000	1.24
  +++ LoaderInterceptor11.java	21 Aug 2002 04:08:43 -0000	1.25
  @@ -96,6 +96,7 @@
       Vector additionalJars=new Vector();
       String additionalJarsS=null;
       String jarSeparator=":";
  +    static final String clAttribute = "org.apache.tomcat.classloader";
       
       public LoaderInterceptor11() {
       }
  @@ -230,13 +231,30 @@
   
       }
   
  +    /** setup the ClassLoader for this context.
  +     *  If this is a re-loaded context, do nothing.
  +     */
       public void contextInit( Context ctx )
   	throws TomcatException
       {
   	// jsp will add it's own stuff
  -	prepareClassLoader( ctx );
  +	if(ctx.getAttribute(clAttribute) == null) {
  +	    prepareClassLoader( ctx );
  +	}
       }
  -    
  +
  +    public void copyContext(Request req, Context oldC, Context newC)
  +	throws TomcatException {
  +	if(debug > 0)
  +	    log( "Reload event " + newC.getPath() );
  +	// construct a new loader
  +	ClassLoader oldLoader=oldC.getClassLoader();
  +
  +	// will be used by reloader or other modules to try to
  +	// migrate the data. 
  +	newC.getContainer().setNote( "oldLoader", oldLoader);
  +    }
  +
       /** Construct another class loader, when the context is reloaded.
        */
       public void reload( Request req, Context context) throws TomcatException {
  @@ -259,7 +277,7 @@
           }
   
   	context.setClassLoader( loader );
  -	context.setAttribute( "org.apache.tomcat.classloader", loader);
  +	context.setAttribute( clAttribute, loader);
       }
   
       /** Initialize the class loader.
  @@ -309,7 +327,7 @@
   	context.setClassLoader( loader );
   
   	// support for jasper and other applications
  -	context.setAttribute( "org.apache.tomcat.classloader",loader);
  +	context.setAttribute(clAttribute, loader);
       }
       
       /** Override this method to provide an alternate loader
  @@ -405,7 +423,7 @@
   	    if (k.equals("org.apache.tomcat.jsp_classpath")) {
   		return getClassPath(ctx);
   	    }
  -	    if(k.equals("org.apache.tomcat.classloader")) {
  +	    if(k.equals(clAttribute)) {
   		return ctx.getClassLoader();
   	    }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>