in commons-vfs2-ant/src/main/java/org/apache/commons/vfs2/tasks/AbstractSyncTask.java [126:178]
public void execute() throws BuildException {
// Validate
if (destFileUrl == null && destDirUrl == null) {
final String message = Messages.getString("vfs.tasks/sync.no-destination.error");
logOrDie(message, Project.MSG_WARN);
return;
}
if (destFileUrl != null && destDirUrl != null) {
final String message = Messages.getString("vfs.tasks/sync.too-many-destinations.error");
logOrDie(message, Project.MSG_WARN);
return;
}
// Add the files of the includes attribute to the list
if (srcDirUrl != null && !srcDirUrl.equals(destDirUrl) && filesList != null && filesList.length() > 0) {
if (!srcDirUrl.endsWith("/")) {
srcDirUrl += "/";
}
final StringTokenizer tok = new StringTokenizer(filesList, ", \t\n\r\f", false);
while (tok.hasMoreTokens()) {
String nextFile = tok.nextToken();
// Basic compatibility with Ant fileset for directories
if (nextFile.endsWith("/**")) {
nextFile = nextFile.substring(0, nextFile.length() - 2);
}
final SourceInfo src = new SourceInfo();
src.setFile(srcDirUrl + nextFile);
addConfiguredSrc(src);
}
}
if (srcFiles.isEmpty()) {
final String message = Messages.getString("vfs.tasks/sync.no-source-files.warn");
logOrDie(message, Project.MSG_WARN);
return;
}
// Perform the sync
try {
if (destFileUrl != null) {
handleSingleFile();
} else {
handleFiles();
}
} catch (final BuildException e) {
throw e;
} catch (final Exception e) {
throw new BuildException(e.getMessage(), e);
}
}