From 2d173bcb95c26aa12241198fc88b39aea0c20582 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 13 Nov 2018 19:07:05 +0100 Subject: [PATCH] Removes the contracts & mappings folders for the given version before committing and pushing new stubs; fixes gh-790 --- .../stubrunner/ContractProjectUpdater.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java index bb584b5d04..f5d2e2d68e 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/ContractProjectUpdater.java @@ -23,9 +23,13 @@ import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributes; +import java.util.Arrays; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + +import org.springframework.util.FileSystemUtils; import org.springframework.util.StringUtils; /** @@ -140,6 +144,8 @@ public class ContractProjectUpdater { class DirectoryCopyingVisitor extends SimpleFileVisitor { + private static final List FOLDERS_TO_DELETE = Arrays.asList("contracts", "mappings"); + private static final Log log = LogFactory.getLog(DirectoryCopyingVisitor.class); private final Path from; private final Path to; @@ -168,6 +174,16 @@ class DirectoryCopyingVisitor extends SimpleFileVisitor { if (log.isDebugEnabled()) { log.debug("Folder [" + targetPath.toString() + "] already exists"); } + if (FOLDERS_TO_DELETE.contains(targetPath.toFile().getName())) { + if (log.isDebugEnabled()) { + log.debug("Will remove the folder [" + targetPath.toString() + "]"); + } + FileSystemUtils.deleteRecursively(targetPath); + Files.createDirectory(targetPath); + if (log.isDebugEnabled()) { + log.debug("Recreated folder [" + targetPath.toString() + "]"); + } + } } return FileVisitResult.CONTINUE; }