remm        01/10/04 12:28:42

  Modified:    catalina/src/share/org/apache/catalina/loader Tag:
                        tomcat_40_branch StandardLoader.java
                        WebappClassLoader.java
  Log:
  - Merge a variety of fixes and small feature additions which have been made
    and debugged in the HEAD branch, including:
    - Removal of Jasper loader (merged with the shared loader).
    - Fixes a lot of spec complaince issue regarding the commit state of the
      response when using forwards, sendError or sendRedirect.
    - Fixes cache consistency issues for static resource serving.
    - Adds content caching for static resources (that's linked to the bugfix
      mentioned just above).
    - Merge enhanced error reporting and error page dispatching (which will be
      able to display error pages for most errors returned from the pipeline -
      like the 401 and 403 returned by the authenticator).
    - Merge the fixes for all the other more recent bugfixes that have been
      fixed in the HEAD branch.
    - Passes all tester and Watchdog tests.
    - Merge a variety of small enhancements to the build scripts which have been
      made in the HEAD branch.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.28.2.1  +6 -4      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/Attic/StandardLoader.java
  
  Index: StandardLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/Attic/StandardLoader.java,v
  retrieving revision 1.28
  retrieving revision 1.28.2.1
  diff -u -r1.28 -r1.28.2.1
  --- StandardLoader.java       2001/07/22 20:25:10     1.28
  +++ StandardLoader.java       2001/10/04 19:28:42     1.28.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/Attic/StandardLoader.java,v
 1.28 2001/07/22 20:25:10 pier Exp $
  - * $Revision: 1.28 $
  - * $Date: 2001/07/22 20:25:10 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/Attic/StandardLoader.java,v
 1.28.2.1 2001/10/04 19:28:42 remm Exp $
  + * $Revision: 1.28.2.1 $
  + * $Date: 2001/10/04 19:28:42 $
    *
    * ====================================================================
    *
  @@ -116,7 +116,9 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.28 $ $Date: 2001/07/22 20:25:10 $
  + * @deprecated StandardLoader is slower and less robust than WebappLoader for
  + *             loading web applications. Use WebappLoader instead.
  + * @version $Revision: 1.28.2.1 $ $Date: 2001/10/04 19:28:42 $
    */
   
   public final class StandardLoader
  
  
  
  1.15.2.4  +54 -8     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
  
  Index: WebappClassLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
  retrieving revision 1.15.2.3
  retrieving revision 1.15.2.4
  diff -u -r1.15.2.3 -r1.15.2.4
  --- WebappClassLoader.java    2001/09/25 21:57:56     1.15.2.3
  +++ WebappClassLoader.java    2001/10/04 19:28:42     1.15.2.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.3 2001/09/25 21:57:56 remm Exp $
  - * $Revision: 1.15.2.3 $
  - * $Date: 2001/09/25 21:57:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.4 2001/10/04 19:28:42 remm Exp $
  + * $Revision: 1.15.2.4 $
  + * $Date: 2001/10/04 19:28:42 $
    *
    * ====================================================================
    *
  @@ -88,6 +88,7 @@
   import java.util.Enumeration;
   import java.util.HashMap;
   import java.util.Iterator;
  +import java.util.Vector;
   import java.util.jar.JarFile;
   import java.util.jar.JarEntry;
   import java.util.jar.JarInputStream;
  @@ -123,7 +124,7 @@
    *
    * @author Remy Maucherat
    * @author Craig R. McClanahan
  - * @version $Revision: 1.15.2.3 $ $Date: 2001/09/25 21:57:56 $
  + * @version $Revision: 1.15.2.4 $ $Date: 2001/10/04 19:28:42 $
    */
   public class WebappClassLoader
       extends URLClassLoader
  @@ -552,7 +553,7 @@
   
               long lastModified =
                   ((ResourceAttributes) resources.getAttributes(jar))
  -                .getLastModified().getTime();
  +                .getLastModified();
   
               String[] result = new String[paths.length + 1];
               for (i = 0; i < paths.length; i++) {
  @@ -700,7 +701,7 @@
               try {
                   long lastModified =
                       ((ResourceAttributes) resources.getAttributes(paths[i]))
  -                    .getLastModified().getTime();
  +                    .getLastModified();
                   if (lastModified != lastModifiedDates[i]) {
                       log("  Resource '" + paths[i]
                           + "' was modified; Date is now: "
  @@ -941,8 +942,53 @@
   
           if (debug >= 3)
               log("    findResources(" + name + ")");
  -        return (super.findResources(name));
   
  +        Vector result = new Vector();
  +
  +        int jarFilesLength = jarFiles.length;
  +        int repositoriesLength = repositories.length;
  +
  +        int i;
  +
  +        // Looking at the repositories
  +        for (i = 0; i < repositoriesLength; i++) {
  +            try {
  +                String fullPath = repositories[i] + name;
  +                resources.lookup(fullPath);
  +                // Note : Not getting an exception here means the resource was
  +                // found
  +                try {
  +                    result.addElement(new File(files[i], name).toURL());
  +                } catch (MalformedURLException e) {
  +                    // Ignore
  +                }
  +            } catch (NamingException e) {
  +            }
  +        }
  +
  +        // Looking at the JAR files
  +        for (i = 0; i < jarFilesLength; i++) {
  +            JarEntry jarEntry = jarFiles[i].getJarEntry(name);
  +            if (jarEntry != null) {
  +                try {
  +                    String jarFakeUrl = jarRealFiles[i].toURL().toString();
  +                    jarFakeUrl = "jar:" + jarFakeUrl + "!/" + name;
  +                    result.addElement(new URL(jarFakeUrl));
  +                } catch (MalformedURLException e) {
  +                    // Ignore
  +                }
  +            }
  +        }
  +
  +        // Adding the results of a call to the superclass
  +        Enumeration otherResourcePaths = super.findResources(name);
  +
  +        while (otherResourcePaths.hasMoreElements()) {
  +            result.addElement(otherResourcePaths.nextElement());
  +        }
  +
  +        return result.elements();
  +
       }
   
   
  @@ -1553,7 +1599,7 @@
                   ResourceAttributes attributes =
                       (ResourceAttributes) resources.getAttributes(fullPath);
                   contentLength = (int) attributes.getContentLength();
  -                entry.lastModified = attributes.getLastModified().getTime();
  +                entry.lastModified = attributes.getLastModified();
                   try {
                       binaryStream = resource.streamContent();
                   } catch (IOException e) {
  
  
  


Reply via email to