From 241731c6fcfea018790d29f385ed318e7679d4e2 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 23 Oct 2018 21:14:59 +0200 Subject: [PATCH] Should work now --- .../internal/spring/OptionsParser.java | 16 +++++-- .../internal/spring/OptionsParserTests.java | 44 +++++++++++++++++++ 2 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsParserTests.java diff --git a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/OptionsParser.java b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/OptionsParser.java index 55bb4e40..2ef79ece 100644 --- a/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/OptionsParser.java +++ b/spring-cloud-release-tools-spring/src/main/java/org/springframework/cloud/release/internal/spring/OptionsParser.java @@ -27,6 +27,7 @@ class OptionsParser implements Parser { public Options parse(String[] args) { OptionParser parser = new OptionParser(); parser.allowsUnrecognizedOptions(); + log.info("Got following args <{}>", args); try { ArgumentAcceptingOptionSpec metaReleaseOpt = parser .acceptsAll(Arrays.asList("x", "meta-release"), @@ -82,9 +83,8 @@ class OptionsParser implements Parser { providedTaskNames.addAll(tasksFromOptions.isEmpty() && !metaRelease ? allTaskNames : tasksFromOptions); } - List taskNames = allTaskNames.stream() - .filter(providedTaskNames::contains) - .collect(Collectors.toList()); + List taskNames = filterProvidedTaskNames( + providedTaskNames, allTaskNames, metaRelease); String startFrom = options.valueOf(startFromOpt); String range = options.valueOf(rangeOpt); Options buildOptions = new OptionsBuilder() @@ -104,6 +104,16 @@ class OptionsParser implements Parser { } } + List filterProvidedTaskNames(List providedTaskNames, + List allTaskNames, boolean metaRelease) { + if (metaRelease) { + return providedTaskNames; + } + return allTaskNames.stream() + .filter(providedTaskNames::contains) + .collect(Collectors.toList()); + } + private String removeQuotingChars(String string) { if (string.startsWith("'") && string.endsWith("'")) { return string.substring(1, string.length() - 1); diff --git a/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsParserTests.java b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsParserTests.java new file mode 100644 index 00000000..3e6b4eda --- /dev/null +++ b/spring-cloud-release-tools-spring/src/test/java/org/springframework/cloud/release/internal/spring/OptionsParserTests.java @@ -0,0 +1,44 @@ +package org.springframework.cloud.release.internal.spring; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.assertj.core.api.BDDAssertions; +import org.junit.Test; + +/** + * @author Marcin Grzejszczak + * @since + */ +public class OptionsParserTests { + + @Test public void should_filter_provided_task_names() { + OptionsParser optionsParser = new OptionsParser(); + + List taskNames = optionsParser.filterProvidedTaskNames( + providedTaskNames(), allTaskNames(), true + ); + + BDDAssertions.then(taskNames).isEqualTo(providedTaskNames()); + } + + private List providedTaskNames() { + return new ArrayList<>( + Arrays.asList("spring-cloud-config", "spring-cloud-netflix", + "spring-cloud-cloudfoundry", "spring-cloud-openfeign", + "spring-cloud-gateway", "spring-cloud-security", + "spring-cloud-sleuth", "spring-cloud-contract", + "spring-cloud-vault", "spring-cloud-release")); + } + + private List allTaskNames() { + return new ArrayList<>( + Arrays.asList("spring-cloud-config", "spring-cloud-netflix", + "spring-cloud-cloudfoundry", "spring-cloud-openfeign", + "spring-cloud-gateway", "spring-cloud-security", + "spring-cloud-sleuth", "spring-cloud-contract", + "spring-cloud-vault", "spring-cloud-release", + "spring-cloud-1", "spring-cloud-2", "spring-cloud-3")); + } +} \ No newline at end of file