mirror of
https://github.com/ethauvin/bld.git
synced 2025-04-26 08:37:11 -07:00
Preserve the project's version as a semantic version number. Created two version of parsing version string, one falls back to generic version, the other returns VersionNumber.UNKNOWN when parsing fails like in previous bld versions.
This commit is contained in:
parent
fa0ac43828
commit
d605ac1242
17 changed files with 169 additions and 60 deletions
|
@ -45,16 +45,16 @@ public class TestDependencySet {
|
|||
@Test
|
||||
void testAddAll() {
|
||||
var set1 = new DependencySet()
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-server", VersionNumber.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty.toolchain", "jetty-jakarta-servlet-api", VersionNumber.parse("5.0.2")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-http", VersionNumber.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-io", VersionNumber.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-util", VersionNumber.parse("11.0.14")))
|
||||
.include(new Dependency("org.slf4j", "slf4j-api", VersionNumber.parse("2.0.5")));
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-server", Version.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty.toolchain", "jetty-jakarta-servlet-api", Version.parse("5.0.2")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-http", Version.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-io", Version.parse("11.0.14")))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-util", Version.parse("11.0.14")))
|
||||
.include(new Dependency("org.slf4j", "slf4j-api", Version.parse("2.0.5")));
|
||||
|
||||
var set2 = new DependencySet()
|
||||
.include(new Dependency("org.slf4j", "slf4j-simple", VersionNumber.parse("2.0.6")))
|
||||
.include(new Dependency("org.slf4j", "slf4j-api", VersionNumber.parse("2.0.6")));
|
||||
.include(new Dependency("org.slf4j", "slf4j-simple", Version.parse("2.0.6")))
|
||||
.include(new Dependency("org.slf4j", "slf4j-api", Version.parse("2.0.6")));
|
||||
|
||||
var set_union1 = new DependencySet(set1);
|
||||
set_union1.addAll(set2);
|
||||
|
|
73
src/test/java/rife/bld/dependencies/TestVersion.java
Normal file
73
src/test/java/rife/bld/dependencies/TestVersion.java
Normal file
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
* Copyright 2001-2023 Geert Bevin (gbevin[remove] at uwyn dot com)
|
||||
* Licensed under the Apache License, Version 2.0 (the "License")
|
||||
*/
|
||||
package rife.bld.dependencies;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class TestVersion {
|
||||
@Test
|
||||
void testParsing() {
|
||||
assertEquals(Version.parse("1"), new VersionNumber(1, 0, 0, null));
|
||||
assertEquals(Version.parse("1.0"), new VersionNumber(1, 0, 0, null));
|
||||
assertEquals(Version.parse("1.0.0"), new VersionNumber(1, 0, 0, null));
|
||||
|
||||
assertEquals(Version.parse("1.2"), new VersionNumber(1, 2, 0, null));
|
||||
assertEquals(Version.parse("1.2.3"), new VersionNumber(1, 2, 3, null));
|
||||
|
||||
assertEquals(Version.parse("1-rc1-SNAPSHOT"), new VersionNumber(1, 0, 0, "rc1-SNAPSHOT"));
|
||||
assertEquals(Version.parse("1.2-rc1-SNAPSHOT"), new VersionNumber(1, 2, 0, "rc1-SNAPSHOT"));
|
||||
assertEquals(Version.parse("1.2.3-rc1-SNAPSHOT"), new VersionNumber(1, 2, 3, "rc1-SNAPSHOT"));
|
||||
|
||||
assertEquals(Version.parse("11.22"), new VersionNumber(11, 22, 0, null));
|
||||
assertEquals(Version.parse("11.22.33"), new VersionNumber(11, 22, 33, null));
|
||||
assertEquals(Version.parse("11.22.33-eap"), new VersionNumber(11, 22, 33, "eap"));
|
||||
|
||||
assertEquals(Version.parse("11.fortyfour"), new VersionNumber(11, 0, 0, "fortyfour"));
|
||||
|
||||
assertEquals(Version.parse("1.0.0.0"), new VersionNumber(1, 0, 0, "0"));
|
||||
assertEquals(Version.parse("1.0.0.0.0.0.0"), new VersionNumber(1, 0, 0, "0.0.0.0"));
|
||||
assertEquals(Version.parse("1.2.3.4-rc1-SNAPSHOT"), new VersionNumber(1, 2, 3, "4-rc1-SNAPSHOT"));
|
||||
assertEquals(Version.parse("1.2.3.4.rc1-SNAPSHOT"), new VersionNumber(1, 2, 3, "4.rc1-SNAPSHOT"));
|
||||
|
||||
assertEquals(Version.parse("1.2.3_4"), new VersionNumber(1, 2, 0, "3_4"));
|
||||
assertEquals(Version.parse("1.54b"), new VersionNumber(1, 0, 0, "54b"));
|
||||
|
||||
assertEquals(Version.parse("2024-02"), new VersionNumber(2024, null, null, "02"));
|
||||
assertEquals(Version.parse("2.0-05"), new VersionNumber(2, 0, null, "05"));
|
||||
assertEquals(Version.parse("2024.02"), new VersionNumber(2024, null, null, "02", "."));
|
||||
assertEquals(Version.parse("2.0.05"), new VersionNumber(2, 0, null, "05", "."));
|
||||
|
||||
assertEquals(Version.parse("v3-rev20240514-2.0.0"), new VersionGeneric("v3-rev20240514-2.0.0"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidParsed() {
|
||||
assertEquals(Version.parse(null), VersionNumber.UNKNOWN);
|
||||
assertEquals(Version.parse(""), VersionNumber.UNKNOWN);
|
||||
assertEquals(Version.parse("foo"), new VersionGeneric("foo"));
|
||||
assertEquals(Version.parse("1."), new VersionGeneric("1."));
|
||||
assertEquals(Version.parse("1.2.3-"), new VersionGeneric("1.2.3-"));
|
||||
assertEquals(Version.parse("."), new VersionGeneric("."));
|
||||
assertEquals(Version.parse("_"), new VersionGeneric("_"));
|
||||
assertEquals(Version.parse("-"), new VersionGeneric("-"));
|
||||
assertEquals(Version.parse(".1"), new VersionGeneric(".1"));
|
||||
assertEquals(Version.parse("a.1"), new VersionGeneric("a.1"));
|
||||
assertEquals(Version.parse("1_2"), new VersionGeneric("1_2"));
|
||||
assertEquals(Version.parse("1_2_2"), new VersionGeneric("1_2_2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testStringRepresentation() {
|
||||
assertEquals(Version.parse("1.0").toString(), "1.0");
|
||||
assertEquals(Version.parse("1.2.3").toString(), "1.2.3");
|
||||
assertEquals(Version.parse("1.2.3-4").toString(), "1.2.3-4");
|
||||
assertEquals(Version.parse("1.2.3.4").toString(), "1.2.3.4");
|
||||
assertEquals(Version.parse("1-rc-1").toString(), "1-rc-1");
|
||||
assertEquals(Version.parse("1.2.3-rc-1").toString(), "1.2.3-rc-1");
|
||||
assertEquals(Version.parse("1.2.3.rc-1").toString(), "1.2.3.rc-1");
|
||||
}
|
||||
}
|
|
@ -70,16 +70,16 @@ public class TestVersionNumber {
|
|||
void testInvalidParsed() {
|
||||
assertEquals(VersionNumber.parse(null), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse(""), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("foo"), new VersionGeneric("foo"));
|
||||
assertEquals(VersionNumber.parse("1."), new VersionGeneric("1."));
|
||||
assertEquals(VersionNumber.parse("1.2.3-"), new VersionGeneric("1.2.3-"));
|
||||
assertEquals(VersionNumber.parse("."), new VersionGeneric("."));
|
||||
assertEquals(VersionNumber.parse("_"), new VersionGeneric("_"));
|
||||
assertEquals(VersionNumber.parse("-"), new VersionGeneric("-"));
|
||||
assertEquals(VersionNumber.parse(".1"), new VersionGeneric(".1"));
|
||||
assertEquals(VersionNumber.parse("a.1"), new VersionGeneric("a.1"));
|
||||
assertEquals(VersionNumber.parse("1_2"), new VersionGeneric("1_2"));
|
||||
assertEquals(VersionNumber.parse("1_2_2"), new VersionGeneric("1_2_2"));
|
||||
assertEquals(VersionNumber.parse("foo"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("1."), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("1.2.3-"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("."), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("_"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("-"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse(".1"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("a.1"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("1_2"), VersionNumber.UNKNOWN);
|
||||
assertEquals(VersionNumber.parse("1_2_2"), VersionNumber.UNKNOWN);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -150,13 +150,13 @@ public class TestDependencyTreeOperation {
|
|||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-core", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-jasper", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
operation.dependencies().scope(Scope.test)
|
||||
.include(new Dependency("org.jsoup", "jsoup", new VersionNumber(1,16,1)))
|
||||
.include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5,0,0)))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
|
||||
operation.execute();
|
||||
|
||||
|
@ -306,13 +306,13 @@ public class TestDependencyTreeOperation {
|
|||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-core", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-jasper", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
project.dependencies().scope(Scope.test)
|
||||
.include(new Dependency("org.jsoup", "jsoup", new VersionNumber(1,16,1)))
|
||||
.include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5,0,0)))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
|
||||
var operation = new DependencyTreeOperation()
|
||||
.fromProject(project);
|
||||
|
@ -405,13 +405,13 @@ public class TestDependencyTreeOperation {
|
|||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-core", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("org.apache.tomcat.embed", "tomcat-embed-jasper", new VersionNumber(10,1,12)))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
project.dependencies().scope(Scope.test)
|
||||
.include(new Dependency("org.jsoup", "jsoup", new VersionNumber(1,16,1)))
|
||||
.include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5,0,0)))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("org.eclipse.jetty", "jetty-servlet", new VersionNumber(11,0,15)).exclude("*", "jetty-jakarta-servlet-api"))
|
||||
.include(new Dependency("net.imagej", "ij", VersionNumber.parse("1.54d")));
|
||||
.include(new Dependency("net.imagej", "ij", Version.parse("1.54d")));
|
||||
|
||||
var operation = new DependencyTreeOperation()
|
||||
.fromProject(project);
|
||||
|
|
|
@ -41,7 +41,7 @@ public class TestMetadataBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT")));
|
||||
.version(Version.parse("1.2.3-SNAPSHOT")));
|
||||
assertEquals("""
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metadata modelVersion="1.1.0">
|
||||
|
@ -100,7 +100,7 @@ public class TestMetadataBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT")))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT")))
|
||||
.otherVersions(List.of(new VersionNumber(6,0,1), new VersionNumber(3,0,2), new VersionNumber(1,0,3), new VersionNumber(3,0,2)))
|
||||
.updated(ZonedDateTime.of(2023, 3, 27, 8, 56, 17, 123, ZoneId.of("America/New_York")));
|
||||
assertEquals("""
|
||||
|
@ -129,7 +129,7 @@ public class TestMetadataBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT")))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT")))
|
||||
.snapshot(ZonedDateTime.of(2023, 3, 27, 8, 56, 17, 123, ZoneId.of("America/New_York")), 5);
|
||||
assertEquals("""
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -156,7 +156,7 @@ public class TestMetadataBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT")))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT")))
|
||||
.snapshot(moment, 5)
|
||||
.snapshotVersions(List.of(
|
||||
new SnapshotVersion("classifier1", "ext1", "123", moment2),
|
||||
|
@ -207,7 +207,7 @@ public class TestMetadataBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT")))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT")))
|
||||
.snapshotLocal()
|
||||
.snapshotVersions(List.of(
|
||||
new SnapshotVersion("classifier1", "ext1", "123", moment2),
|
||||
|
|
|
@ -5,10 +5,7 @@
|
|||
package rife.bld.publish;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import rife.bld.dependencies.Dependency;
|
||||
import rife.bld.dependencies.DependencyScopes;
|
||||
import rife.bld.dependencies.Scope;
|
||||
import rife.bld.dependencies.VersionNumber;
|
||||
import rife.bld.dependencies.*;
|
||||
import rife.tools.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -50,7 +47,7 @@ public class TestPomBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT"))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT"))
|
||||
.name("the thing")
|
||||
.description("the thing but longer")
|
||||
.url("https://the.thing"));
|
||||
|
@ -227,7 +224,7 @@ public class TestPomBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT"))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT"))
|
||||
.name("the thing")
|
||||
.description("the thing but longer")
|
||||
.url("https://the.thing")
|
||||
|
@ -533,7 +530,7 @@ public class TestPomBuilder {
|
|||
.info(new PublishInfo()
|
||||
.groupId("com.example")
|
||||
.artifactId("myapp")
|
||||
.version(VersionNumber.parse("1.2.3-SNAPSHOT"))
|
||||
.version(Version.parse("1.2.3-SNAPSHOT"))
|
||||
.name("the thing")
|
||||
.description("the thing but longer")
|
||||
.url("https://the.thing")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue