Skip to content

Commit

Permalink
[chore] parse project version earlier
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmiray committed Jul 24, 2021
1 parent da50ad8 commit 50abfa2
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,7 @@
import org.jreleaser.model.JReleaserContext;
import org.jreleaser.model.JReleaserException;
import org.jreleaser.model.JReleaserModel;
import org.jreleaser.model.Project;
import org.jreleaser.util.Constants;
import org.jreleaser.util.JReleaserLogger;
import org.jreleaser.util.JavaModuleVersion;
import org.jreleaser.util.Version;

import java.nio.file.Path;
import java.util.List;
Expand Down Expand Up @@ -97,54 +93,11 @@ public static JReleaserModel resolveModel(JReleaserLogger logger, Path configFil

private static void report(JReleaserContext context) {
String version = context.getModel().getProject().getVersion();
parseVersion(context.getModel().getProject());
context.getModel().getProject().parseVersion();

context.getLogger().info("Project version set to {}", version);
context.getLogger().info("Release is{}snapshot", context.getModel().getProject().isSnapshot() ? " " : " not ");
context.getLogger().info("Timestamp is {}", context.getModel().getTimestamp());
context.getLogger().info("HEAD is at {}", context.getModel().getCommit().getShortHash());
}

private static void parseVersion(Project project) {
switch (project.getVersionPattern()) {
case SEMVER: {
try {
Version parsedVersion = Version.of(project.getVersion());
project.addExtraProperty(Constants.KEY_VERSION_MAJOR, parsedVersion.getMajor());
if (parsedVersion.hasMinor()) {
project.addExtraProperty(Constants.KEY_VERSION_MINOR, parsedVersion.getMinor());
}
if (parsedVersion.hasPatch()) {
project.addExtraProperty(Constants.KEY_VERSION_PATCH, parsedVersion.getPatch());
}
if (parsedVersion.hasTag()) {
project.addExtraProperty(Constants.KEY_VERSION_TAG, parsedVersion.getTag());
}
if (parsedVersion.hasBuild()) {
project.addExtraProperty(Constants.KEY_VERSION_BUILD, parsedVersion.getBuild());
}
} catch (IllegalArgumentException e) {
throw new JReleaserException("Version '" + project.getVersion() + "' does not follow the semver spec", e);
}
}
break;
case JAVA_MODULE: {
try {
JavaModuleVersion parsedVersion = JavaModuleVersion.of(project.getVersion());
project.addExtraProperty(Constants.KEY_VERSION_NUMBER, parsedVersion.getVersion());
if (parsedVersion.hasPrerelease()) {
project.addExtraProperty(Constants.KEY_VERSION_PRERELEASE, parsedVersion.getPrerelease());
}
if (parsedVersion.hasBuild()) {
project.addExtraProperty(Constants.KEY_VERSION_BUILD, parsedVersion.getBuild());
}
} catch (IllegalArgumentException e) {
throw new JReleaserException("Version '" + project.getVersion() + "' does not follow the Java module spec", e);
}
}
break;
default:
// noop
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,7 @@ public Map<String, Object> props(JReleaserModel model) {
if (jv.hasBuild()) props.put(Constants.KEY_PROJECT_JAVA_VERSION_BUILD, jv.getBuild());
}

project.parseVersion();
props.putAll(project.getResolvedExtraProperties());

String osName = PlatformUtils.getOsDetector().get(OsDetector.DETECTED_NAME);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ private void fillProjectProperties(Map<String, Object> props, Project project) {
if (jv.hasBuild()) props.put(Constants.KEY_PROJECT_JAVA_VERSION_BUILD, jv.getBuild());
}

project.parseVersion();
props.putAll(project.getResolvedExtraProperties());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import org.jreleaser.util.Constants;
import org.jreleaser.util.Env;
import org.jreleaser.util.JavaModuleVersion;
import org.jreleaser.util.MustacheUtils;
import org.jreleaser.util.OsDetector;
import org.jreleaser.util.PlatformUtils;
Expand Down Expand Up @@ -313,6 +314,53 @@ public Map<String, Object> asMap(boolean full) {
return map;
}

public void parseVersion() {
switch (getVersionPattern()) {
case SEMVER: {
try {
Version parsedVersion = Version.of(getVersion());
StringBuilder vn = new StringBuilder().append(parsedVersion.getMajor());
addExtraProperty(Constants.KEY_VERSION_MAJOR, parsedVersion.getMajor());
if (parsedVersion.hasMinor()) {
vn.append(".").append(parsedVersion.getMinor());
addExtraProperty(Constants.KEY_VERSION_MINOR, parsedVersion.getMinor());
}
if (parsedVersion.hasPatch()) {
vn.append(".").append(parsedVersion.getPatch());
addExtraProperty(Constants.KEY_VERSION_PATCH, parsedVersion.getPatch());
}
addExtraProperty(Constants.KEY_VERSION_NUMBER, vn.toString());
if (parsedVersion.hasTag()) {
addExtraProperty(Constants.KEY_VERSION_TAG, parsedVersion.getTag());
}
if (parsedVersion.hasBuild()) {
addExtraProperty(Constants.KEY_VERSION_BUILD, parsedVersion.getBuild());
}
} catch (IllegalArgumentException e) {
throw new JReleaserException("Version '" + getVersion() + "' does not follow the semver spec", e);
}
}
break;
case JAVA_MODULE: {
try {
JavaModuleVersion parsedVersion = JavaModuleVersion.of(getVersion());
addExtraProperty(Constants.KEY_VERSION_NUMBER, parsedVersion.getVersion());
if (parsedVersion.hasPrerelease()) {
addExtraProperty(Constants.KEY_VERSION_PRERELEASE, parsedVersion.getPrerelease());
}
if (parsedVersion.hasBuild()) {
addExtraProperty(Constants.KEY_VERSION_BUILD, parsedVersion.getBuild());
}
} catch (IllegalArgumentException e) {
throw new JReleaserException("Version '" + getVersion() + "' does not follow the Java module spec", e);
}
}
break;
default:
// noop
}
}

public static class Snapshot implements Domain {
private Boolean enabled;
private String pattern;
Expand Down Expand Up @@ -436,6 +484,7 @@ public Map<String, Object> props(JReleaserModel model) {
if (jv.hasBuild()) props.put(Constants.KEY_PROJECT_JAVA_VERSION_BUILD, jv.getBuild());
}

project.parseVersion();
props.putAll(project.getResolvedExtraProperties());

String osName = PlatformUtils.getOsDetector().get(OsDetector.DETECTED_NAME);
Expand Down

0 comments on commit 50abfa2

Please sign in to comment.