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 2005/02/01 14:12:31 UTC

cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup LocalStrings.properties ExpandWar.java

remm        2005/02/01 05:12:31

  Modified:    catalina/src/share/org/apache/catalina/startup
                        LocalStrings.properties ExpandWar.java
  Log:
  - Use NIO for the raw copying operation, as it is faster (a little under 30%), which decreases a little the impact of antResourceLocking.
  
  Revision  Changes    Path
  1.12      +1 -0      jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- LocalStrings.properties	3 Jan 2005 16:10:19 -0000	1.11
  +++ LocalStrings.properties	1 Feb 2005 13:12:31 -0000	1.12
  @@ -37,6 +37,7 @@
   engineConfig.cce=Lifecycle event data object {0} is not an Engine
   engineConfig.start=EngineConfig: Processing START
   engineConfig.stop=EngineConfig: Processing STOP
  +expandWar.copy=Error copying {0} to {1}
   hostConfig.appBase=Application base directory {0} does not exist
   hostConfig.canonicalizing=Error delete redeploy resources from context [{0}]
   hostConfig.cce=Lifecycle event data object {0} is not a Host
  
  
  
  1.10      +17 -29    jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ExpandWar.java
  
  Index: ExpandWar.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ExpandWar.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ExpandWar.java	27 Jul 2004 17:53:14 -0000	1.9
  +++ ExpandWar.java	1 Feb 2005 13:12:31 -0000	1.10
  @@ -25,12 +25,15 @@
   import java.io.IOException;
   import java.net.JarURLConnection;
   import java.net.URL;
  +import java.nio.channels.FileChannel;
   import java.util.Enumeration;
   import java.util.jar.JarEntry;
   import java.util.jar.JarFile;
   
   import org.apache.catalina.Host;
   import org.apache.catalina.util.StringManager;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * Expand out a WAR in a Host's appBase.
  @@ -43,6 +46,7 @@
   
   public class ExpandWar {
   
  +    private static Log log = LogFactory.getLog(ExpandWar.class);
   
       /**
        * The string resources for this package.
  @@ -189,17 +193,6 @@
        * @param dest File object representing the destination
        */
       public static boolean copy(File src, File dest) {
  -        return copyInternal(src, dest, new byte[4096]);
  -    }
  -
  -    
  -    /**
  -     * Copy the specified file or directory to the destination.
  -     *
  -     * @param src File object representing the source
  -     * @param dest File object representing the destination
  -     */
  -    public static boolean copyInternal(File src, File dest, byte[] buf) {
           
           boolean result = true;
           
  @@ -218,33 +211,28 @@
               File fileSrc = new File(src, files[i]);
               File fileDest = new File(dest, files[i]);
               if (fileSrc.isDirectory()) {
  -                result = copyInternal(fileSrc, fileDest, buf);
  +                result = copy(fileSrc, fileDest);
               } else {
  -                FileInputStream is = null;
  -                FileOutputStream os = null;
  +                FileChannel ic = null;
  +                FileChannel oc = null;
                   try {
  -                    is = new FileInputStream(fileSrc);
  -                    os = new FileOutputStream(fileDest);
  -                    int len = 0;
  -                    while (true) {
  -                        len = is.read(buf);
  -                        if (len == -1)
  -                            break;
  -                        os.write(buf, 0, len);
  -                    }
  +                    ic = (new FileInputStream(fileSrc)).getChannel();
  +                    oc = (new FileOutputStream(fileDest)).getChannel();
  +                    ic.transferTo(0, ic.size(), oc);
                   } catch (IOException e) {
  -                    e.printStackTrace();
  +                    log.error(sm.getString
  +                            ("expandWar.copy", fileSrc, fileDest), e);
                       result = false;
                   } finally {
  -                    if (is != null) {
  +                    if (ic != null) {
                           try {
  -                            is.close();
  +                            ic.close();
                           } catch (IOException e) {
                           }
                       }
  -                    if (os != null) {
  +                    if (oc != null) {
                           try {
  -                            os.close();
  +                            oc.close();
                           } catch (IOException e) {
                           }
                       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org