protected boolean syncFiles() throws Exception {

        Path cacheDir = manifest.resolveCacheDir(getParameters().getNamed());
        log.info(String.format("Using cache dir %s", cacheDir));

        phase = "File Synchronization";

        if (getParameters().getUnnamed().contains("--offline")) {
            log.info("not updating files from remote, offline selected");
            return false; // to signal that nothing has changed.
        }
        List<LibraryFile> needsUpdate = manifest.files.stream()
                .filter(LibraryFile::loadForCurrentPlatform)
                .filter(it -> it.needsUpdate(cacheDir))
                .collect(Collectors.toList());

        if (needsUpdate.isEmpty())
            return false;

        Long totalBytes = needsUpdate.stream().mapToLong(f -> f.size).sum();
        Long totalWritten = 0L;

        for (LibraryFile lib : needsUpdate) {
            Path target = cacheDir.resolve(lib.file).toAbsolutePath();
            Files.createDirectories(target.getParent());

            URI uri;

            // We avoid using uri.resolve() here so as to not break UNC paths. See issue #143
            String separator = manifest.uri.getPath().endsWith("/") ? "" : "/";
            uri = URI.create(manifest.uri.toString() + separator + lib.file);


            try (InputStream input = openDownloadStream(uri); OutputStream output = Files.newOutputStream(target)) {

                byte[] buf = new byte[65536];

                int read;
                while ((read = input.read(buf)) > -1) {
                    output.write(buf, 0, read);
                    totalWritten += read;
                    Double progress = totalWritten.doubleValue() / totalBytes.doubleValue();
                    updateProgress(progress);
                }
            }
        }
        return true;
    }
protected boolean syncFiles ( ) throws Exception { Path cacheDir = manifest . resolveCacheDir ( getParameters ( ) . getNamed ( ) ) ; log . info ( String . format ( "Using cache dir %s" , cacheDir ) ) ; phase = "File Synchronization" ; if ( getParameters ( ) . getUnnamed ( ) . contains ( "--offline" ) ) { log . info ( "not updating files from remote, offline selected" ) ; return false ; } List < LibraryFile > needsUpdate = manifest . files . stream ( ) . filter ( LibraryFile :: loadForCurrentPlatform ) . filter ( it -> it . needsUpdate ( cacheDir ) ) . collect ( Collectors . toList ( ) ) ; if ( needsUpdate . isEmpty ( ) ) return false ; Long totalBytes = needsUpdate . stream ( ) . mapToLong ( f -> f . size ) . sum ( ) ; Long totalWritten = 0L ; for ( LibraryFile lib : needsUpdate ) { Path target = cacheDir . resolve ( lib . file ) . toAbsolutePath ( ) ; Files . createDirectories ( target . getParent ( ) ) ; URI uri ; String separator = manifest . uri . getPath ( ) . endsWith ( "/" ) ? "" : "/" ; uri = URI . create ( manifest . uri . toString ( ) + separator + lib . file ) ; try ( InputStream input = openDownloadStream ( uri ) ; OutputStream output = Files . newOutputStream ( target ) ) { byte [ ] buf = new byte [ 65536 ] ; int read ; while ( ( read = input . read ( buf ) ) > - 1 ) { output . write ( buf , 0 , read ) ; totalWritten += read ; Double progress = totalWritten . doubleValue ( ) / totalBytes . doubleValue ( ) ; updateProgress ( progress ) ; } } } return true ; }
Check if remote files are newer then local files. Return true if files are updated, triggering the whatsnew option else false.
Also return false and do not check for updates if the <code>--offline</code> commandline argument is set.

@return true if new files have been downloaded, false otherwise.
@throws Exception