From cf1c5c47ea8fb74a9fc8c33526f0598b8423886f Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 26 Jun 2018 13:25:40 +0200 Subject: [PATCH] Fixed task names --- .../internal/pom/ProjectPomUpdater.java | 3 +++ .../spring/ConsoleInputStepSkipper.java | 24 +++++++++++++++++++ .../internal/spring/SpringReleaser.java | 10 +++++--- .../release/internal/spring/StepSkipper.java | 10 ++++++++ .../cloud/release/internal/spring/Task.java | 21 +++------------- .../internal/spring/AcceptanceTests.java | 9 +++++++ .../spring/OptionsProcessorTests.java | 13 ++++++---- 7 files changed, 64 insertions(+), 26 deletions(-) create mode 100644 spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/ConsoleInputStepSkipper.java create mode 100644 spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/StepSkipper.java diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java index 758d5a32..758ecccd 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/pom/ProjectPomUpdater.java @@ -82,6 +82,9 @@ public class ProjectPomUpdater implements ReleaserPropertiesAware { .stream() .map(entry -> new ProjectVersion(entry.getKey(), entry.getValue())) .collect(Collectors.toSet()); + if (log.isDebugEnabled()) { + log.debug("Will apply the following fixed versions {}", projectVersions); + } return new Versions(projectVersions).toProjectVersions(); } diff --git a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/ConsoleInputStepSkipper.java b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/ConsoleInputStepSkipper.java new file mode 100644 index 00000000..adbb9581 --- /dev/null +++ b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/ConsoleInputStepSkipper.java @@ -0,0 +1,24 @@ +package org.springframework.cloud.release.internal.spring; + +/** + * @author Marcin Grzejszczak + */ +class ConsoleInputStepSkipper implements StepSkipper { + + @Override public boolean skipStep() { + String input = chosenOption(); + switch (input.toLowerCase()) { + case "s": + return true; + case "q": + System.exit(0); + return true; + default: + return false; + } + } + + String chosenOption() { + return System.console().readLine(); + } +} diff --git a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/SpringReleaser.java b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/SpringReleaser.java index 61a5bd05..8caac695 100644 --- a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/SpringReleaser.java +++ b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/SpringReleaser.java @@ -126,16 +126,22 @@ public class SpringReleaser { } filteredProjects = filteredProjects.subList(projectIndex, filteredProjects.size()); options.startFrom = ""; + enforceFullRelease(options); } else if (!options.taskNames.isEmpty()) { filteredProjects = filteredProjects.stream() .filter(project -> options.taskNames.contains(project)) .collect(Collectors.toList()); options.taskNames = new ArrayList<>(); + enforceFullRelease(options); } log.info("\n\n\nFor meta-release, will release the projects {}\n\n\n", filteredProjects); return filteredProjects; } + protected void enforceFullRelease(Options options) { + options.fullRelease = true; + } + private File projectFolder() { String workingDir = this.properties.getWorkingDir(); return new File(workingDir); @@ -210,7 +216,7 @@ public class SpringReleaser { private void printSettingVersionFromFixedVersions(Projects projectsToUpdate) { log.info("\n\n\n=== RETRIEVED VERSIONS ===\n\nWill use the fixed versions" - + " of projects\n\n {}", projectsToUpdate + + " of projects\n\n{}", projectsToUpdate .stream().map(p -> p.projectName + " => " + p.version) .collect(Collectors.joining("\n"))); } @@ -223,7 +229,5 @@ public class SpringReleaser { + "there is at least one SNAPSHOT library version in the Spring Cloud Release project"); } } - - } diff --git a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/StepSkipper.java b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/StepSkipper.java new file mode 100644 index 00000000..dbb04bbe --- /dev/null +++ b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/StepSkipper.java @@ -0,0 +1,10 @@ +package org.springframework.cloud.release.internal.spring; + +/** + * Reads input (e.g. from the console) + * + * @author Marcin Grzejszczak + */ +interface StepSkipper { + boolean skipStep(); +} diff --git a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/Task.java b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/Task.java index a7dc5809..ff82e4f0 100644 --- a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/Task.java +++ b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/Task.java @@ -11,6 +11,8 @@ import org.slf4j.LoggerFactory; */ class Task { + static StepSkipper stepSkipper = new ConsoleInputStepSkipper(); + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static final String MSG = "\nPress 'q' to quit, 's' to skip, any key to continue\n\n"; @@ -46,7 +48,7 @@ class Task { boolean interactive = args.interactive; printLog(interactive); if (interactive) { - boolean skipStep = skipStep(); + boolean skipStep = stepSkipper.skipStep(); if (!skipStep) { consumer.accept(args); } @@ -63,21 +65,4 @@ class Task { private void printLog(boolean interactive) { log.info("\n\n\n=== {} ===\n\n{} {}\n\n", header, description, interactive ? MSG : ""); } - - boolean skipStep() { - String input = chosenOption(); - switch (input.toLowerCase()) { - case "s": - return true; - case "q": - System.exit(0); - return true; - default: - return false; - } - } - - String chosenOption() { - return System.console().readLine(); - } } diff --git a/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/AcceptanceTests.java b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/AcceptanceTests.java index ee6f0d58..44666934 100644 --- a/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/AcceptanceTests.java +++ b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/AcceptanceTests.java @@ -14,10 +14,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import javax.swing.*; + import org.apache.maven.model.Model; import org.assertj.core.api.BDDAssertions; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.revwalk.RevCommit; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -76,6 +79,12 @@ public class AcceptanceTests { FileSystemUtils.copyRecursively(file("/projects/"), this.temporaryFolder); BDDMockito.given(this.saganClient.getProject(anyString())) .willReturn(newProject()); + Task.stepSkipper = () -> false; + } + + @After + public void clean() { + Task.stepSkipper = new ConsoleInputStepSkipper(); } private Project newProject() { diff --git a/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsProcessorTests.java b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsProcessorTests.java index 9c0046bf..505c41b7 100644 --- a/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsProcessorTests.java +++ b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsProcessorTests.java @@ -5,6 +5,7 @@ import edu.emory.mathcs.backport.java.util.Arrays; import java.util.List; import java.util.function.Consumer; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -41,6 +42,12 @@ public class OptionsProcessorTests { @Before public void setup() { this.optionsProcessor = new OptionsProcessor(this.releaser, new ReleaserProperties(), this.tasks); + Task.stepSkipper = () -> false; + } + + @After + public void clean() { + Task.stepSkipper = new ConsoleInputStepSkipper(); } @Test @@ -261,11 +268,7 @@ public class OptionsProcessorTests { } static Task task(String name, String shortName, String header, String description, Consumer function) { - return new Task(name, shortName, header, description, function) { - @Override String chosenOption() { - return "whatever"; - } - }; + return new Task(name, shortName, header, description, function); } }