in wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java [229:264]
private void ftpRecursivePut(File sourceFile, String prefix, String fileName, int directoryMode)
throws TransferFailedException, SftpException {
final RepositoryPermissions permissions = repository.getPermissions();
if (sourceFile.isDirectory()) {
// ScpHelper.getResourceFilename( destinationDirectory ) - could return empty string
if (!fileName.equals(".") && !fileName.equals("")) {
prefix = getFileName(prefix, fileName);
mkdir(fileName, directoryMode);
channel.cd(fileName);
}
File[] files = sourceFile.listFiles();
if (files != null && files.length > 0) {
// Directories first, then files. Let's go deep early.
for (File file : files) {
if (file.isDirectory()) {
ftpRecursivePut(file, prefix, file.getName(), directoryMode);
}
}
for (File file : files) {
if (!file.isDirectory()) {
ftpRecursivePut(file, prefix, file.getName(), directoryMode);
}
}
}
channel.cd("..");
} else {
Resource resource = ScpHelper.getResource(getFileName(prefix, fileName));
firePutInitiated(resource, sourceFile);
putFile(sourceFile, resource, permissions);
}
}