From 4e08cc85a9cc2b5a6ebf85247817a21755a1dca7 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Mon, 22 May 2023 11:27:23 +0200 Subject: [PATCH] Use a CachingOutputStream when using the build context The CachingOutputStream provides a write cache so that the target file is only modified if there's a content change. If the data written exactly maps the existing content of the file, the file will not be modified at all. --- .../java/org/codehaus/plexus/build/DefaultBuildContext.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java b/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java index f83c6ba..5b8c66c 100644 --- a/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java +++ b/src/main/java/org/codehaus/plexus/build/DefaultBuildContext.java @@ -26,6 +26,7 @@ import org.codehaus.plexus.util.DirectoryScanner; import org.codehaus.plexus.util.Scanner; +import org.codehaus.plexus.util.io.CachingOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,7 +77,7 @@ public boolean hasDelta(List relpaths) { /** {@inheritDoc} */ public OutputStream newFileOutputStream(File file) throws IOException { - return Files.newOutputStream(file.toPath()); + return new CachingOutputStream(file.toPath()); } /** {@inheritDoc} */