+ * TODO: Return created ticket
*
- * @param iteration must not be {@literal null}.
+ * @param module must not be {@literal null}.
+ */
+ void createReleaseTicket(ModuleIteration module);
+
+ /**
+ * Assigns the ticket to the current user.
+ *
+ * @param ticket must not be {@literal null}.
* @param credentials must not be {@literal null}.
*/
- void createReleaseTicket(ModuleIteration moduleIteration);
+ void assignTicketToMe(Ticket ticket);
- Changelog getChangelogFor(ModuleIteration iteration);
+ /**
+ * Assigns the release ticket for the given {@link ModuleIteration} to the current user.
+ *
+ * @param module must not be {@literal null}.
+ * @return
+ */
+ Ticket assignReleaseTicketToMe(ModuleIteration module);
+
+ /**
+ * Returns the {@link Changelog} for the given {@link ModuleIteration}.
+ *
+ * @param module must not be {@literal null}.
+ * @return
+ */
+ Changelog getChangelogFor(ModuleIteration module);
}
diff --git a/release-tools/src/main/java/org/springframework/data/release/cli/IssueTrackerCommands.java b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java
similarity index 63%
rename from release-tools/src/main/java/org/springframework/data/release/cli/IssueTrackerCommands.java
rename to release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java
index 6e19e5b..d702f7f 100644
--- a/release-tools/src/main/java/org/springframework/data/release/cli/IssueTrackerCommands.java
+++ b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java
@@ -13,17 +13,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.release.cli;
+package org.springframework.data.release.issues;
+import static org.springframework.data.release.utils.ExecutionUtils.*;
+
+import lombok.AccessLevel;
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import lombok.experimental.FieldDefaults;
+
+import java.util.function.BiFunction;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.release.CliComponent;
-import org.springframework.data.release.jira.Changelog;
-import org.springframework.data.release.jira.IssueTracker;
-import org.springframework.data.release.jira.JiraConnector;
-import org.springframework.data.release.jira.Tickets;
import org.springframework.data.release.model.ModuleIteration;
import org.springframework.data.release.model.Project;
import org.springframework.data.release.model.TrainIteration;
@@ -39,56 +44,38 @@ import org.springframework.util.StringUtils;
* @author Mark Paluch
*/
@CliComponent
+@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
+@RequiredArgsConstructor(onConstructor = @__(@Autowired) )
public class IssueTrackerCommands implements CommandMarker {
- private final PluginRegistry> supplier() {
return ArrayList::new;
}
+ /*
+ * (non-Javadoc)
+ * @see java.util.stream.Collector#accumulator()
+ */
@Override
public BiConsumer
, Ticket> accumulator() {
return List::add;
}
+ /*
+ * (non-Javadoc)
+ * @see java.util.stream.Collector#combiner()
+ */
@Override
public BinaryOperator
> combiner() {
return (left, right) -> {
@@ -130,16 +148,23 @@ public class Tickets implements Streamable
, Tickets> finisher() {
return tickets -> new Tickets(tickets);
}
+ /*
+ * (non-Javadoc)
+ * @see java.util.stream.Collector#characteristics()
+ */
@Override
public Set
> MILESTONES_TYPE = new ParameterizedTypeReference
>() {};
+ private static final ParameterizedTypeReference
> MILESTONES_TYPE = new ParameterizedTypeReference
>() {};
private static final ParameterizedTypeReference
> ISSUES_TYPE = new ParameterizedTypeReference
>() {};
private static final ParameterizedTypeReference