mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Platform: build numbers: support arbitrary number of components in branch-based build number as well
This commit is contained in:
@@ -34,7 +34,7 @@ public class BuildNumber implements Comparable<BuildNumber> {
|
||||
private static final String BUILD_NUMBER = "__BUILD_NUMBER__";
|
||||
private static final String STAR = "*";
|
||||
private static final String SNAPSHOT = "SNAPSHOT";
|
||||
private static final String FALLBACK_VERSION = "2999.1.SNAPSHOT";
|
||||
private static final String FALLBACK_VERSION = "9999.SNAPSHOT";
|
||||
|
||||
public static final int SNAPSHOT_VALUE = Integer.MAX_VALUE;
|
||||
|
||||
@@ -117,49 +117,24 @@ public class BuildNumber implements Comparable<BuildNumber> {
|
||||
if (baselineVersionSeparator > 0) {
|
||||
String baselineVersionString = code.substring(0, baselineVersionSeparator);
|
||||
if (baselineVersionString.trim().isEmpty()) return null;
|
||||
try {
|
||||
baselineVersion = Integer.parseInt(baselineVersionString);
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
throw new RuntimeException("Invalid version number: " + version + "; plugin name: " + name);
|
||||
|
||||
List<String> stringComponents = StringUtil.split(code, ".");
|
||||
TIntArrayList intComponentsList = new TIntArrayList();
|
||||
|
||||
for (String stringComponent : stringComponents) {
|
||||
int comp = parseBuildNumber(version, stringComponent, name);
|
||||
intComponentsList.add(comp);
|
||||
if (comp == SNAPSHOT_VALUE) break;
|
||||
}
|
||||
|
||||
if (isYearBased(baselineVersion)) {
|
||||
List<String> stringComponents = StringUtil.split(code, ".");
|
||||
TIntArrayList intComponentsList = new TIntArrayList();
|
||||
|
||||
for (String stringComponent : stringComponents) {
|
||||
int comp = parseBuildNumber(version, stringComponent, name);
|
||||
intComponentsList.add(comp);
|
||||
if (comp == SNAPSHOT_VALUE) break;
|
||||
}
|
||||
|
||||
int[] intComponents = intComponentsList.toNativeArray();
|
||||
int[] intComponents = intComponentsList.toNativeArray();
|
||||
if (isYearBased(intComponents[0])) {
|
||||
if (intComponents[1] != SNAPSHOT_VALUE) {
|
||||
intComponents[1] = normalizedYearRevision(intComponents);
|
||||
}
|
||||
|
||||
return new BuildNumber(productCode, intComponents);
|
||||
}
|
||||
else {
|
||||
code = code.substring(baselineVersionSeparator + 1);
|
||||
|
||||
int minorBuildSeparator = code.indexOf('.'); // allow <BuildNumber>.<BuildAttemptNumber> skipping BuildAttemptNumber
|
||||
|
||||
Integer attemptInfo = null;
|
||||
if (minorBuildSeparator > 0) {
|
||||
attemptInfo = parseBuildNumber(version, code.substring(minorBuildSeparator + 1), name);
|
||||
code = code.substring(0, minorBuildSeparator);
|
||||
}
|
||||
buildNumber = parseBuildNumber(version, code, name);
|
||||
|
||||
if (attemptInfo != null) {
|
||||
return new BuildNumber(productCode, baselineVersion, buildNumber, attemptInfo);
|
||||
}
|
||||
else {
|
||||
return new BuildNumber(productCode, baselineVersion, buildNumber);
|
||||
}
|
||||
}
|
||||
return new BuildNumber(productCode, intComponents);
|
||||
}
|
||||
else {
|
||||
buildNumber = parseBuildNumber(version, code, name);
|
||||
|
||||
@@ -40,6 +40,9 @@ public class BuildNumberTest {
|
||||
assertParsed(BuildNumber.fromString("IU-145.1.2"), 145, 1, false, "IU-145.1.2");
|
||||
assertParsed(BuildNumber.fromString("IU-145.SNAPSHOT"), 145, BuildNumber.SNAPSHOT_VALUE, false, "IU-145.SNAPSHOT");
|
||||
assertParsed(BuildNumber.fromString("IU-145.1.SNAPSHOT"), 145, 1, false, "IU-145.1.SNAPSHOT");
|
||||
|
||||
assertParsed(BuildNumber.fromString("IU-145.1.2.3.4"), 145, 1, false, "IU-145.1.2.3.4");
|
||||
assertParsed(BuildNumber.fromString("IU-145.1000.2000.3000.4000"), 145, 1000, false, "IU-145.1000.2000.3000.4000");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -102,8 +105,11 @@ public class BuildNumberTest {
|
||||
|
||||
assertTrue(BuildNumber.fromString("145.1").compareTo(BuildNumber.fromString("145.*")) < 0);
|
||||
assertTrue(BuildNumber.fromString("145.1.1").compareTo(BuildNumber.fromString("145.*")) < 0);
|
||||
assertTrue(BuildNumber.fromString("145.1.1.1.1").compareTo(BuildNumber.fromString("145.*")) < 0);
|
||||
assertTrue(BuildNumber.fromString("145.1").compareTo(BuildNumber.fromString("146.*")) < 0);
|
||||
assertTrue(BuildNumber.fromString("145.1").compareTo(BuildNumber.fromString("144.*")) > 0);
|
||||
assertTrue(BuildNumber.fromString("145.1.1.1").compareTo(BuildNumber.fromString("145.1.1.1.1")) < 0);
|
||||
assertTrue(BuildNumber.fromString("145.1.1.2").compareTo(BuildNumber.fromString("145.1.1.1.1")) > 0);
|
||||
|
||||
assertTrue(BuildNumber.fromString("145.SNAPSHOT").compareTo(BuildNumber.fromString("145.*")) == 0);
|
||||
assertTrue(BuildNumber.fromString("145.*").compareTo(BuildNumber.fromString("145.SNAPSHOT")) == 0);
|
||||
@@ -123,6 +129,7 @@ public class BuildNumberTest {
|
||||
assertTrue(BuildNumber.fromString("SNAPSHOT").isSnapshot());
|
||||
assertTrue(BuildNumber.fromString("__BUILD_NUMBER__").isSnapshot());
|
||||
assertTrue(BuildNumber.fromString("IU-90.SNAPSHOT").isSnapshot());
|
||||
assertTrue(BuildNumber.fromString("IU-145.1.2.3.4.SNAPSHOT").isSnapshot());
|
||||
|
||||
assertTrue(BuildNumber.fromString("IC-90.*").isSnapshot());
|
||||
assertFalse(BuildNumber.fromString("90.9999999").isSnapshot());
|
||||
@@ -172,10 +179,17 @@ public class BuildNumberTest {
|
||||
|
||||
@Test
|
||||
public void fallbackVersion() throws Exception {
|
||||
assertParsed(BuildNumber.fallback(), 29991, -1, true, "2999.1.SNAPSHOT");
|
||||
assertTrue(BuildNumber.fallback().isYearBased());
|
||||
assertTrue(BuildNumber.fallback().isSnapshot());
|
||||
|
||||
if (false /* we have moved to year-based format*/) {
|
||||
assertParsed(BuildNumber.fallback(), 29991, -1, true, "2999.1.SNAPSHOT");
|
||||
assertTrue(BuildNumber.fallback().isYearBased());
|
||||
assertTrue(BuildNumber.fallback().isSnapshot());
|
||||
}
|
||||
else {
|
||||
assertParsed(BuildNumber.fallback(), 9999, BuildNumber.SNAPSHOT_VALUE, false, "9999.SNAPSHOT");
|
||||
assertFalse(BuildNumber.fallback().isYearBased());
|
||||
assertTrue(BuildNumber.fallback().isSnapshot());
|
||||
}
|
||||
|
||||
assertTrue(BuildNumber.fallback().compareTo(BuildNumber.fromString("7512")) > 0);
|
||||
assertTrue(BuildNumber.fallback().compareTo(BuildNumber.fromString("145")) > 0);
|
||||
assertTrue(BuildNumber.fallback().compareTo(BuildNumber.fromString("145.12")) > 0);
|
||||
|
||||
Reference in New Issue
Block a user