Skip to content

Commit ae8cb44

Browse files
Revert "update dependencies and refactor code (#323)" (#329)
This reverts commit af08a65.
1 parent 884d2db commit ae8cb44

File tree

8 files changed

+163
-235
lines changed

8 files changed

+163
-235
lines changed

multiapps-common/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<artifactId>commons-lang3</artifactId>
3030
</dependency>
3131
<dependency>
32-
<groupId>tools.jackson.core</groupId>
32+
<groupId>com.fasterxml.jackson.core</groupId>
3333
<artifactId>jackson-databind</artifactId>
3434
</dependency>
3535
<dependency>

multiapps-mta/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<artifactId>commons-collections4</artifactId>
2222
</dependency>
2323
<dependency>
24-
<groupId>org.semver4j</groupId>
24+
<groupId>com.vdurmont</groupId>
2525
<artifactId>semver4j</artifactId>
2626
</dependency>
2727
<dependency>

multiapps-mta/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
requires org.apache.commons.collections4;
3030
requires org.apache.commons.io;
3131
requires org.apache.commons.lang3;
32-
requires org.semver4j;
32+
requires semver4j;
3333
requires org.apache.commons.compress;
3434

3535
requires static java.compiler;

multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/model/Version.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44

55
import org.cloudfoundry.multiapps.common.ParsingException;
66
import org.cloudfoundry.multiapps.mta.Messages;
7+
import org.cloudfoundry.multiapps.mta.parsers.PartialVersionConverter;
78

8-
import org.semver4j.Semver;
9-
import org.semver4j.SemverException;
9+
import com.vdurmont.semver4j.Semver;
10+
import com.vdurmont.semver4j.Semver.SemverType;
11+
import com.vdurmont.semver4j.SemverException;
1012

1113
public class Version implements Comparable<Version> {
1214

15+
private static final PartialVersionConverter PARTIAL_VERSION_CONVERTER = new PartialVersionConverter();
16+
1317
private final Semver version;
1418

1519
private Version(Semver version) {
@@ -28,12 +32,21 @@ public int getPatch() {
2832
return version.getPatch();
2933
}
3034

35+
public String getBuild() {
36+
return version.getBuild();
37+
}
38+
39+
public String[] getSuffixTokens() {
40+
return version.getSuffixTokens();
41+
}
42+
3143
public static Version parseVersion(String versionString) {
32-
var version = Semver.coerce(versionString);
33-
if (version == null) {
34-
throw new ParsingException(MessageFormat.format(Messages.UNABLE_TO_PARSE_VERSION, versionString));
44+
try {
45+
String fullVersionString = PARTIAL_VERSION_CONVERTER.convertToFullVersionString(versionString);
46+
return new Version(new Semver(fullVersionString, SemverType.NPM));
47+
} catch (SemverException e) {
48+
throw new ParsingException(e, Messages.UNABLE_TO_PARSE_VERSION, versionString);
3549
}
36-
return new Version(version);
3750
}
3851

3952
@Override
@@ -43,7 +56,7 @@ public int hashCode() {
4356

4457
@Override
4558
public String toString() {
46-
return version.toString();
59+
return version.getValue();
4760
}
4861

4962
@Override
@@ -68,8 +81,7 @@ public boolean equals(Object obj) {
6881

6982
public boolean satisfies(String requirement) {
7083
try {
71-
// The second parameter is preventing the default behavior of Semver to treat the suffix as a pre-release tag.
72-
return version.satisfies(requirement, true);
84+
return version.satisfies(requirement);
7385
} catch (SemverException e) {
7486
throw new IllegalArgumentException(MessageFormat.format(Messages.UNABLE_TO_PARSE_VERSION_REQUIREMENT, requirement));
7587
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package org.cloudfoundry.multiapps.mta.parsers;
2+
3+
import com.vdurmont.semver4j.Semver;
4+
import com.vdurmont.semver4j.Semver.SemverType;
5+
6+
public class PartialVersionConverter {
7+
8+
private static final String VERSION_STRING_TEMPLATE = "%s.%s.%s%s%s";
9+
private static final String VERSION_SUFFIX_STRING_TEMPLATE = "-%s";
10+
private static final String VERSION_BUILD_STRING_TEMPLATE = "+%s";
11+
private static final String DEFAULT_VERSION_SUFFIX = "";
12+
13+
public String convertToFullVersionString(String partialVersionString) {
14+
Semver partialVersion = new Semver(partialVersionString, SemverType.LOOSE);
15+
Integer majorVersion = partialVersion.getMajor();
16+
Integer minorVersion = partialVersion.getMinor();
17+
Integer patchVersion = partialVersion.getPatch();
18+
19+
if (minorVersion == null) {
20+
minorVersion = 0;
21+
}
22+
if (patchVersion == null) {
23+
patchVersion = 0;
24+
}
25+
return buildVersionString(majorVersion, minorVersion, patchVersion, partialVersion.getSuffixTokens(), partialVersion.getBuild());
26+
}
27+
28+
private String buildVersionString(int major, int minor, int patch, String[] suffixTokens, String buildVersion) {
29+
String formattedSuffixTokens = formatSuffixTokens(suffixTokens);
30+
String formattedBuildVersion = formatBuildVersion(buildVersion);
31+
return String.format(VERSION_STRING_TEMPLATE, major, minor, patch, formattedSuffixTokens, formattedBuildVersion);
32+
}
33+
34+
private String formatSuffixTokens(String[] suffixTokens) {
35+
if (suffixTokens.length == 0) {
36+
return DEFAULT_VERSION_SUFFIX;
37+
}
38+
return String.format(VERSION_SUFFIX_STRING_TEMPLATE, String.join(".", suffixTokens));
39+
}
40+
41+
private String formatBuildVersion(String buildVersion) {
42+
if (buildVersion == null) {
43+
return DEFAULT_VERSION_SUFFIX;
44+
}
45+
return String.format(VERSION_BUILD_STRING_TEMPLATE, buildVersion);
46+
}
47+
48+
}

multiapps-mta/src/test/java/org/cloudfoundry/multiapps/mta/model/VersionTest.java

Lines changed: 0 additions & 205 deletions
This file was deleted.

0 commit comments

Comments
 (0)