Updated the way fixed versions are analyzed
This commit is contained in:
@@ -54,6 +54,10 @@ public class Releaser {
|
||||
return this.projectPomUpdater.retrieveVersionsFromSCRelease();
|
||||
}
|
||||
|
||||
public Projects fixedVersions() {
|
||||
return this.projectPomUpdater.fixedVersions();
|
||||
}
|
||||
|
||||
public void updateProjectFromScRelease(File project, Projects versions,
|
||||
ProjectVersion versionFromScRelease) {
|
||||
updateProjectFromScRelease(project, versions, versionFromScRelease, ASSERT_SNAPSHOTS);
|
||||
|
||||
@@ -24,7 +24,11 @@ import java.nio.file.SimpleFileVisitor;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -69,6 +73,18 @@ public class ProjectPomUpdater implements ReleaserPropertiesAware {
|
||||
return versions.toProjectVersions();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return map of fixed versions
|
||||
*/
|
||||
public Projects fixedVersions() {
|
||||
Set<ProjectVersion> projectVersions = this.properties.getFixedVersions()
|
||||
.entrySet()
|
||||
.stream()
|
||||
.map(entry -> new ProjectVersion(entry.getKey(), entry.getValue()))
|
||||
.collect(Collectors.toSet());
|
||||
return new Versions(projectVersions).toProjectVersions();
|
||||
}
|
||||
|
||||
/**
|
||||
* For the given root folder (typically the working directory) performs the whole
|
||||
* flow of updating {@code pom.xml} with values from Spring Cloud Release project.
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.cloud.release.internal.pom;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -74,9 +75,7 @@ class Versions {
|
||||
.findFirst().orElse(new ProjectVersion(SPRING_BOOT_PROJECT_NAME, "")).version;
|
||||
this.scBuildVersion = versions.stream().filter(projectVersion -> BUILD_ARTIFACT_ID.equals(projectVersion.projectName))
|
||||
.findFirst().orElse(new ProjectVersion(BUILD_ARTIFACT_ID, "")).version;
|
||||
this.projects = versions.stream()
|
||||
.map(projectVersion -> new Project(projectVersion.projectName, projectVersion.version))
|
||||
.collect(Collectors.toSet());
|
||||
versions.forEach(projectVersion -> setVersion(projectVersion.projectName, projectVersion.version));
|
||||
}
|
||||
|
||||
String versionForProject(String projectName) {
|
||||
@@ -98,8 +97,9 @@ class Versions {
|
||||
}
|
||||
|
||||
Projects toProjectVersions() {
|
||||
return new Projects(this.projects.stream().map(project -> new ProjectVersion(project.name, project.version))
|
||||
.collect(Collectors.toSet()));
|
||||
return this.projects.stream()
|
||||
.map(project -> new ProjectVersion(project.name, project.version))
|
||||
.distinct().collect(Collectors.toCollection(Projects::new));
|
||||
}
|
||||
|
||||
private boolean nameMatches(String projectName, Project project) {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package org.springframework.cloud.release.internal.pom;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.assertj.core.api.BDDAssertions;
|
||||
import org.junit.Test;
|
||||
import org.springframework.cloud.release.internal.ReleaserProperties;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
public class ProjectPomUpdaterTests {
|
||||
|
||||
@Test public void should_convert_fixed_versions_to_updated_fixed_versions() {
|
||||
ReleaserProperties properties = new ReleaserProperties();
|
||||
properties.getFixedVersions().put("spring-cloud-task", "2.0.0.RELEASE");
|
||||
properties.getFixedVersions().put("spring-cloud-openfeign", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-consul", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-zookeeper", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-stream", "Elmhurst.RELEASE");
|
||||
properties.getFixedVersions().put("spring-cloud-config", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-cloudfoundry", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-netflix", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-vault", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-security", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-commons", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-sleuth", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-aws", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-contract", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-release", "Finchley.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-build", "2.0.3.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-bus", "2.0.1.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-function", "1.0.0.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-cloud-starter-build", "Finchley.BUILD-SNAPSHOT");
|
||||
properties.getFixedVersions().put("spring-boot", "2.0.3.RELEASE");
|
||||
properties.getFixedVersions().put("spring-cloud-gateway", "2.0.1.BUILD-SNAPSHOT");
|
||||
ProjectPomUpdater updater = new ProjectPomUpdater(properties);
|
||||
|
||||
Map<String, String> fixedVersions = updater.fixedVersions()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(
|
||||
projectVersion -> projectVersion.projectName,
|
||||
projectVersion -> projectVersion.version));
|
||||
|
||||
BDDAssertions.then(fixedVersions)
|
||||
.containsEntry("spring-boot", "2.0.3.RELEASE")
|
||||
.containsEntry("spring-boot-dependencies", "2.0.3.RELEASE")
|
||||
.containsEntry("spring-boot-starter", "2.0.3.RELEASE")
|
||||
.containsEntry("spring-cloud-build", "2.0.3.BUILD-SNAPSHOT")
|
||||
.containsEntry("spring-cloud-dependencies", "2.0.3.BUILD-SNAPSHOT")
|
||||
.containsEntry("spring-cloud-release", "Finchley.BUILD-SNAPSHOT")
|
||||
.containsEntry("spring-cloud", "Finchley.BUILD-SNAPSHOT");
|
||||
}
|
||||
}
|
||||
@@ -195,9 +195,7 @@ public class SpringReleaser {
|
||||
}
|
||||
|
||||
private Projects projectsToUpdateForFixedVersions() {
|
||||
Projects projectsToUpdate = this.properties.getFixedVersions().entrySet().stream()
|
||||
.map(entry -> new ProjectVersion(entry.getKey(), entry.getValue()))
|
||||
.distinct().collect(Collectors.toCollection(Projects::new));
|
||||
Projects projectsToUpdate = this.releaser.fixedVersions();
|
||||
printSettingVersionFromFixedVersions(projectsToUpdate);
|
||||
return projectsToUpdate;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user