From a4acf4b3d84a13b7c876e7c0f2ba26755f2ab85b Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 4 May 2017 15:38:55 +0200 Subject: [PATCH] #49 - Upgraded to Spring Boot 2.0 snapshots. --- release-tools/pom.xml | 5 ++-- .../data/release/build/BuildOperations.java | 2 +- .../data/release/git/GitCommands.java | 2 +- .../data/release/git/GitOperations.java | 11 ++++++--- .../release/issues/IssueTrackerCommands.java | 4 +++- .../data/release/issues/github/GitHub.java | 2 -- .../data/release/issues/jira/Jira.java | 24 +++++++++---------- .../data/release/misc/ReleaseOperations.java | 5 +++- .../data/release/model/Version.java | 6 ++--- .../release/AbstractIntegrationTests.java | 4 ++-- 10 files changed, 35 insertions(+), 30 deletions(-) diff --git a/release-tools/pom.xml b/release-tools/pom.xml index 4f9d331..7bd4fcf 100644 --- a/release-tools/pom.xml +++ b/release-tools/pom.xml @@ -8,14 +8,13 @@ org.springframework.boot spring-boot-starter-parent - 1.3.2.RELEASE + 2.0.0.BUILD-SNAPSHOT 1.8 org.springframework.data.release.Application - 1.3.0.BUILD-SNAPSHOT - 4.3.0.RELEASE + 2.0.0.BUILD-SNAPSHOT diff --git a/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java b/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java index 0f5583e..c1fb25c 100644 --- a/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java +++ b/release-tools/src/main/java/org/springframework/data/release/build/BuildOperations.java @@ -21,6 +21,7 @@ import lombok.RequiredArgsConstructor; import java.nio.file.Path; import java.util.List; import java.util.function.BiFunction; +import java.util.function.Supplier; import java.util.stream.Collectors; import org.springframework.data.release.deployment.DeploymentInformation; @@ -29,7 +30,6 @@ import org.springframework.data.release.model.Phase; import org.springframework.data.release.model.Project; import org.springframework.data.release.model.TrainIteration; import org.springframework.plugin.core.PluginRegistry; -import org.springframework.plugin.core.PluginRegistry.Supplier; import org.springframework.stereotype.Component; import org.springframework.util.Assert; diff --git a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java index 6e377cb..ddc3c3d 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java @@ -41,6 +41,7 @@ import org.springframework.util.StringUtils; * @author Oliver Gierke */ @CliComponent +@SuppressWarnings("deprecation") @RequiredArgsConstructor class GitCommands extends TimedCommand { @@ -134,7 +135,6 @@ class GitCommands extends TimedCommand { * @throws Exception */ @CliCommand("git issuebranches") - @SuppressWarnings("deprecation") public Table issuebranches(@CliOption(key = { "" }, mandatory = true) String projectName, @CliOption(key = "resolved", unspecifiedDefaultValue = "false", specifiedDefaultValue = "true") Boolean resolved) throws Exception { diff --git a/release-tools/src/main/java/org/springframework/data/release/git/GitOperations.java b/release-tools/src/main/java/org/springframework/data/release/git/GitOperations.java index 3ff8b7e..9fe3beb 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/GitOperations.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/GitOperations.java @@ -294,7 +294,8 @@ public class GitOperations { Assert.notNull(project, "Project must not be null!"); - IssueTracker tracker = issueTracker.getPluginFor(project); + IssueTracker tracker = issueTracker.getRequiredPluginFor(project, + () -> String.format("No issue tracker found for project %!", project)); return doWithGit(project, git -> { @@ -410,7 +411,8 @@ public class GitOperations { Assert.hasText(summary, "Summary must not be null or empty!"); Project project = module.getProject(); - IssueTracker tracker = issueTracker.getPluginFor(project); + IssueTracker tracker = issueTracker.getRequiredPluginFor(project, + () -> String.format("No issue tracker found for project %s!", project)); Ticket ticket = tracker.getReleaseTicketFor(module); Commit commit = new Commit(ticket, summary, details); @@ -665,7 +667,10 @@ public class GitOperations { private String calculateTrigger(ModuleIteration module, String summary) { Project project = module.getProject(); - Ticket releaseTicket = issueTracker.getPluginFor(project).getReleaseTicketFor(module); + Ticket releaseTicket = issueTracker + .getRequiredPluginFor(project, () -> String.format("No issue tracker found for project %!", project))// + .getReleaseTicketFor(module); + return String.format("%s - %s", releaseTicket.getId(), summary); } diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java index 7ada355..224ca1a 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java @@ -119,6 +119,8 @@ class IssueTrackerCommands extends TimedCommand { } private IssueTracker getTrackerFor(ModuleIteration moduleIteration) { - return tracker.getPluginFor(moduleIteration.getProject()); + + return tracker.getRequiredPluginFor(moduleIteration.getProject(), + () -> String.format("No issue tracker found for module %!", moduleIteration)); } } diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/github/GitHub.java b/release-tools/src/main/java/org/springframework/data/release/issues/github/GitHub.java index 06afb10..67e6a28 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/github/GitHub.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/github/GitHub.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Stream; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -78,7 +77,6 @@ class GitHub implements IssueTracker { * @param logger * @param properties */ - @Autowired public GitHub(@Qualifier("tracker") RestOperations operations, Logger logger, GitHubProperties properties) { this.operations = operations; diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/jira/Jira.java b/release-tools/src/main/java/org/springframework/data/release/issues/jira/Jira.java index 2584d40..4da29f5 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/jira/Jira.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/jira/Jira.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -33,7 +32,6 @@ import org.springframework.core.ParameterizedTypeReference; import org.springframework.data.release.issues.Changelog; import org.springframework.data.release.issues.Ticket; import org.springframework.data.release.issues.Tickets; -import org.springframework.data.release.issues.jira.JiraIssue.Component; import org.springframework.data.release.issues.jira.JiraIssue.Fields; import org.springframework.data.release.issues.jira.JiraIssue.Resolution; import org.springframework.data.release.issues.jira.JiraIssue.Status; @@ -46,6 +44,7 @@ import org.springframework.data.release.utils.Logger; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Component; import org.springframework.util.Assert; import org.springframework.web.client.RestOperations; import org.springframework.web.util.UriTemplate; @@ -54,7 +53,7 @@ import org.springframework.web.util.UriTemplate; * @author Oliver Gierke * @author Mark Paluch */ -@org.springframework.stereotype.Component +@Component class Jira implements JiraConnector { private static final String BASE_URI = "{jiraBaseUrl}/rest/api/2"; @@ -77,7 +76,6 @@ class Jira implements JiraConnector { * @param logger * @param jiraProperties */ - @Autowired public Jira(@Qualifier("tracker") RestOperations operations, Logger logger, JiraProperties jiraProperties) { this.operations = operations; @@ -177,8 +175,8 @@ class Jira implements JiraConnector { JiraIssues issues = execute(trainIteration.toString(), query, headers, jiraIssues -> { jiraIssues.stream().// - filter(jiraIssue -> !jiraIssue.wasBackportedFrom(trainIteration.getTrain())). // - forEach(jiraIssue -> tickets.add(toTicket(jiraIssue))); + filter(jiraIssue -> !jiraIssue.wasBackportedFrom(trainIteration.getTrain())). // + forEach(jiraIssue -> tickets.add(toTicket(jiraIssue))); }); return new Tickets(tickets, issues.getTotal()); @@ -199,8 +197,8 @@ class Jira implements JiraConnector { JiraIssues issues = execute(moduleIteration.toString(), query, headers, jiraIssues -> { jiraIssues.stream().// - filter(jiraIssue -> !jiraIssue.wasBackportedFrom(moduleIteration.getTrain())). // - forEach(jiraIssue -> tickets.add(toTicket(jiraIssue))); + filter(jiraIssue -> !jiraIssue.wasBackportedFrom(moduleIteration.getTrain())). // + forEach(jiraIssue -> tickets.add(toTicket(jiraIssue))); }); return new Tickets(tickets, issues.getTotal()); @@ -246,9 +244,9 @@ class Jira implements JiraConnector { List versionsForModuleIteration = new ArrayList<>(); getReleaseVersions(moduleIteration.toString(), moduleIteration.getProjectKey(), httpHeaders, releaseVersions -> { releaseVersions.stream(). // - filter(jiraReleaseVersion -> jiraReleaseVersion.hasSameNameAs(jiraVersion)). // - findFirst(). // - ifPresent(jiraReleaseVersion -> versionsForModuleIteration.add(jiraReleaseVersion)); + filter(jiraReleaseVersion -> jiraReleaseVersion.hasSameNameAs(jiraVersion)). // + findFirst(). // + ifPresent(jiraReleaseVersion -> versionsForModuleIteration.add(jiraReleaseVersion)); }); return versionsForModuleIteration.stream().findFirst(); @@ -440,8 +438,8 @@ class Jira implements JiraConnector { Fields fields = jiraIssue.getFields(); Optional component = jiraComponents.findComponent(INFRASTRUCTURE_COMPONENT_NAME); - component.ifPresent( - jiraComponent -> fields.setComponents(Collections.singletonList(Component.of(jiraComponent.getName())))); + component.ifPresent(jiraComponent -> fields.setComponents(Collections + .singletonList(org.springframework.data.release.issues.jira.JiraIssue.Component.of(jiraComponent.getName())))); return jiraIssue; } diff --git a/release-tools/src/main/java/org/springframework/data/release/misc/ReleaseOperations.java b/release-tools/src/main/java/org/springframework/data/release/misc/ReleaseOperations.java index 645003d..fce7397 100644 --- a/release-tools/src/main/java/org/springframework/data/release/misc/ReleaseOperations.java +++ b/release-tools/src/main/java/org/springframework/data/release/misc/ReleaseOperations.java @@ -72,7 +72,10 @@ public class ReleaseOperations { for (ModuleIteration module : iteration) { - final Changelog changelog = trackers.getPluginFor(module.getProject()).getChangelogFor(module); + Changelog changelog = trackers + .getRequiredPluginFor(module.getProject(), + () -> String.format("No issue tracker found for project %!", module.getProject()))// + .getChangelogFor(module); for (String location : CHANGELOG_LOCATIONS) { diff --git a/release-tools/src/main/java/org/springframework/data/release/model/Version.java b/release-tools/src/main/java/org/springframework/data/release/model/Version.java index f1ff92b..1ea2452 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/Version.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/Version.java @@ -25,8 +25,8 @@ public class Version implements Comparable { */ private Version(int... parts) { - Assert.notNull(parts); - Assert.isTrue(parts.length > 0 && parts.length < 5); + Assert.notNull(parts, "Parts must not be null!"); + Assert.isTrue(parts.length > 0 && parts.length < 5, "We need at least 1 at most 4 parts!"); this.major = parts[0]; this.minor = parts.length > 1 ? parts[1] : 0; @@ -51,7 +51,7 @@ public class Version implements Comparable { */ public static Version parse(String version) { - Assert.hasText(version); + Assert.hasText(version, "Version must not be null or empty!"); String[] parts = version.trim().split("\\."); int[] intParts = new int[parts.length]; diff --git a/release-tools/src/test/java/org/springframework/data/release/AbstractIntegrationTests.java b/release-tools/src/test/java/org/springframework/data/release/AbstractIntegrationTests.java index ccb79c1..64bb7d8 100644 --- a/release-tools/src/test/java/org/springframework/data/release/AbstractIntegrationTests.java +++ b/release-tools/src/test/java/org/springframework/data/release/AbstractIntegrationTests.java @@ -16,7 +16,7 @@ package org.springframework.data.release; import org.junit.runner.RunWith; -import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -25,5 +25,5 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; */ @ActiveProfiles({ "local", "test" }) @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = Application.class) +@SpringBootTest(classes = Application.class) public abstract class AbstractIntegrationTests {}