From 3349663192f0ac187c02d6d953667097f7a24b0d Mon Sep 17 00:00:00 2001 From: vivek-0509 Date: Fri, 26 Dec 2025 22:47:22 +0530 Subject: [PATCH] Issue #980: Replace AntBuilder.copy() with Files.walkFileTree() --- checkstyle-tester/diff.groovy | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/checkstyle-tester/diff.groovy b/checkstyle-tester/diff.groovy index e46a973e..8ef0f47c 100644 --- a/checkstyle-tester/diff.groovy +++ b/checkstyle-tester/diff.groovy @@ -1,8 +1,12 @@ import static java.lang.System.err import static java.nio.file.StandardCopyOption.REPLACE_EXISTING +import java.nio.file.FileVisitResult import java.nio.file.Files +import java.nio.file.Path import java.nio.file.Paths +import java.nio.file.SimpleFileVisitor +import java.nio.file.attribute.BasicFileAttributes import java.util.regex.Pattern static void main(String[] args) { @@ -713,9 +717,29 @@ def postProcessCheckstyleReport(targetDir, repoName, repoPath) { } def copyDir(source, destination) { - new AntBuilder().copy(todir: destination) { - fileset(dir: source) - } + Path sourceDir = new File(source).toPath().toAbsolutePath().normalize() + Path destinationDir = new File(destination).toPath().toAbsolutePath().normalize() + + Files.walkFileTree(sourceDir, new SimpleFileVisitor() { + @Override + FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) { + + if (dir.startsWith(destinationDir)) { + return FileVisitResult.SKIP_SUBTREE + } + Path targetDir = destinationDir.resolve(sourceDir.relativize(dir)) + Files.createDirectories(targetDir) + return FileVisitResult.CONTINUE + } + + @Override + FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + + Path targetFile = destinationDir.resolve(sourceDir.relativize(file)) + Files.copy(file, targetFile, REPLACE_EXISTING) + return FileVisitResult.CONTINUE + } + }) } def moveDir(source, destination) {