antoine     2003/10/13 12:53:01

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java
               src/testcases/org/apache/tools/ant/taskdefs/optional/net
                        FTPTest.java
               src/etc/testcases/taskdefs/optional/net ftp.xml
  Log:
  Merge from ANT_16_BRANCH
  
  Revision  Changes    Path
  1.53      +28 -24    
ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  
  Index: FTP.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- FTP.java  12 Sep 2003 20:32:29 -0000      1.52
  +++ FTP.java  13 Oct 2003 19:53:01 -0000      1.53
  @@ -1357,30 +1357,34 @@
                   }
                   bw = new BufferedWriter(new FileWriter(listing));
               }
  -
  -            for (int i = 0; i < dsfiles.length; i++) {
  -                switch (action) {
  -                    case SEND_FILES:
  -                        sendFile(ftp, dir, dsfiles[i]);
  -                        break;
  -                    case GET_FILES:
  -                        getFile(ftp, dir, dsfiles[i]);
  -                        break;
  -                    case DEL_FILES:
  -                        delFile(ftp, dsfiles[i]);
  -                        break;
  -                    case LIST_FILES:
  -                        listFile(ftp, bw, dsfiles[i]);
  -                        break;
  -                    case CHMOD:
  -                        doSiteCommand(ftp, "chmod " + chmod + " " + 
resolveFile(dsfiles[i]));
  -                        transferred++;
  -                        break;
  -                    case RM_DIR:
  -                        rmDir(ftp, dsfiles[i]);
  -                        break;
  -                    default:
  -                        throw new BuildException("unknown ftp action " + 
action);
  +            if (action == RM_DIR) {
  +                // to remove directories, start by the end of the list
  +                // the trunk does not let itself be removed before the leaves
  +                for (int i = dsfiles.length - 1; i >= 0; i--) {
  +                    rmDir(ftp, dsfiles[i]);
  +                }
  +            }   else {
  +                for (int i = 0; i < dsfiles.length; i++) {
  +                    switch (action) {
  +                        case SEND_FILES:
  +                            sendFile(ftp, dir, dsfiles[i]);
  +                            break;
  +                        case GET_FILES:
  +                            getFile(ftp, dir, dsfiles[i]);
  +                            break;
  +                        case DEL_FILES:
  +                            delFile(ftp, dsfiles[i]);
  +                            break;
  +                        case LIST_FILES:
  +                            listFile(ftp, bw, dsfiles[i]);
  +                            break;
  +                        case CHMOD:
  +                            doSiteCommand(ftp, "chmod " + chmod + " " + 
resolveFile(dsfiles[i]));
  +                            transferred++;
  +                            break;
  +                        default:
  +                            throw new BuildException("unknown ftp action " + 
action);
  +                    }
                   }
               }
           } finally {
  
  
  
  1.9       +6 -1      
ant/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java
  
  Index: FTPTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FTPTest.java      22 Aug 2003 10:48:08 -0000      1.8
  +++ FTPTest.java      13 Oct 2003 19:53:01 -0000      1.9
  @@ -570,7 +570,12 @@
                        new String[] {"alpha/beta", "alpha/beta/gamma", 
"delta"});
   
       }
  -
  +    /**
  +     *  this test is inspired by a user reporting that deletions of 
directories with the ftp task do not work
  +     */
  +    public void testFTPDelete() {
  +        getProject().executeTarget("ftp-delete");
  +    }
       private void compareFiles(DirectoryScanner ds, String[] expectedFiles,
                                 String[] expectedDirectories) {
           String includedFiles[] = ds.getIncludedFiles();
  
  
  
  1.6       +23 -0     ant/src/etc/testcases/taskdefs/optional/net/ftp.xml
  
  Index: ftp.xml
  ===================================================================
  RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/optional/net/ftp.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ftp.xml   14 Aug 2003 17:23:22 -0000      1.5
  +++ ftp.xml   13 Oct 2003 19:53:01 -0000      1.6
  @@ -77,4 +77,27 @@
           <symlink link="${tmp.dir}/alpha/beta/gamma/gamma.xml"
               resource="${tmp.dir}/alpha/beta/beta.xml"/>
       </target>
  +    <target name="ftp-delete">
  +        <!-- this target can produce an error if the rmdir does not work -->
  +        <!-- there can be problems with the rmdir action if the directories 
are not removed in a proper order -->
  +        <!-- which means beginning by the leaves of the tree, going back to 
the trunk -->
  +        <ftp action="del"
  +            server="${ftp.host}"
  +            userid="${ftp.user}"
  +            password="${ftp.password}"
  +            remotedir="${tmp.dir}">
  +            <fileset dir="${tmp.get.dir}">
  +                <include name="**"/>
  +            </fileset>
  +        </ftp>
  +        <ftp action="rmdir"
  +            server="${ftp.host}"
  +            userid="${ftp.user}"
  +            password="${ftp.password}"
  +            remotedir="${tmp.dir}">
  +            <fileset dir="${tmp.get.dir}">
  +                <include name="**"/>
  +            </fileset>
  +        </ftp>
  +    </target>
   </project>
  
  
  

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

Reply via email to