diff --git a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java index 4631f350..62e99b94 100644 --- a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java +++ b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java @@ -206,6 +206,27 @@ public class ProjectVersion implements Comparable, Serializable int numberOfHyphens = splitByHyphens - 1; int indexOfFirstHyphen = version.indexOf("-"); boolean buildSnapshot = version.endsWith("BUILD-SNAPSHOT"); + + String[] splitVersion = StringUtils.delimitedListToStringArray(version, "."); + boolean newVersionSchema = splitVersion.length == 3; + for (int i = 0; i < splitVersion.length && newVersionSchema; i++) { + try { + int v = Integer.parseInt(splitVersion[i]); + if (i == 0) { + newVersionSchema = v == 3; + } + else if (i == 1) { + newVersionSchema = v >= 1; + } + } + catch (Exception e) { + newVersionSchema = false; + } + } + if (newVersionSchema) { + SplitVersion v = SplitVersion.hyphen(splitVersion); + return v; + } if (numberOfHyphens == 1 && !buildSnapshot || (numberOfHyphens > 1 && buildSnapshot)) { // Dysprosium or 1.0.0 diff --git a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java index d1ae92fc..4ea71a0f 100644 --- a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java +++ b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java @@ -221,6 +221,10 @@ public class ProjectVersionTests { then(projectVersion(version).postReleaseSnapshotVersion()) .isEqualTo("1.0.2-SNAPSHOT"); + + version = "3.1.0"; + then(projectVersion(version).postReleaseSnapshotVersion()) + .isEqualTo("3.1.1-SNAPSHOT"); } @Test @@ -286,9 +290,9 @@ public class ProjectVersionTests { String version = "1.0.1-SR1"; then(projectVersion(version).isServiceRelease()).isTrue(); - + // String newServiceReleaseVersion = "2020.0.1"; - + // then(projectVersion(newServiceReleaseVersion).isServiceRelease()).isTrue(); newServiceReleaseVersion = "3.0.1";