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 super S, ?, R> 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))).//