From 7183af82d35341f3fca4e7cf715ea705fc7eb030 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 6 Mar 2017 23:50:15 +0100 Subject: [PATCH] WIP --- .../cloud/release/internal/GitProjectRepo.java | 13 +++++-------- .../cloud/release/internal/PomUpdater.java | 8 +++++++- .../cloud/release/internal/ProjectUpdater.java | 2 +- .../cloud/release/internal/ReleaserProperties.java | 2 +- .../cloud/release/internal/Versions.java | 5 +++++ .../cloud/release/AcceptanceTests.java | 2 +- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/springframework/cloud/release/internal/GitProjectRepo.java b/src/main/java/org/springframework/cloud/release/internal/GitProjectRepo.java index 4313a5a3..8820ca81 100644 --- a/src/main/java/org/springframework/cloud/release/internal/GitProjectRepo.java +++ b/src/main/java/org/springframework/cloud/release/internal/GitProjectRepo.java @@ -61,16 +61,13 @@ class GitProjectRepo { */ File cloneProject(URI projectUri) { try { - File file = new File(projectUri.getPath()); - URI modifiedUri = file.getName().endsWith(File.separator) ? - projectUri : new File(file.getPath() + File.separator).toURI(); - log.debug("Cloning repo from [{}] to [{}]", modifiedUri, this.basedir); - Git git = cloneToBasedir(modifiedUri, this.basedir); + log.info("Cloning repo from [{}] to [{}]", projectUri, this.basedir); + Git git = cloneToBasedir(projectUri, this.basedir); if (git != null) { git.close(); } File clonedRepo = git.getRepository().getWorkTree(); - log.debug("Cloned repo to [{}]", clonedRepo); + log.info("Cloned repo to [{}]", clonedRepo); return clonedRepo; } catch (Exception e) { @@ -85,9 +82,9 @@ class GitProjectRepo { */ void checkout(File project, String branch) { try { - log.debug("Checking out branch [{}] for repo [{}] to [{}]", this.basedir, branch); + log.info("Checking out branch [{}] for repo [{}] to [{}]", this.basedir, branch); checkoutBranch(project, branch); - log.debug("Successfully checked out the branch [{}]", branch); + log.info("Successfully checked out the branch [{}]", branch); } catch (Exception e) { throw new IllegalStateException(e); diff --git a/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java b/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java index e85cbe85..5f912e74 100644 --- a/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java +++ b/src/main/java/org/springframework/cloud/release/internal/PomUpdater.java @@ -53,6 +53,9 @@ class PomUpdater { if (!versions.shouldBeUpdated(model.getArtifactId())) { log.info("Skipping project [{}] since it's not on the list of projects to update", model.getArtifactId()); return false; + } else if (versions.versionAlreadySet(model.getArtifactId(), model.getVersion())) { + log.info("Version has already been set. The project shouldn't be updated."); + return false; } log.info("Project [{}] will have its dependencies updated", model.getArtifactId()); return true; @@ -112,6 +115,9 @@ class PomUpdater { } private boolean updateParentIfPossible(String rootProjectName, Versions versions, Model model) { + if (model.getParent() == null || StringUtils.isEmpty(model.getParent().getVersion())) { + return false; + } String parentArtifactId = model.getParent().getArtifactId(); String version = versions.versionForProject(parentArtifactId); if (StringUtils.isEmpty(version)) { @@ -129,7 +135,7 @@ class PomUpdater { private boolean updateVersionIfPossible(String rootProjectName, Versions versions, Model model) { String version = versions.versionForProject(rootProjectName); - if (StringUtils.isEmpty(version)) { + if (StringUtils.isEmpty(version) || StringUtils.isEmpty(model.getVersion())) { log.warn("There was no version set for project [{}], skipping version setting for module [{}]", rootProjectName, model.getArtifactId()); return false; } diff --git a/src/main/java/org/springframework/cloud/release/internal/ProjectUpdater.java b/src/main/java/org/springframework/cloud/release/internal/ProjectUpdater.java index f354c9ac..77f7769b 100644 --- a/src/main/java/org/springframework/cloud/release/internal/ProjectUpdater.java +++ b/src/main/java/org/springframework/cloud/release/internal/ProjectUpdater.java @@ -45,7 +45,7 @@ public class ProjectUpdater { SCReleasePomParser SCReleasePomParser = new SCReleasePomParser(clonedScRelease); Versions versions = SCReleasePomParser.allVersions(); if (!this.pomUpdater.shouldProjectBeUpdated(projectRoot, versions)) { - log.info("Project is not on the list of projects to be updated. Skipping."); + log.info("Skipping project updating"); return; } File rootPom = new File(projectRoot, "pom.xml"); diff --git a/src/main/java/org/springframework/cloud/release/internal/ReleaserProperties.java b/src/main/java/org/springframework/cloud/release/internal/ReleaserProperties.java index 3ec08fdc..1984a8eb 100644 --- a/src/main/java/org/springframework/cloud/release/internal/ReleaserProperties.java +++ b/src/main/java/org/springframework/cloud/release/internal/ReleaserProperties.java @@ -11,7 +11,7 @@ public class ReleaserProperties { /** * URL to Spring Cloud Release Git repository */ - private String springCloudReleaseGitUrl = "https://github.com/spring-cloud/spring-cloud-release.git"; + private String springCloudReleaseGitUrl = "https://github.com/spring-cloud/spring-cloud-release"; /** * Where should the Spring Cloud Release repo get cloned to. If {@code null} defaults to a temporary directory diff --git a/src/main/java/org/springframework/cloud/release/internal/Versions.java b/src/main/java/org/springframework/cloud/release/internal/Versions.java index 6fce0e10..44e4c88e 100644 --- a/src/main/java/org/springframework/cloud/release/internal/Versions.java +++ b/src/main/java/org/springframework/cloud/release/internal/Versions.java @@ -51,6 +51,11 @@ class Versions { return this.projects.stream() .anyMatch(project -> project.name.equals(projectName)); } + + boolean versionAlreadySet(String projectName, String version) { + String versionForProject = versionForProject(projectName); + return version.equals(versionForProject); + } } /** diff --git a/src/test/java/org/springframework/cloud/release/AcceptanceTests.java b/src/test/java/org/springframework/cloud/release/AcceptanceTests.java index 4dbdd71c..ce083ea7 100644 --- a/src/test/java/org/springframework/cloud/release/AcceptanceTests.java +++ b/src/test/java/org/springframework/cloud/release/AcceptanceTests.java @@ -73,7 +73,7 @@ public class AcceptanceTests { private ReleaserProperties releaserProperties() throws URISyntaxException { ReleaserProperties releaserProperties = new ReleaserProperties(); - releaserProperties.setSpringCloudReleaseGitUrl(file("/projects/spring-cloud-release/").getPath()); + releaserProperties.setSpringCloudReleaseGitUrl(file("/projects/spring-cloud-release/").toURI().getPath()); return releaserProperties; }