@@ -46,6 +46,7 @@ import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPSClient;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
@@ -59,6 +60,8 @@ import org.apache.tools.ant.util.RetryHandler;
import org.apache.tools.ant.util.Retryable;
import org.apache.tools.ant.util.VectorSet;
import javax.net.ssl.HostnameVerifier;
/**
* Basic FTP client. Performs the following actions:
* <ul>
@@ -112,6 +115,8 @@ public class FTP extends Task implements FTPTaskConfig {
private String userid;
private String password;
private String account;
private boolean useFtps =false;
private HostnameVerifier hostnameVerifier;
private File listing;
private boolean binary = true;
private boolean passive = false;
@@ -1263,6 +1268,17 @@ public class FTP extends Task implements FTPTaskConfig {
this.userid = userid;
}
public void setUseFtps(boolean useFtps) {
this.useFtps = useFtps;
}
public HostnameVerifier getHostnameVerifier() {
return hostnameVerifier;
}
public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
}
/**
* Sets the login password for the given user id.
@@ -2488,10 +2504,6 @@ public class FTP extends Task implements FTPTaskConfig {
return result;
}
protected FTPClient getFTPClient(){
return new FTPClient();
}
/**
* Runs the task.
*
@@ -2506,8 +2518,14 @@ public class FTP extends Task implements FTPTaskConfig {
try {
log("Opening FTP connection to " + server, Project.MSG_VERBOSE);
ftp = getFTPClient();
if( useFtps) {
ftp = new FTPSClient();
if(hostnameVerifier != null){
((FTPSClient)ftp).setHostnameVerifier(hostnameVerifier);
}
}else{
ftp = new FTPClient();
}
if (this.isConfigurationSet) {
ftp = FTPConfigurator.configure(ftp, this);
}