|
|
@@ -146,6 +146,9 @@ public class FTP extends Task implements FTPTaskConfig { |
|
|
|
private String initialSiteCommand = null; |
|
|
|
private boolean enableRemoteVerification = true; |
|
|
|
private int dataTimeout = -1; |
|
|
|
private int wakeUpTransferInterval = -1; |
|
|
|
private long lastWakeUpTime = 0; |
|
|
|
|
|
|
|
|
|
|
|
protected static final String[] ACTION_STRS = { //NOSONAR |
|
|
|
"sending", |
|
|
@@ -547,6 +550,14 @@ public class FTP extends Task implements FTPTaskConfig { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(wakeUpTransferInterval > 0) { |
|
|
|
if(wakeUpTransferIntervalExpired()) { |
|
|
|
getProject().log("wakeUpTransferInterval is reached, trigger a data connection " , Project.MSG_DEBUG); |
|
|
|
// send a minimalist command to trigger a data connection |
|
|
|
ftp.listFiles(file.getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
ftp.changeToParentDirectory(); |
|
|
|
} catch (FTPConnectionClosedException ftpcce) { |
|
|
@@ -1710,6 +1721,21 @@ public class FTP extends Task implements FTPTaskConfig { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Sets the time interval when we should automatically |
|
|
|
* call a command triggering a transfer |
|
|
|
* The parameter is in seconds |
|
|
|
* |
|
|
|
* @param wakeUpTransferInterval int |
|
|
|
* @since Ant 1.10.6 |
|
|
|
*/ |
|
|
|
public void setWakeUpTransferInterval(int wakeUpTransferInterval) { |
|
|
|
if(wakeUpTransferInterval > 0) { |
|
|
|
this.wakeUpTransferInterval = wakeUpTransferInterval; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* Checks to see that all required parameters are set. |
|
|
|
* |
|
|
@@ -2437,6 +2463,28 @@ public class FTP extends Task implements FTPTaskConfig { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* checks if the wake up interval is expired |
|
|
|
*/ |
|
|
|
private boolean wakeUpTransferIntervalExpired() { |
|
|
|
boolean result = false; |
|
|
|
|
|
|
|
// on the first call, initialize the keep-alive mechanism |
|
|
|
// by storing the current date |
|
|
|
if(lastWakeUpTime == 0) { |
|
|
|
lastWakeUpTime = (new Date()).getTime(); |
|
|
|
} |
|
|
|
else { |
|
|
|
long currentTime = (new Date()).getTime(); |
|
|
|
if(currentTime > (lastWakeUpTime + wakeUpTransferInterval*1000)) { |
|
|
|
lastWakeUpTime = currentTime; |
|
|
|
result = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Runs the task. |
|
|
|
* |
|
|
|