antoine 2003/07/22 10:59:52
Modified: src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java
Log:
style
Revision Changes Path
1.37 +86 -11
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.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- FTP.java 6 Jul 2003 09:03:18 -0000 1.36
+++ FTP.java 22 Jul 2003 17:59:52 -0000 1.37
@@ -83,7 +83,7 @@
* <ul>
* <li> <strong>send</strong> - send files to a remote server. This is the
* default action.</li>
- * <li> <strong>get</strong> - retrive files from a remote server.</li>
+ * <li> <strong>get</strong> - retrieve files from a remote server.</li>
* <li> <strong>del</strong> - delete files from a remote server.</li>
* <li> <strong>list</strong> - create a file listing.</li>
* <li> <strong>chmod</strong> - change unix file permissions.</li>
@@ -114,7 +114,8 @@
protected static final int MK_DIR = 4;
protected static final int CHMOD = 5;
protected static final int RM_DIR = 6;
-
+ /** return code of ftp - not implemented in commons-net version 1.0 */
+ private static final int CODE_521 = 521;
/** Default port for FTP */
public static final int DEFAULT_FTP_PORT = 21;
@@ -172,16 +173,29 @@
};
+ /**
+ * internal class allowing to read the contents of a remote file system
+ * using the FTP protocol
+ * used in particular for ftp get operations
+ */
protected class FTPDirectoryScanner extends DirectoryScanner {
protected FTPClient ftp = null;
+ /**
+ * constructor
+ * @param ftp ftpclient object
+ */
public FTPDirectoryScanner(FTPClient ftp) {
super();
this.ftp = ftp;
}
+ /**
+ * scans the remote directory,
+ * storing internally the included files, directories, ...
+ */
public void scan() {
if (includes == null) {
// No includes supplied, so set it to 'matches all'
@@ -210,6 +224,13 @@
}
+ /**
+ * scans a particular directory
+ * @param dir directory to scan
+ * @param vpath relative path to the base directory of the remote
fileset
+ * always ended with a File.separator
+ * @param fast seems to be always true in practice
+ */
protected void scandir(String dir, String vpath, boolean fast) {
try {
if (!ftp.changeWorkingDirectory(dir)) {
@@ -701,6 +722,8 @@
* @param ftp the FTP client instance to use to execute FTP actions on
* the remote server.
* @param filename the name of the file whose parents should be created.
+ * @throws IOException under non documented circumstances
+ * @throws BuildException if it is impossible to cd to a remote directory
*
*/
protected void createParents(FTPClient ftp, String filename)
@@ -761,7 +784,14 @@
/**
* 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.
+ * file. Returns true if the target file is up to date.
+ * @param ftp ftpclient
+ * @param localFile local file
+ * @param remoteFile remote file
+ * @return true if the target file is up to date
+ * @throws IOException in unknown circumstances
+ * @throws BuildException if the date of the remote files cannot be
found and the action is
+ * GET_FILES
*/
protected boolean isUpToDate(FTPClient ftp, File localFile,
String remoteFile)
@@ -797,17 +827,23 @@
}
- /** Sends a site command to the ftp server */
+ /**
+ * Sends a site command to the ftp server
+ * @param ftp ftp client
+ * @param theCMD command to execute
+ * @throws IOException in unknown circumstances
+ * @throws BuildException in unknown circumstances
+ */
protected void doSiteCommand(FTPClient ftp, String theCMD)
throws IOException, BuildException {
boolean rc;
- String myReply[] = null;
+ String[] myReply = null;
log("Doing Site Command: " + theCMD, Project.MSG_VERBOSE);
rc = ftp.sendSiteCommand(theCMD);
- if (rc == false) {
+ if (!rc) {
log("Failed to issue Site Command: " + theCMD, Project.MSG_WARN);
} else {
@@ -830,6 +866,13 @@
* 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 ftp client
+ * @param dir base directory of the file to be sent (local)
+ * @param filename relative path of the file to be send
+ * locally relative to dir
+ * remotely relative to the remotedir attribute
+ * @throws IOException in unknown circumstances
+ * @throws BuildException in unknown circumstances
*/
protected void sendFile(FTPClient ftp, String dir, String filename)
throws IOException, BuildException {
@@ -886,7 +929,14 @@
}
- /** Delete a file from the remote host. */
+ /**
+ * Delete a file from the remote host.
+ * @param ftp ftp client
+ * @param filename file to delete
+ * @throws IOException in unknown circumstances
+ * @throws BuildException if skipFailedTransfers is set to false
+ * and the deletion could not be done
+ */
protected void delFile(FTPClient ftp, String filename)
throws IOException, BuildException {
if (verbose) {
@@ -909,7 +959,14 @@
}
}
- /** Delete a directory, if empty, from the remote host. */
+ /**
+ * Delete a directory, if empty, from the remote host.
+ * @param ftp ftp client
+ * @param dirname directory to delete
+ * @throws IOException in unknown circumstances
+ * @throws BuildException if skipFailedTransfers is set to false
+ * and the deletion could not be done
+ */
protected void rmDir(FTPClient ftp, String dirname)
throws IOException, BuildException {
if (verbose) {
@@ -934,13 +991,20 @@
/**
- * Retrieve a single file to the remote host. <code>filename</code> may
+ * Retrieve a single file from the remote host. <code>filename</code> may
* contain a relative path specification. <p>
*
* The file will then be retreived 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.</p>
+ * @param ftp the ftp client
+ * @param dir local base directory to which the file should go back
+ * @param filename relative path of the file based upon the ftp remote
directory
+ * and/or the local base directory (dir)
+ * @throws IOException in unknown circumstances
+ * @throws BuildException if skipFailedTransfers is false
+ * and the file cannot be retrieved.
*/
protected void getFile(FTPClient ftp, String dir, String filename)
throws IOException, BuildException {
@@ -1011,6 +1075,11 @@
* 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.</p>
+ * @param ftp ftp client
+ * @param bw buffered writer
+ * @param filename the directory one wants to list
+ * @throws IOException in unknown circumstances
+ * @throws BuildException in unknown circumstances
*/
protected void listFile(FTPClient ftp, BufferedWriter bw, String
filename)
throws IOException, BuildException {
@@ -1033,6 +1102,11 @@
* @param ftp The FTP client connection
* @param dir The directory to create (format must be correct for host
* type)
+ * @throws IOException in unknown circumstances
+ * @throws BuildException if ignoreNoncriticalErrors has not been set to
true
+ * and a directory could not be created, for instance because it
was
+ * already existing. Precisely, the codes 521, 550 and 553 will
trigger
+ * a BuildException
*/
protected void makeRemoteDir(FTPClient ftp, String dir)
throws IOException, BuildException {
@@ -1055,7 +1129,8 @@
// failed because the directory already exists.
int rc = ftp.getReplyCode();
if (!(ignoreNoncriticalErrors
- && (rc == 550 || rc == 553 || rc == 521))) {
+ && (rc == FTPReply.CODE_550 || rc ==
FTPReply.CODE_553
+ || rc == CODE_521))) {
throw new BuildException("could not create
directory: "
+ ftp.getReplyString());
}
@@ -1085,7 +1160,7 @@
throws BuildException {
int rc = ftp.getReplyCode();
if (!(ignoreNoncriticalErrors
- && (rc == 550 || rc == 553 || rc == 521))) {
+ && (rc == FTPReply.CODE_550 || rc == FTPReply.CODE_553 || rc ==
CODE_521))) {
throw new BuildException("could not create directory: "
+ ftp.getReplyString());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]