From 49bbb32d77fb3324c88cf55c1d26cd29b3cb6454 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 26 Feb 2020 14:11:07 +0100 Subject: [PATCH] #136 - Replace Streamable with the one from Spring Data Commons. --- release-tools/pom.xml | 5 +++ .../data/release/Streamable.java | 36 ------------------- .../data/release/build/BuildExecutor.java | 2 +- .../data/release/git/TicketBranches.java | 18 +++++----- .../data/release/git/VersionTags.java | 12 +++---- .../data/release/issues/Tickets.java | 2 +- .../data/release/issues/jira/JiraIssues.java | 4 +-- .../issues/jira/JiraReleaseVersions.java | 4 +-- .../data/release/model/Modules.java | 4 +-- .../data/release/model/ReleaseTrains.java | 3 +- .../data/release/model/Train.java | 4 +-- .../data/release/model/TrainIteration.java | 2 +- .../release/sagan/MaintainedVersions.java | 12 +++---- .../data/release/utils/ExecutionUtils.java | 4 +-- 14 files changed, 41 insertions(+), 71 deletions(-) delete mode 100644 release-tools/src/main/java/org/springframework/data/release/Streamable.java diff --git a/release-tools/pom.xml b/release-tools/pom.xml index 4ee03d6..30eef71 100644 --- a/release-tools/pom.xml +++ b/release-tools/pom.xml @@ -33,6 +33,11 @@ spring-web + + org.springframework.data + spring-data-commons + + com.fasterxml.jackson.core jackson-databind diff --git a/release-tools/src/main/java/org/springframework/data/release/Streamable.java b/release-tools/src/main/java/org/springframework/data/release/Streamable.java deleted file mode 100644 index d347eea..0000000 --- a/release-tools/src/main/java/org/springframework/data/release/Streamable.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.data.release; - -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -/** - * SImple interface to ease streamability of {@link Iterable}s. - * - * @author Oliver Gierke - */ -public interface Streamable extends Iterable { - - /** - * Creates a non-parallel {@link Stream} of the underlying {@link Iterable}. - * - * @return will never be {@literal null}. - */ - public default Stream stream() { - return StreamSupport.stream(spliterator(), false); - } -} diff --git a/release-tools/src/main/java/org/springframework/data/release/build/BuildExecutor.java b/release-tools/src/main/java/org/springframework/data/release/build/BuildExecutor.java index 5bcbd82..6046998 100644 --- a/release-tools/src/main/java/org/springframework/data/release/build/BuildExecutor.java +++ b/release-tools/src/main/java/org/springframework/data/release/build/BuildExecutor.java @@ -39,11 +39,11 @@ import java.util.stream.Collector; import javax.annotation.PreDestroy; -import org.springframework.data.release.Streamable; import org.springframework.data.release.model.Project; import org.springframework.data.release.model.ProjectAware; import org.springframework.data.release.utils.ListWrapperCollector; import org.springframework.data.release.utils.Logger; +import org.springframework.data.util.Streamable; import org.springframework.plugin.core.PluginRegistry; import org.springframework.stereotype.Component; import org.springframework.util.Assert; diff --git a/release-tools/src/main/java/org/springframework/data/release/git/TicketBranches.java b/release-tools/src/main/java/org/springframework/data/release/git/TicketBranches.java index 87ce825..fa74cad 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/TicketBranches.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/TicketBranches.java @@ -15,23 +15,23 @@ */ package org.springframework.data.release.git; +import lombok.EqualsAndHashCode; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; + import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import java.util.stream.Collectors; -import org.springframework.data.release.Streamable; import org.springframework.data.release.issues.Ticket; +import org.springframework.data.util.Streamable; import org.springframework.util.Assert; -import lombok.EqualsAndHashCode; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; - /** * Value object to represent a collection of {@link Branch}es with assigned tickets. - * + * * @author Mark Paluch * @author Oliver Gierke */ @@ -44,7 +44,7 @@ public class TicketBranches implements Streamable { /** * Returns whether there's a ticket available for the given {@link Branch}. If {@code requireResolved} is set to * {@literal true} the answer will only be true if the available ticket is marked resolved. - * + * * @param branch must not be {@literal null}. * @param requireResolved whether the {@link Ticket} we look for is required to be resolved. * @return @@ -60,7 +60,7 @@ public class TicketBranches implements Streamable { /** * Returns a {@link TicketBranches} containing only the branches for which resolved {@link Ticket}s are found. - * + * * @return */ public TicketBranches getResolvedTickets() { @@ -72,7 +72,7 @@ public class TicketBranches implements Streamable { /** * Returns the ticket for the given {@link Branch}. - * + * * @param branch must not be {@literal null}. * @return */ diff --git a/release-tools/src/main/java/org/springframework/data/release/git/VersionTags.java b/release-tools/src/main/java/org/springframework/data/release/git/VersionTags.java index 4692a1d..8189086 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/VersionTags.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/VersionTags.java @@ -21,14 +21,14 @@ import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; -import org.springframework.data.release.Streamable; import org.springframework.data.release.model.ArtifactVersion; import org.springframework.data.release.model.ModuleIteration; +import org.springframework.data.util.Streamable; import org.springframework.util.Assert; /** * Value object to represent a collection of {@link Tag}s. - * + * * @author Oliver Gierke */ @EqualsAndHashCode @@ -38,7 +38,7 @@ public class VersionTags implements Streamable { /** * Creates a new {@link VersionTags} instance for the given {@link List} of {@link Tag}s. - * + * * @param source must not be {@literal null}. */ VersionTags(List source) { @@ -52,7 +52,7 @@ public class VersionTags implements Streamable { /** * Returns the latest {@link Tag}. - * + * * @return */ public Tag getLatest() { @@ -65,14 +65,14 @@ public class VersionTags implements Streamable { /** * Returns all {@link Tag}s as {@link List}. - * + * * @return */ public List asList() { return tags; } - /* + /* * (non-Javadoc) * @see java.lang.Iterable#iterator() */ diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/Tickets.java b/release-tools/src/main/java/org/springframework/data/release/issues/Tickets.java index 58d363a..451df6a 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/Tickets.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/Tickets.java @@ -25,10 +25,10 @@ import java.util.Optional; import java.util.stream.Collector; import java.util.stream.Stream; -import org.springframework.data.release.Streamable; import org.springframework.data.release.model.ModuleIteration; import org.springframework.data.release.model.TrainIteration; import org.springframework.data.release.utils.ListWrapperCollector; +import org.springframework.data.util.Streamable; import org.springframework.util.StringUtils; /** diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraIssues.java b/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraIssues.java index f650a31..677769a 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraIssues.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraIssues.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; /** * @author Oliver Gierke @@ -46,7 +46,7 @@ class JiraIssues implements Streamable { return !issues.isEmpty(); } - /* + /* * (non-Javadoc) * @see java.lang.Iterable#iterator() */ diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraReleaseVersions.java b/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraReleaseVersions.java index c51e346..bfd148d 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraReleaseVersions.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/jira/JiraReleaseVersions.java @@ -21,11 +21,11 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; /** * Value object to bind REST responses to. - * + * * @author Mark Paluch */ @Value diff --git a/release-tools/src/main/java/org/springframework/data/release/model/Modules.java b/release-tools/src/main/java/org/springframework/data/release/model/Modules.java index 1c24d28..d846595 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/Modules.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/Modules.java @@ -19,12 +19,12 @@ import java.util.Collection; import java.util.Iterator; import java.util.TreeSet; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; /** * A {@link Streamable} set of modules. Makes sure the stream order will match the natural dependency order of the given * {@link Module} instances. - * + * * @author Oliver Gierke */ class Modules implements Streamable { diff --git a/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java b/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java index 29257ff..99719d9 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java @@ -62,7 +62,8 @@ public class ReleaseTrains { new Module(MONGO_DB, "3.0"), // new Module(JDBC, "2.0"), // new Module(R2DBC, "1.1")) // - .filter(module -> !module.getProject().equals(GEMFIRE)).withIterations(new Train.Iterations(M1, M2, M3, RC1, GA)); + .filterModules(module -> !module.getProject().equals(GEMFIRE)) + .withIterations(new Train.Iterations(M1, M2, M3, M4, RC1, GA)); // Trains diff --git a/release-tools/src/main/java/org/springframework/data/release/model/Train.java b/release-tools/src/main/java/org/springframework/data/release/model/Train.java index 55ffe8f..e575c29 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/Train.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/Train.java @@ -36,7 +36,7 @@ import java.util.stream.Stream; import org.apache.commons.io.IOUtils; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; import org.springframework.util.Assert; /** @@ -115,7 +115,7 @@ public class Train implements Streamable { return new Train(name, collect); } - public Train filter(Predicate filterPredicate) { + public Train filterModules(Predicate filterPredicate) { return new Train(name, getModules().stream().filter(filterPredicate).collect(Collectors.toList())); } diff --git a/release-tools/src/main/java/org/springframework/data/release/model/TrainIteration.java b/release-tools/src/main/java/org/springframework/data/release/model/TrainIteration.java index 4078332..738ede2 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/TrainIteration.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/TrainIteration.java @@ -21,7 +21,7 @@ import lombok.Value; import java.util.Iterator; import java.util.List; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; /** * @author Oliver Gierke diff --git a/release-tools/src/main/java/org/springframework/data/release/sagan/MaintainedVersions.java b/release-tools/src/main/java/org/springframework/data/release/sagan/MaintainedVersions.java index 370fae2..4d07c8f 100644 --- a/release-tools/src/main/java/org/springframework/data/release/sagan/MaintainedVersions.java +++ b/release-tools/src/main/java/org/springframework/data/release/sagan/MaintainedVersions.java @@ -23,12 +23,12 @@ import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; -import org.springframework.data.release.Streamable; import org.springframework.data.release.model.ArtifactVersion; +import org.springframework.data.util.Streamable; /** * Wrapper type for a {@link List} of {@link MaintainedVersion}. - * + * * @author Oliver Gierke */ @ToString @@ -40,7 +40,7 @@ class MaintainedVersions implements Streamable { /** * Creates a new {@link MaintainedVersions} with the given {@link MaintainedVersion}s in descending order (more recent * versions first). - * + * * @param versions must not be {@literal null}. * @return */ @@ -54,7 +54,7 @@ class MaintainedVersions implements Streamable { /** * Creates a new {@link MaintainedVersions} with the given {@link MaintainedVersion}s in descending order (more recent * versions first). - * + * * @param versions must not be {@literal null}. * @return */ @@ -64,7 +64,7 @@ class MaintainedVersions implements Streamable { /** * Returns whether the given {@link MaintainedVersion} is the main version of the current set. - * + * * @param version must not be {@literal null}. * @return */ @@ -82,7 +82,7 @@ class MaintainedVersions implements Streamable { .orElse(false); } - /* + /* * (non-Javadoc) * @see java.lang.Iterable#iterator() */ diff --git a/release-tools/src/main/java/org/springframework/data/release/utils/ExecutionUtils.java b/release-tools/src/main/java/org/springframework/data/release/utils/ExecutionUtils.java index 8419d28..74d7ee5 100644 --- a/release-tools/src/main/java/org/springframework/data/release/utils/ExecutionUtils.java +++ b/release-tools/src/main/java/org/springframework/data/release/utils/ExecutionUtils.java @@ -24,7 +24,7 @@ import java.util.function.Function; import java.util.stream.Collector; import java.util.stream.Collectors; -import org.springframework.data.release.Streamable; +import org.springframework.data.util.Streamable; import org.springframework.util.Assert; /** @@ -75,7 +75,7 @@ public class ExecutionUtils { Collector collector) { Assert.notNull(streamable, "Iterable must not be null!"); - Assert.notNull(function, "Consumer must not be null!"); + Assert.notNull(function, "Function must not be null!"); return streamable.stream().// map(it -> CompletableFuture.supplyAsync(() -> function.apply(it))).//