private void fileWriteIfDiffers()

in src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java [681:709]


    private void fileWriteIfDiffers(DeferredFileOutputStream outStream) throws IOException {
        File file = outStream.getFile();
        if (outStream.isThresholdExceeded()) {
            getLog().info("File " + file + " was overwritten due to content limit threshold " + outStream.getThreshold()
                    + " reached");
            return;
        }
        boolean needOverwrite = true;

        if (file.exists()) {
            try (InputStream is = Files.newInputStream(file.toPath());
                    InputStream newContents = new ByteArrayInputStream(outStream.getData())) {
                needOverwrite = !IOUtil.contentEquals(is, newContents);
                if (getLog().isDebugEnabled()) {
                    getLog().debug("File " + file + " contents " + (needOverwrite ? "differs" : "does not differ"));
                }
            }
        }

        if (!needOverwrite) {
            getLog().debug("File " + file + " is up to date");
            return;
        }
        getLog().debug("Writing " + file);

        try (OutputStream os = Files.newOutputStream(file.toPath())) {
            outStream.writeTo(os);
        }
    }