public void execute()

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);
        }
    }