ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net FTPDirectoryScanner.java Action.java FTP.java
Date Sat, 12 Jan 2002 23:38:00 GMT
donaldp     02/01/12 15:38:00

  Modified:    proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net
                        FTP.java
  Added:       proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net
                        FTPDirectoryScanner.java Action.java
  Log:
  Made sure ftp compiled, made inner classes top-level classes, cleaned up files a little.
  
  Revision  Changes    Path
  1.12      +117 -307  jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  
  Index: FTP.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- FTP.java	1 Jan 2002 09:13:46 -0000	1.11
  +++ FTP.java	12 Jan 2002 23:38:00 -0000	1.12
  @@ -21,12 +21,10 @@
   import java.io.InputStream;
   import java.io.OutputStream;
   import java.util.ArrayList;
  -import java.util.Locale;
  +import org.apache.avalon.excalibur.io.FileUtil;
   import org.apache.myrmidon.api.TaskException;
  -import org.apache.tools.ant.DirectoryScanner;
  -import org.apache.tools.ant.FileScanner;
   import org.apache.tools.ant.Task;
  -import org.apache.tools.ant.types.EnumeratedAttribute;
  +import org.apache.tools.ant.types.FileScanner;
   import org.apache.tools.ant.types.FileSet;
   
   /**
  @@ -60,7 +58,8 @@
       protected final static int LIST_FILES = 3;
       protected final static int MK_DIR = 4;
   
  -    protected final static String[] ACTION_STRS = {
  +    protected final static String[] ACTION_STRS = new String[]
  +    {
           "sending",
           "getting",
           "deleting",
  @@ -68,32 +67,33 @@
           "making directory"
       };
   
  -    protected final static String[] COMPLETED_ACTION_STRS = {
  +    protected final static String[] COMPLETED_ACTION_STRS = new String[]
  +    {
           "sent",
           "retrieved",
           "deleted",
           "listed",
           "created directory"
       };
  -    private boolean binary = true;
  -    private boolean passive = false;
  -    private boolean verbose = false;
  -    private boolean newerOnly = false;
  -    private int action = SEND_FILES;
  -    private ArrayList filesets = new ArrayList();
  -    private ArrayList dirCache = new ArrayList();
  -    private int transferred = 0;
  -    private String remoteFileSep = "/";
  -    private int port = 21;
  -    private boolean skipFailedTransfers = false;
  -    private int skipped = 0;
  -    private boolean ignoreNoncriticalErrors = false;
  -    private File listing;
  -    private String password;
  -
  -    private String remotedir;
  -    private String server;
  -    private String userid;
  +
  +    private boolean m_binary = true;
  +    private boolean m_passive;
  +    private boolean m_verbose;
  +    private boolean m_newerOnly;
  +    private int m_action = SEND_FILES;
  +    private ArrayList m_filesets = new ArrayList();
  +    private ArrayList m_dirCache = new ArrayList();
  +    private int m_transferred;
  +    private String m_remoteFileSep = "/";
  +    private int m_port = 21;
  +    private boolean m_skipFailedTransfers;
  +    private int m_skipped;
  +    private boolean m_ignoreNoncriticalErrors;
  +    private File m_listing;
  +    private String m_password;
  +    private String m_remotedir;
  +    private String m_server;
  +    private String m_userid;
   
       /**
        * Sets the FTP action to be taken. Currently accepts "put", "get", "del",
  @@ -105,7 +105,7 @@
       public void setAction( Action action )
           throws TaskException
       {
  -        this.action = action.getAction();
  +        m_action = action.getAction();
       }
   
       /**
  @@ -116,7 +116,7 @@
        */
       public void setBinary( boolean binary )
       {
  -        this.binary = binary;
  +        m_binary = binary;
       }
   
       /**
  @@ -127,7 +127,7 @@
        */
       public void setDepends( boolean depends )
       {
  -        this.newerOnly = depends;
  +        m_newerOnly = depends;
       }
   
       /**
  @@ -138,7 +138,7 @@
        */
       public void setIgnoreNoncriticalErrors( boolean ignoreNoncriticalErrors )
       {
  -        this.ignoreNoncriticalErrors = ignoreNoncriticalErrors;
  +        m_ignoreNoncriticalErrors = ignoreNoncriticalErrors;
       }
   
       /**
  @@ -151,7 +151,7 @@
       public void setListing( File listing )
           throws TaskException
       {
  -        this.listing = listing;
  +        m_listing = listing;
       }
   
       /**
  @@ -162,7 +162,7 @@
        */
       public void setNewer( boolean newer )
       {
  -        this.newerOnly = newer;
  +        m_newerOnly = newer;
       }
   
       /**
  @@ -174,7 +174,7 @@
        */
       public void setPassive( boolean passive )
       {
  -        this.passive = passive;
  +        m_passive = passive;
       }
   
       /**
  @@ -184,7 +184,7 @@
        */
       public void setPassword( String password )
       {
  -        this.password = password;
  +        m_password = password;
       }
   
       /**
  @@ -194,7 +194,7 @@
        */
       public void setPort( int port )
       {
  -        this.port = port;
  +        m_port = port;
       }
   
       /**
  @@ -206,7 +206,7 @@
        */
       public void setRemotedir( String dir )
       {
  -        this.remotedir = dir;
  +        m_remotedir = dir;
       }
   
       /**
  @@ -219,7 +219,7 @@
        */
       public void setSeparator( String separator )
       {
  -        remoteFileSep = separator;
  +        m_remoteFileSep = separator;
       }
   
       /**
  @@ -229,7 +229,7 @@
        */
       public void setServer( String server )
       {
  -        this.server = server;
  +        m_server = server;
       }
   
       /**
  @@ -239,7 +239,7 @@
        */
       public void setSkipFailedTransfers( boolean skipFailedTransfers )
       {
  -        this.skipFailedTransfers = skipFailedTransfers;
  +        m_skipFailedTransfers = skipFailedTransfers;
       }
   
       /**
  @@ -249,7 +249,7 @@
        */
       public void setUserid( String userid )
       {
  -        this.userid = userid;
  +        m_userid = userid;
       }
   
       /**
  @@ -259,7 +259,7 @@
        */
       public void setVerbose( boolean verbose )
       {
  -        this.verbose = verbose;
  +        m_verbose = verbose;
       }
   
       /**
  @@ -269,7 +269,7 @@
        */
       public void addFileset( FileSet set )
       {
  -        filesets.add( set );
  +        m_filesets.add( set );
       }
   
       /**
  @@ -280,17 +280,17 @@
       public void execute()
           throws TaskException
       {
  -        checkConfiguration();
  +        validate();
   
           FTPClient ftp = null;
   
           try
           {
  -            getLogger().debug( "Opening FTP connection to " + server );
  +            getLogger().debug( "Opening FTP connection to " + m_server );
   
               ftp = new FTPClient();
   
  -            ftp.connect( server, port );
  +            ftp.connect( m_server, m_port );
               if( !FTPReply.isPositiveCompletion( ftp.getReplyCode() ) )
               {
                   throw new TaskException( "FTP connection failed: " + ftp.getReplyString()
);
  @@ -299,14 +299,14 @@
               getLogger().debug( "connected" );
               getLogger().debug( "logging in to FTP server" );
   
  -            if( !ftp.login( userid, password ) )
  +            if( !ftp.login( m_userid, m_password ) )
               {
                   throw new TaskException( "Could not login to FTP server" );
               }
   
               getLogger().debug( "login succeeded" );
   
  -            if( binary )
  +            if( m_binary )
               {
                   ftp.setFileType( com.oroinc.net.ftp.FTP.IMAGE_FILE_TYPE );
                   if( !FTPReply.isPositiveCompletion( ftp.getReplyCode() ) )
  @@ -317,7 +317,7 @@
                   }
               }
   
  -            if( passive )
  +            if( m_passive )
               {
                   getLogger().debug( "entering passive mode" );
                   ftp.enterLocalPassiveMode();
  @@ -332,18 +332,18 @@
               // If the action is MK_DIR, then the specified remote directory is the
               // directory to create.
   
  -            if( action == MK_DIR )
  +            if( m_action == MK_DIR )
               {
   
  -                makeRemoteDir( ftp, remotedir );
  +                makeRemoteDir( ftp, m_remotedir );
   
               }
               else
               {
  -                if( remotedir != null )
  +                if( m_remotedir != null )
                   {
                       getLogger().debug( "changing the remote directory" );
  -                    ftp.changeWorkingDirectory( remotedir );
  +                    ftp.changeWorkingDirectory( m_remotedir );
                       if( !FTPReply.isPositiveCompletion( ftp.getReplyCode() ) )
                       {
                           throw new TaskException(
  @@ -351,7 +351,7 @@
                               ftp.getReplyString() );
                       }
                   }
  -                getLogger().info( ACTION_STRS[ action ] + " files" );
  +                getLogger().info( ACTION_STRS[ m_action ] + " files" );
                   transferFiles( ftp );
               }
   
  @@ -397,31 +397,33 @@
           OutputStream outstream = null;
           try
           {
  -            File file = resolveFile( new File( dir, filename ).getPath() );
  +            final File file = FileUtil.resolveFile( resolveFile( dir ), filename );
   
  -            if( newerOnly && isUpToDate( ftp, file, resolveFile( filename ) ) )
  +            if( m_newerOnly && isUpToDate( ftp, file, remoteResolveFile( filename
) ) )
  +            {
                   return;
  +            }
   
  -            if( verbose )
  +            if( m_verbose )
               {
                   getLogger().info( "transferring " + filename + " to " + file.getAbsolutePath()
);
               }
   
  -            File pdir = new File( file.getParent() );// stay 1.1 compatible
  -            if( !pdir.exists() )
  +            final File parent = file.getParentFile();
  +            if( !parent.exists() )
               {
  -                pdir.mkdirs();
  +                parent.mkdirs();
               }
               outstream = new BufferedOutputStream( new FileOutputStream( file ) );
  -            ftp.retrieveFile( resolveFile( filename ), outstream );
  +            ftp.retrieveFile( remoteResolveFile( filename ), outstream );
   
               if( !FTPReply.isPositiveCompletion( ftp.getReplyCode() ) )
               {
                   String s = "could not get file: " + ftp.getReplyString();
  -                if( skipFailedTransfers == true )
  +                if( m_skipFailedTransfers == true )
                   {
                       getLogger().warn( s );
  -                    skipped++;
  +                    m_skipped++;
                   }
                   else
                   {
  @@ -431,8 +433,8 @@
               }
               else
               {
  -                getLogger().debug( "File " + file.getAbsolutePath() + " copied from " +
server );
  -                transferred++;
  +                getLogger().debug( "File " + file.getAbsolutePath() + " copied from " +
m_server );
  +                m_transferred++;
               }
           }
           finally
  @@ -454,13 +456,6 @@
       /**
        * Checks to see if the remote file is current as compared with the local
        * file. Returns true if the remote file is up to date.
  -     *
  -     * @param ftp Description of Parameter
  -     * @param localFile Description of Parameter
  -     * @param remoteFile Description of Parameter
  -     * @return The UpToDate value
  -     * @exception IOException Description of Exception
  -     * @exception TaskException Description of Exception
        */
       protected boolean isUpToDate( FTPClient ftp, File localFile, String remoteFile )
           throws IOException, TaskException
  @@ -476,7 +471,7 @@
               // If we are sending files, then assume out of date.
               // If we are getting files, then throw an error
   
  -            if( action == SEND_FILES )
  +            if( m_action == SEND_FILES )
               {
                   getLogger().debug( "Could not date test remote file: " + remoteFile + "assuming
out of date." );
                   return false;
  @@ -490,7 +485,7 @@
   
           long remoteTimestamp = files[ 0 ].getTimestamp().getTime().getTime();
           long localTimestamp = localFile.lastModified();
  -        if( this.action == SEND_FILES )
  +        if( m_action == SEND_FILES )
           {
               return remoteTimestamp > localTimestamp;
           }
  @@ -505,28 +500,28 @@
        *
        * @exception TaskException Description of Exception
        */
  -    protected void checkConfiguration()
  +    private void validate()
           throws TaskException
       {
  -        if( server == null )
  +        if( m_server == null )
           {
               throw new TaskException( "server attribute must be set!" );
           }
  -        if( userid == null )
  +        if( m_userid == null )
           {
               throw new TaskException( "userid attribute must be set!" );
           }
  -        if( password == null )
  +        if( m_password == null )
           {
               throw new TaskException( "password attribute must be set!" );
           }
   
  -        if( ( action == LIST_FILES ) && ( listing == null ) )
  +        if( ( m_action == LIST_FILES ) && ( m_listing == null ) )
           {
               throw new TaskException( "listing attribute must be set for list action!" );
           }
   
  -        if( action == MK_DIR && remotedir == null )
  +        if( m_action == MK_DIR && m_remotedir == null )
           {
               throw new TaskException( "remotedir attribute must be set for mkdir action!"
);
           }
  @@ -535,11 +530,6 @@
       /**
        * Creates all parent directories specified in a complete relative pathname.
        * Attempts to create existing directories will not cause errors.
  -     *
  -     * @param ftp Description of Parameter
  -     * @param filename Description of Parameter
  -     * @exception IOException Description of Exception
  -     * @exception TaskException Description of Exception
        */
       protected void createParents( FTPClient ftp, String filename )
           throws IOException, TaskException
  @@ -557,50 +547,45 @@
           for( int i = parents.size() - 1; i >= 0; i-- )
           {
               dir = (File)parents.get( i );
  -            if( !dirCache.contains( dir ) )
  +            if( !m_dirCache.contains( dir ) )
               {
  -                getLogger().debug( "creating remote directory " + resolveFile( dir.getPath()
) );
  -                ftp.makeDirectory( resolveFile( dir.getPath() ) );
  +                getLogger().debug( "creating remote directory " + remoteResolveFile( dir.getPath()
) );
  +                ftp.makeDirectory( remoteResolveFile( dir.getPath() ) );
                   // Both codes 550 and 553 can be produced by FTP Servers
                   //  to indicate that an attempt to create a directory has
                   //  failed because the directory already exists.
                   int result = ftp.getReplyCode();
                   if( !FTPReply.isPositiveCompletion( result ) &&
                       ( result != 550 ) && ( result != 553 ) &&
  -                    !ignoreNoncriticalErrors )
  +                    !m_ignoreNoncriticalErrors )
                   {
                       throw new TaskException(
                           "could not create directory: " +
                           ftp.getReplyString() );
                   }
  -                dirCache.add( dir );
  +                m_dirCache.add( dir );
               }
           }
       }
   
       /**
        * Delete a file from the remote host.
  -     *
  -     * @param ftp Description of Parameter
  -     * @param filename Description of Parameter
  -     * @exception IOException Description of Exception
  -     * @exception TaskException Description of Exception
        */
       protected void delFile( FTPClient ftp, String filename )
           throws IOException, TaskException
       {
  -        if( verbose )
  +        if( m_verbose )
           {
               getLogger().info( "deleting " + filename );
           }
   
  -        if( !ftp.deleteFile( resolveFile( filename ) ) )
  +        if( !ftp.deleteFile( remoteResolveFile( filename ) ) )
           {
               String s = "could not delete file: " + ftp.getReplyString();
  -            if( skipFailedTransfers == true )
  +            if( m_skipFailedTransfers == true )
               {
                   getLogger().warn( s );
  -                skipped++;
  +                m_skipped++;
               }
               else
               {
  @@ -609,8 +594,8 @@
           }
           else
           {
  -            getLogger().debug( "File " + filename + " deleted from " + server );
  -            transferred++;
  +            getLogger().debug( "File " + filename + " deleted from " + m_server );
  +            m_transferred++;
           }
       }
   
  @@ -620,26 +605,20 @@
        * retrieved using the entire relative path spec - no attempt is made to
        * change directories. It is anticipated that this may eventually cause
        * problems with some FTP servers, but it simplifies the coding.
  -     *
  -     * @param ftp Description of Parameter
  -     * @param bw Description of Parameter
  -     * @param filename Description of Parameter
  -     * @exception IOException Description of Exception
  -     * @exception TaskException Description of Exception
        */
       protected void listFile( FTPClient ftp, BufferedWriter bw, String filename )
           throws IOException, TaskException
       {
  -        if( verbose )
  +        if( m_verbose )
           {
               getLogger().info( "listing " + filename );
           }
   
  -        FTPFile ftpfile = ftp.listFiles( resolveFile( filename ) )[ 0 ];
  +        FTPFile ftpfile = ftp.listFiles( remoteResolveFile( filename ) )[ 0 ];
           bw.write( ftpfile.toString() );
           bw.newLine();
   
  -        transferred++;
  +        m_transferred++;
       }
   
       /**
  @@ -653,7 +632,7 @@
       protected void makeRemoteDir( FTPClient ftp, String dir )
           throws IOException, TaskException
       {
  -        if( verbose )
  +        if( m_verbose )
           {
               getLogger().info( "creating directory: " + dir );
           }
  @@ -665,20 +644,20 @@
               //  failed because the directory already exists.
   
               int rc = ftp.getReplyCode();
  -            if( !( ignoreNoncriticalErrors && ( rc == 550 || rc == 553 || rc ==
521 ) ) )
  +            if( !( m_ignoreNoncriticalErrors && ( rc == 550 || rc == 553 || rc
== 521 ) ) )
               {
                   throw new TaskException( "could not create directory: " +
                                            ftp.getReplyString() );
               }
   
  -            if( verbose )
  +            if( m_verbose )
               {
                   getLogger().info( "directory already exists" );
               }
           }
           else
           {
  -            if( verbose )
  +            if( m_verbose )
               {
                   getLogger().info( "directory created OK" );
               }
  @@ -695,10 +674,10 @@
        * @param file Description of Parameter
        * @return Description of the Returned Value
        */
  -    protected String resolveFile( String file )
  +    protected String remoteResolveFile( final String file )
       {
           return file.replace( System.getProperty( "file.separator" ).charAt( 0 ),
  -                             remoteFileSep.charAt( 0 ) );
  +                             m_remoteFileSep.charAt( 0 ) );
       }
   
       /**
  @@ -724,10 +703,10 @@
           {
               File file = resolveFile( new File( dir, filename ).getPath() );
   
  -            if( newerOnly && isUpToDate( ftp, file, resolveFile( filename ) ) )
  +            if( m_newerOnly && isUpToDate( ftp, file, remoteResolveFile( filename
) ) )
                   return;
   
  -            if( verbose )
  +            if( m_verbose )
               {
                   getLogger().info( "transferring " + file.getAbsolutePath() );
               }
  @@ -736,15 +715,15 @@
   
               createParents( ftp, filename );
   
  -            ftp.storeFile( resolveFile( filename ), instream );
  +            ftp.storeFile( remoteResolveFile( filename ), instream );
               boolean success = FTPReply.isPositiveCompletion( ftp.getReplyCode() );
               if( !success )
               {
                   String s = "could not put file: " + ftp.getReplyString();
  -                if( skipFailedTransfers == true )
  +                if( m_skipFailedTransfers == true )
                   {
                       getLogger().warn( s );
  -                    skipped++;
  +                    m_skipped++;
                   }
                   else
                   {
  @@ -755,8 +734,8 @@
               else
               {
   
  -                getLogger().debug( "File " + file.getAbsolutePath() + " copied to " + server
);
  -                transferred++;
  +                getLogger().debug( "File " + file.getAbsolutePath() + " copied to " + m_server
);
  +                m_transferred++;
               }
           }
           finally
  @@ -790,7 +769,7 @@
       {
           FileScanner ds;
   
  -        if( action == SEND_FILES )
  +        if( m_action == SEND_FILES )
           {
               ds = fs.getDirectoryScanner();
           }
  @@ -803,13 +782,13 @@
   
           String[] dsfiles = ds.getIncludedFiles();
           String dir = null;
  -        if( ( ds.getBasedir() == null ) && ( ( action == SEND_FILES ) || ( action
== GET_FILES ) ) )
  +        if( ( ds.getBasedir() == null ) && ( ( m_action == SEND_FILES ) || ( m_action
== GET_FILES ) ) )
           {
               throw new TaskException( "the dir attribute must be set for send and get actions"
);
           }
           else
           {
  -            if( ( action == SEND_FILES ) || ( action == GET_FILES ) )
  +            if( ( m_action == SEND_FILES ) || ( m_action == GET_FILES ) )
               {
                   dir = ds.getBasedir().getAbsolutePath();
               }
  @@ -817,19 +796,19 @@
   
           // If we are doing a listing, we need the output stream created now.
           BufferedWriter bw = null;
  -        if( action == LIST_FILES )
  +        if( m_action == LIST_FILES )
           {
  -            File pd = new File( listing.getParent() );
  +            File pd = new File( m_listing.getParent() );
               if( !pd.exists() )
               {
                   pd.mkdirs();
               }
  -            bw = new BufferedWriter( new FileWriter( listing ) );
  +            bw = new BufferedWriter( new FileWriter( m_listing ) );
           }
   
           for( int i = 0; i < dsfiles.length; i++ )
           {
  -            switch( action )
  +            switch( m_action )
               {
                   case SEND_FILES:
                       {
  @@ -857,12 +836,12 @@
   
                   default:
                       {
  -                        throw new TaskException( "unknown ftp action " + action );
  +                        throw new TaskException( "unknown ftp action " + m_action );
                       }
               }
           }
   
  -        if( action == LIST_FILES )
  +        if( m_action == LIST_FILES )
           {
               bw.close();
           }
  @@ -881,19 +860,19 @@
       protected void transferFiles( FTPClient ftp )
           throws IOException, TaskException
       {
  -        transferred = 0;
  -        skipped = 0;
  +        m_transferred = 0;
  +        m_skipped = 0;
   
  -        if( filesets.size() == 0 )
  +        if( m_filesets.size() == 0 )
           {
               throw new TaskException( "at least one fileset must be specified." );
           }
           else
           {
               // get files from filesets
  -            for( int i = 0; i < filesets.size(); i++ )
  +            for( int i = 0; i < m_filesets.size(); i++ )
               {
  -                FileSet fs = (FileSet)filesets.get( i );
  +                FileSet fs = (FileSet)m_filesets.get( i );
                   if( fs != null )
                   {
                       transferFiles( ftp, fs );
  @@ -901,179 +880,10 @@
               }
           }
   
  -        getLogger().info( transferred + " files " + COMPLETED_ACTION_STRS[ action ] );
  -        if( skipped != 0 )
  -        {
  -            getLogger().info( skipped + " files were not successfully " + COMPLETED_ACTION_STRS[
action ] );
  -        }
  -    }
  -
  -    public static class Action extends EnumeratedAttribute
  -    {
  -
  -        private final static String[] validActions = {
  -            "send", "put", "recv", "get", "del", "delete", "list", "mkdir"
  -        };
  -
  -        public int getAction()
  +        getLogger().info( m_transferred + " files " + COMPLETED_ACTION_STRS[ m_action ]
);
  +        if( m_skipped != 0 )
           {
  -            String actionL = getValue().toLowerCase( Locale.US );
  -            if( actionL.equals( "send" ) ||
  -                actionL.equals( "put" ) )
  -            {
  -                return SEND_FILES;
  -            }
  -            else if( actionL.equals( "recv" ) ||
  -                actionL.equals( "get" ) )
  -            {
  -                return GET_FILES;
  -            }
  -            else if( actionL.equals( "del" ) ||
  -                actionL.equals( "delete" ) )
  -            {
  -                return DEL_FILES;
  -            }
  -            else if( actionL.equals( "list" ) )
  -            {
  -                return LIST_FILES;
  -            }
  -            else if( actionL.equals( "mkdir" ) )
  -            {
  -                return MK_DIR;
  -            }
  -            return SEND_FILES;
  -        }
  -
  -        public String[] getValues()
  -        {
  -            return validActions;
  -        }
  -    }
  -
  -    protected class FTPDirectoryScanner extends DirectoryScanner
  -    {
  -        protected FTPClient ftp = null;
  -
  -        public FTPDirectoryScanner( FTPClient ftp )
  -        {
  -            super();
  -            this.ftp = ftp;
  -        }
  -
  -        public void scan()
  -        {
  -            if( getIncludes() == null )
  -            {
  -                // No includes supplied, so set it to 'matches all'
  -                setIncludes( new String[ 1 ] );
  -                getIncludes()[ 0 ] = "**";
  -            }
  -            if( getExcludes() == null )
  -            {
  -                setExcludes( new String[ 0 ] );
  -            }
  -
  -            setFilesIncluded( new ArrayList() );
  -            setFilesNotIncluded( new ArrayList() );
  -            setFilesExcluded( new ArrayList() );
  -            setDirsIncluded( new ArrayList() );
  -            setDirsNotIncluded( new ArrayList() );
  -            setDirsExcluded( new ArrayList() );
  -
  -            try
  -            {
  -                String cwd = ftp.printWorkingDirectory();
  -                scandir( ".", "", true );// always start from the current ftp working dir
  -                ftp.changeWorkingDirectory( cwd );
  -            }
  -            catch( IOException e )
  -            {
  -                throw new TaskException( "Unable to scan FTP server: ", e );
  -            }
  -        }
  -
  -        protected void scandir( String dir, String vpath, boolean fast )
  -        {
  -            try
  -            {
  -                if( !ftp.changeWorkingDirectory( dir ) )
  -                {
  -                    return;
  -                }
  -
  -                FTPFile[] newfiles = ftp.listFiles();
  -                if( newfiles == null )
  -                {
  -                    ftp.changeToParentDirectory();
  -                    return;
  -                }
  -
  -                for( int i = 0; i < newfiles.length; i++ )
  -                {
  -                    FTPFile file = newfiles[ i ];
  -                    if( !file.getName().equals( "." ) && !file.getName().equals(
".." ) )
  -                    {
  -                        if( file.isDirectory() )
  -                        {
  -                            String name = file.getName();
  -                            if( isIncluded( name ) )
  -                            {
  -                                if( !isExcluded( name ) )
  -                                {
  -                                    getDirsIncluded().add( name );
  -                                    if( fast )
  -                                    {
  -                                        scandir( name, vpath + name + File.separator, fast
);
  -                                    }
  -                                }
  -                                else
  -                                {
  -                                    getDirsExcluded().add( name );
  -                                }
  -                            }
  -                            else
  -                            {
  -                                getDirsNotIncluded().add( name );
  -                                if( fast && couldHoldIncluded( name ) )
  -                                {
  -                                    scandir( name, vpath + name + File.separator, fast
);
  -                                }
  -                            }
  -                            if( !fast )
  -                            {
  -                                scandir( name, vpath + name + File.separator, fast );
  -                            }
  -                        }
  -                        else
  -                        {
  -                            if( file.isFile() )
  -                            {
  -                                String name = vpath + file.getName();
  -                                if( isIncluded( name ) )
  -                                {
  -                                    if( !isExcluded( name ) )
  -                                    {
  -                                        getFilesIncluded().add( name );
  -                                    }
  -                                    else
  -                                    {
  -                                        getFilesExcluded().add( name );
  -                                    }
  -                                }
  -                                else
  -                                {
  -                                    getFilesNotIncluded().add( name );
  -                                }
  -                            }
  -                        }
  -                    }
  -                }
  -                ftp.changeToParentDirectory();
  -            }
  -            catch( IOException e )
  -            {
  -                throw new TaskException( "Error while communicating with FTP server: ",
e );
  -            }
  +            getLogger().info( m_skipped + " files were not successfully " + COMPLETED_ACTION_STRS[
m_action ] );
           }
       }
   }
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPDirectoryScanner.java
  
  Index: FTPDirectoryScanner.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.tools.ant.taskdefs.optional.net;
  
  import com.oroinc.net.ftp.FTPClient;
  import com.oroinc.net.ftp.FTPFile;
  import java.io.File;
  import java.io.IOException;
  import java.util.ArrayList;
  import org.apache.myrmidon.api.TaskException;
  import org.apache.tools.ant.types.DirectoryScanner;
  
  class FTPDirectoryScanner
      extends DirectoryScanner
  {
      protected final FTPClient m_ftp;
  
      public FTPDirectoryScanner( final FTPClient ftp )
      {
          super();
          m_ftp = ftp;
      }
  
      public void scan()
          throws TaskException
      {
          if( getIncludes() == null )
          {
              // No includes supplied, so set it to 'matches all'
              setIncludes( new String[ 1 ] );
              getIncludes()[ 0 ] = "**";
          }
          if( getExcludes() == null )
          {
              setExcludes( new String[ 0 ] );
          }
  
          setFilesIncluded( new ArrayList() );
          setFilesNotIncluded( new ArrayList() );
          setFilesExcluded( new ArrayList() );
          setDirsIncluded( new ArrayList() );
          setDirsNotIncluded( new ArrayList() );
          setDirsExcluded( new ArrayList() );
  
          try
          {
              String cwd = m_ftp.printWorkingDirectory();
              scandir( ".", "", true );// always start from the current ftp working dir
              m_ftp.changeWorkingDirectory( cwd );
          }
          catch( IOException e )
          {
              throw new TaskException( "Unable to scan FTP server: ", e );
          }
      }
  
      protected void scandir( String dir, String vpath, boolean fast )
          throws TaskException
      {
          try
          {
              if( !m_ftp.changeWorkingDirectory( dir ) )
              {
                  return;
              }
  
              FTPFile[] newfiles = m_ftp.listFiles();
              if( newfiles == null )
              {
                  m_ftp.changeToParentDirectory();
                  return;
              }
  
              for( int i = 0; i < newfiles.length; i++ )
              {
                  FTPFile file = newfiles[ i ];
                  if( !file.getName().equals( "." ) && !file.getName().equals( ".."
) )
                  {
                      if( file.isDirectory() )
                      {
                          String name = file.getName();
                          if( isIncluded( name ) )
                          {
                              if( !isExcluded( name ) )
                              {
                                  getDirsIncluded().add( name );
                                  if( fast )
                                  {
                                      scandir( name, vpath + name + File.separator, fast );
                                  }
                              }
                              else
                              {
                                  getDirsExcluded().add( name );
                              }
                          }
                          else
                          {
                              getDirsNotIncluded().add( name );
                              if( fast && couldHoldIncluded( name ) )
                              {
                                  scandir( name, vpath + name + File.separator, fast );
                              }
                          }
                          if( !fast )
                          {
                              scandir( name, vpath + name + File.separator, fast );
                          }
                      }
                      else
                      {
                          if( file.isFile() )
                          {
                              String name = vpath + file.getName();
                              if( isIncluded( name ) )
                              {
                                  if( !isExcluded( name ) )
                                  {
                                      getFilesIncluded().add( name );
                                  }
                                  else
                                  {
                                      getFilesExcluded().add( name );
                                  }
                              }
                              else
                              {
                                  getFilesNotIncluded().add( name );
                              }
                          }
                      }
                  }
              }
              m_ftp.changeToParentDirectory();
          }
          catch( IOException e )
          {
              throw new TaskException( "Error while communicating with FTP server: ", e );
          }
      }
  }
  
  
  
  1.1                  jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/net/Action.java
  
  Index: Action.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.tools.ant.taskdefs.optional.net;
  
  import java.util.Locale;
  import org.apache.tools.ant.types.EnumeratedAttribute;
  
  public class Action
      extends EnumeratedAttribute
  {
      private final static String[] validActions = new String[]
      {
          "send", "put", "recv", "get", "del", "delete", "list", "mkdir"
      };
  
      public int getAction()
      {
          String actionL = getValue().toLowerCase( Locale.US );
          if( actionL.equals( "send" ) ||
              actionL.equals( "put" ) )
          {
              return FTP.SEND_FILES;
          }
          else if( actionL.equals( "recv" ) ||
              actionL.equals( "get" ) )
          {
              return FTP.GET_FILES;
          }
          else if( actionL.equals( "del" ) ||
              actionL.equals( "delete" ) )
          {
              return FTP.DEL_FILES;
          }
          else if( actionL.equals( "list" ) )
          {
              return FTP.LIST_FILES;
          }
          else if( actionL.equals( "mkdir" ) )
          {
              return FTP.MK_DIR;
          }
          return FTP.SEND_FILES;
      }
  
      public String[] getValues()
      {
          return validActions;
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message