public Void call()

in src/main/java/com/microsoft/jenkins/appservice/commands/FTPDeployCommand.java [112:158]


        public Void call() throws FTPException {
            FTPClient ftpClient = new FTPClient();
            try {
                listener.getLogger().println(String.format("Starting to deploy to FTP: %s", ftpUrl));

                ftpClient.connect(ftpUrl);
                if (!ftpClient.login(ftpUserName, ftpPassword)) {
                    throw new FTPException("Fail to login");
                }

                // Use passive mode to bypass client firewall
                ftpClient.enterLocalPassiveMode();

                final String absTargetDirectory = SITE_ROOT + Util.fixNull(targetDirectory);
                if (!ftpClient.changeWorkingDirectory(absTargetDirectory)) {
                    // Target directory doesn't exist. Try to create it.
                    if (!ftpClient.makeDirectory(absTargetDirectory)) {
                        throw new FTPException("Fail to make directory: " + absTargetDirectory);
                    }
                }

                if (!ftpClient.changeWorkingDirectory(absTargetDirectory)) {
                    throw new FTPException("Fail to change working directory to: " + absTargetDirectory);
                }

                listener.getLogger().println(String.format("Working directory: %s", ftpClient.printWorkingDirectory()));

                final FilePath sourceDir = workspace.child(Util.fixNull(sourceDirectory));
                final FilePath[] files = sourceDir.list(filePath);
                for (final FilePath file : files) {
                    uploadFile(ftpClient, sourceDir, file);
                }
            } catch (IOException | InterruptedException e) {
                throw new FTPException(e);
            } finally {
                if (ftpClient.isConnected()) {
                    try {
                        ftpClient.disconnect();
                    } catch (IOException e) {
                        e.printStackTrace();
                        listener.getLogger().println("Fail to disconnect from FTP: " + e.getMessage());
                    }
                }
            }

            return null;
        }