You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/02/21 07:03:44 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader StandardLoader.java

remm        01/02/20 22:03:44

  Modified:    catalina/src/share/org/apache/catalina/loader
                        StandardLoader.java
  Log:
  - Don't copy libraries to the work directory if they exist in the filesystem. The
    test used here is that ServletContext.getRealPath(path) returns a non null
    value. Modify Jasper's classpath generation accordingly.
  
  Revision  Changes    Path
  1.20      +52 -30    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java
  
  Index: StandardLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- StandardLoader.java	2001/01/28 20:06:17	1.19
  +++ StandardLoader.java	2001/02/21 06:03:43	1.20
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v 1.19 2001/01/28 20:06:17 remm Exp $
  - * $Revision: 1.19 $
  - * $Date: 2001/01/28 20:06:17 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v 1.20 2001/02/21 06:03:43 remm Exp $
  + * $Revision: 1.20 $
  + * $Date: 2001/02/21 06:03:43 $
    *
    * ====================================================================
    *
  @@ -112,7 +112,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.19 $ $Date: 2001/01/28 20:06:17 $
  + * @version $Revision: 1.20 $ $Date: 2001/02/21 06:03:43 $
    */
   
   public final class StandardLoader
  @@ -828,20 +828,31 @@
               return;
           }
   
  -        // Loading the work directory
  -        File workDir = 
  -            (File) servletContext.getAttribute(Globals.WORK_DIR_ATTR);
  +        String absoluteClassesPath = servletContext.getRealPath(classesName);
   
  -        if (workDir != null) {
  +        if (absoluteClassesPath != null) {
   
               if (!(classpath.equals("")))
                   classpath = File.pathSeparator + classpath;
  -            File classesDir = new File(workDir, classesName);
  -            classesDir.mkdirs();
  -            classpath = classesDir.getAbsolutePath() + classpath;
  +            classpath = absoluteClassesPath + classpath;
   
  -            copyDir(resources, classesDir);
  +        } else {
   
  +            // Loading the work directory
  +            File workDir = 
  +                (File) servletContext.getAttribute(Globals.WORK_DIR_ATTR);
  +
  +            if (workDir != null) {
  +                
  +                if (!(classpath.equals("")))
  +                    classpath = File.pathSeparator + classpath;
  +                File classesDir = new File(workDir, classesName);
  +                classesDir.mkdirs();
  +                classpath = classesDir.getAbsolutePath() + classpath;
  +                
  +                copyDir(resources, classesDir);
  +                
  +            }
           }
   
           servletContext.setAttribute(Globals.CLASS_PATH_ATTR, classpath);
  @@ -959,11 +970,13 @@
           if (workDir != null) {
   
               DirContext resources = container.getResources();
  -            String libName = "/WEB-INF/lib";
   
  +            String libName = "/WEB-INF/lib";
  +            
               File destDir = new File(workDir, libName);
  -            destDir.mkdirs();
  -
  +            if (servletContext.getRealPath(libName) != null)
  +                destDir.mkdirs();
  +            
               DirContext libDir = null;
               // Looking up directory /WEB-INF/lib in the context
               try {
  @@ -986,22 +999,31 @@
                           String filename = ncPair.getName();
                           if (!filename.endsWith(".jar"))
                               continue;
  -                        try {
  -                            URL fileURL = servletContext.getResource
  -                                (libName + "/" + filename);
  -                            log(" Adding '" + "file: " +
  -                                libName + "/" + filename + "'");
  -                            // Copying the file to the work dir
  -                            File dest = new File(destDir, filename);
  -                            if (copy(fileURL.openStream(), 
  -                                     new FileOutputStream(dest))) {
  -                                if (n > 0)
  -                                    classpath.append(File.pathSeparator);
  -                                n++;
  -                                classpath.append(dest.getAbsolutePath());
  +                        String realPath = servletContext.getRealPath
  +                            (libName + "/" + filename);
  +                        if (realPath != null) {
  +                            if (n > 0)
  +                                classpath.append(File.pathSeparator);
  +                            n++;
  +                            classpath.append(realPath);
  +                        } else {
  +                            try {
  +                                URL fileURL = servletContext.getResource
  +                                    (libName + "/" + filename);
  +                                log(" Adding '" + "file: " +
  +                                    libName + "/" + filename + "'");
  +                                // Copying the file to the work dir
  +                                File dest = new File(destDir, filename);
  +                                if (copy(fileURL.openStream(), 
  +                                         new FileOutputStream(dest))) {
  +                                    if (n > 0)
  +                                        classpath.append(File.pathSeparator);
  +                                    n++;
  +                                    classpath.append(dest.getAbsolutePath());
  +                                }
  +                            } catch (MalformedURLException e) {
  +                            } catch (IOException e) {
                               }
  -                        } catch (MalformedURLException e) {
  -                        } catch (IOException e) {
                           }
                           
                       }