2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-26 08:37:11 -07:00

Added support for overriding dependency versions with properties throughout all of dependency resolution.

This commit is contained in:
Geert Bevin 2024-07-13 19:25:44 -04:00
parent fd38de9644
commit 30f456e47a
27 changed files with 1002 additions and 214 deletions

View file

@ -82,6 +82,14 @@ public class TestDependency {
assertEquals("com.uwyn.rife2:rife2:1.4.0:bld@zip", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "bld", "zip").toString());
}
@Test
void testToArtifactString() {
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2").toArtifactString());
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)).toArtifactString());
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "agent").toArtifactString());
assertEquals("com.uwyn.rife2:rife2", new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0), "bld", "zip").toArtifactString());
}
@Test
void testToFileName() {
assertEquals("rife2-0.0.0.jar", new Dependency("com.uwyn.rife2", "rife2").toFileName());

View file

@ -5,6 +5,7 @@
package rife.bld.dependencies;
import org.junit.jupiter.api.Test;
import rife.ioc.HierarchicalProperties;
import rife.tools.FileUtils;
import rife.tools.StringUtils;
@ -16,6 +17,7 @@ import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
import static rife.bld.dependencies.Dependency.CLASSIFIER_JAVADOC;
import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
import static rife.bld.dependencies.VersionResolution.PROPERTY_OVERRIDE_PREFIX;
import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.Scope.compile;
import static rife.bld.dependencies.Scope.runtime;
@ -23,8 +25,10 @@ import static rife.bld.dependencies.Scope.runtime;
public class TestDependencyResolver {
@Test
void testInstantiation() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "com.uwyn.rife2:rife2:1.8.0")),
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
assertNotNull(resolver);
assertEquals(new VersionNumber(1,8,0), resolver.resolution().overrideVersion(new Dependency("com.uwyn.rife2", "rife2")));
assertTrue(resolver.repositories().contains(MAVEN_CENTRAL));
assertTrue(resolver.repositories().contains(SONATYPE_SNAPSHOTS));
assertEquals(new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)), resolver.dependency());
@ -32,31 +36,38 @@ public class TestDependencyResolver {
@Test
void testNotFound() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.org.unknown", "voidthing"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.org.unknown", "voidthing"));
assertFalse(resolver.exists());
}
@Test
void testCheckExistence() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
assertTrue(resolver.exists());
}
@Test
void testCheckExistenceVersion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
assertTrue(resolver.exists());
}
@Test
void testCheckExistenceMissingVersion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
assertFalse(resolver.exists());
}
@Test
void testCheckVersionOverride() {
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "com.uwyn.rife2:rife2:1.8.0")),
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 3, 9)));
assertEquals(new VersionNumber(1, 8, 0), resolver.resolveVersion());
}
@Test
void testListVersions() {
var resolver1 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver1 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var versions1 = resolver1.listVersions();
assertNotNull(versions1);
assertFalse(versions1.isEmpty());
@ -64,7 +75,7 @@ public class TestDependencyResolver {
assertTrue(versions1.contains(new VersionNumber(1, 0, 0)));
assertTrue(versions1.contains(new VersionNumber(1, 2, 1)));
var resolver2 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server"));
var resolver2 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server"));
var versions2 = resolver2.listVersions();
assertNotNull(versions2);
assertFalse(versions2.isEmpty());
@ -75,7 +86,7 @@ public class TestDependencyResolver {
@Test
void testGetLatestVersion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var version = resolver.latestVersion();
assertNotNull(version);
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
@ -83,7 +94,7 @@ public class TestDependencyResolver {
@Test
void testGetReleaseVersion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var version = resolver.releaseVersion();
assertNotNull(version);
assertTrue(version.compareTo(new VersionNumber(1, 4)) >= 0);
@ -91,7 +102,7 @@ public class TestDependencyResolver {
@Test
void testMetadata() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0)));
var metadata = resolver.getMavenMetadata();
assertNotNull(metadata);
assertTrue(metadata.getLatest().compareTo(resolver.dependency().version()) > 0);
@ -100,7 +111,7 @@ public class TestDependencyResolver {
@Test
void testSnapshotMetadata() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var metadata = resolver.getSnapshotMavenMetadata();
assertNotNull(metadata);
assertEquals("20230303.130437", metadata.getSnapshotTimestamp());
@ -109,7 +120,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesRIFE2() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(0, dependencies.size());
@ -117,7 +128,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesRIFE2Snapshot() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(0, dependencies.size());
@ -125,7 +136,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesJetty() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(4, dependencies.size());
@ -136,9 +147,37 @@ public class TestDependencyResolver {
org.slf4j:slf4j-api:2.0.5""", StringUtils.join(dependencies, "\n"));
}
@Test
void testGetCompileDependenciesJettyOverride1() {
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.13")),
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(4, dependencies.size());
assertEquals("""
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2
org.eclipse.jetty:jetty-http:11.0.14
org.eclipse.jetty:jetty-io:11.0.14
org.slf4j:slf4j-api:2.0.13""", StringUtils.join(dependencies, "\n"));
}
@Test
void testGetCompileDependenciesJettyOverride2() {
var resolver = new DependencyResolver(new VersionResolution(new HierarchicalProperties().put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.11,org.eclipse.jetty:jetty-io:11.0.13,org.eclipse.jetty:jetty-server:11.0.15")),
ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(4, dependencies.size());
assertEquals("""
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2
org.eclipse.jetty:jetty-http:11.0.15
org.eclipse.jetty:jetty-io:11.0.13
org.slf4j:slf4j-api:2.0.11""", StringUtils.join(dependencies, "\n"));
}
@Test
void testGetCompileRuntimeDependenciesJunit() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var dependencies_compile = resolver.getDirectDependencies(compile, runtime);
assertNotNull(dependencies_compile);
assertEquals(3, dependencies_compile.size());
@ -150,7 +189,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesSpringBoot() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(6, dependencies.size());
@ -165,7 +204,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesMaven() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(26, dependencies.size());
@ -200,7 +239,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesPlay() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(25, dependencies.size());
@ -234,7 +273,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileDependenciesVaadin() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var dependencies = resolver.getDirectDependencies(compile);
assertNotNull(dependencies);
assertEquals(9, dependencies.size());
@ -252,7 +291,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileRuntimeDependenciesBitly() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
var dependencies = resolver.getDirectDependencies(compile, runtime);
assertNotNull(dependencies);
assertEquals(4, dependencies.size());
@ -265,7 +304,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesRIFE2() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(1, dependencies.size());
@ -275,7 +314,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesRIFE2Snapshot() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(1, dependencies.size());
@ -285,7 +324,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJetty() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(6, dependencies.size());
@ -300,7 +339,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJettyExclusion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
.exclude("org.slf4j", "slf4j-api"));
var dependencies = resolver.getAllDependencies(compile);
@ -316,7 +355,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJettyFullGroupExclusion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
.exclude("org.eclipse.jetty", "*"));
var dependencies = resolver.getAllDependencies(compile);
@ -330,7 +369,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJettyFullArtifactExclusion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
.exclude("*", "jetty-http")
.exclude("*", "slf4j-api"));
@ -346,7 +385,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJettyFullExclusion() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS),
new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))
.exclude("*", "*"));
var dependencies = resolver.getAllDependencies(compile);
@ -358,8 +397,8 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesJettyAndSlfj() {
var dependencies = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))).getAllDependencies(compile);
var dependencies2 = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.slf4j", "slf4j-simple", new VersionNumber(2, 0, 6))).getAllDependencies(compile, runtime);
var dependencies = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14))).getAllDependencies(compile);
var dependencies2 = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.slf4j", "slf4j-simple", new VersionNumber(2, 0, 6))).getAllDependencies(compile, runtime);
assertNotNull(dependencies);
assertNotNull(dependencies2);
assertEquals(6, dependencies.size());
@ -378,7 +417,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileRuntimeTransitiveDependenciesJunit() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
assertNotNull(dependencies_compile);
assertEquals(8, dependencies_compile.size());
@ -401,7 +440,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesSpringBoot() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(18, dependencies.size());
@ -428,7 +467,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesMaven() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(32, dependencies.size());
@ -469,7 +508,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesPlay() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(48, dependencies.size());
@ -526,7 +565,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileTransitiveDependenciesVaadin() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var dependencies = resolver.getAllDependencies(compile);
assertNotNull(dependencies);
assertEquals(88, dependencies.size());
@ -623,7 +662,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileRuntimeTransitiveDependenciesBitly() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), new Dependency("net.thauvin.erik", "bitly-shorten", new VersionNumber(0, 9, 4, "SNAPSHOT")));
var dependencies = resolver.getAllDependencies(compile, runtime);
assertNotNull(dependencies);
assertEquals(11, dependencies.size());
@ -643,7 +682,7 @@ public class TestDependencyResolver {
@Test
void testGetCompileRuntimeTransitiveDependenciesMariaDb() {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.mariadb.jdbc", "mariadb-java-client", new VersionNumber(3, 1, 3)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.mariadb.jdbc", "mariadb-java-client", new VersionNumber(3, 1, 3)));
var dependencies_compile = resolver.getAllDependencies(compile, runtime);
assertNotNull(dependencies_compile);
assertEquals(9, dependencies_compile.size());
@ -667,10 +706,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependency()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertTrue(StringUtils.join(result, "\n").matches("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar"""));
@ -685,10 +724,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySources()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
assertTrue(StringUtils.join(result, "\n").matches("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar"""));
@ -704,10 +743,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySourcesJavadoc()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2"));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
assertTrue(StringUtils.join(result, "\n").matches("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/uwyn/rife2/rife2/.*/rife2-.*-sources.jar
@ -724,10 +763,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySnapshot()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar""", StringUtils.join(result, "\n"));
@ -742,10 +781,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySnapshotSources()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
assertEquals("""
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar""", StringUtils.join(result, "\n"));
@ -762,10 +801,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySnapshotSourcesJavadoc()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.uwyn.rife2", "rife2", new VersionNumber(1, 4, 0, "SNAPSHOT")));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
assertEquals("""
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4.jar
https://s01.oss.sonatype.org/content/repositories/snapshots/:https://s01.oss.sonatype.org/content/repositories/snapshots/com/uwyn/rife2/rife2/1.4.0-SNAPSHOT/rife2-1.4.0-20230303.130437-4-sources.jar
@ -784,10 +823,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencyJetty()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar
@ -812,12 +851,46 @@ public class TestDependencyResolver {
}
@Test
void testTransferDependencyJettySources()
void testTransferDependencyJettyOverriddenVersions()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolution = new VersionResolution(new HierarchicalProperties()
.put(PROPERTY_OVERRIDE_PREFIX, "org.slf4j:slf4j-api:2.0.11")
.put(PROPERTY_OVERRIDE_PREFIX + "1", "org.eclipse.jetty:jetty-io:11.0.13")
.put(PROPERTY_OVERRIDE_PREFIX + "2", "org.eclipse.jetty:jetty-server:11.0.15"));
var resolver = new DependencyResolver(resolution, ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(resolution, ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.15/jetty-server-11.0.15.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/toolchain/jetty-jakarta-servlet-api/5.0.2/jetty-jakarta-servlet-api-5.0.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-http/11.0.15/jetty-http-11.0.15.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-io/11.0.13/jetty-io-11.0.13.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.11/slf4j-api-2.0.11.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util/11.0.15/jetty-util-11.0.15.jar""", StringUtils.join(result, "\n"));
var files = FileUtils.getFileList(tmp);
assertEquals(6, files.size());
Collections.sort(files);
assertEquals("""
jetty-http-11.0.15.jar
jetty-io-11.0.13.jar
jetty-jakarta-servlet-api-5.0.2.jar
jetty-server-11.0.15.jar
jetty-util-11.0.15.jar
slf4j-api-2.0.11.jar""", StringUtils.join(files, "\n"));
} finally {
FileUtils.deleteDirectory(tmp);
}
}
@Test
void testTransferDependencyJettySources()
throws Exception {
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
@ -856,10 +929,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencyJettySourcesJavadoc()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp, CLASSIFIER_SOURCES, CLASSIFIER_JAVADOC);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/11.0.14/jetty-server-11.0.14-sources.jar
@ -910,10 +983,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependenciesJunit()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.junit.jupiter", "junit-jupiter", new VersionNumber(5, 9, 2)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile, runtime).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile, runtime).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter/5.9.2/junit-jupiter-5.9.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.9.2/junit-jupiter-api-5.9.2.jar
@ -944,10 +1017,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencySpringBoot()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.springframework.boot", "spring-boot-starter", new VersionNumber(3, 0, 4)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/3.0.4/spring-boot-starter-3.0.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/springframework/boot/spring-boot/3.0.4/spring-boot-3.0.4.jar
@ -998,10 +1071,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencyMaven()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.apache.maven", "maven-core", new VersionNumber(3, 9, 0)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-core/3.9.0/maven-core-3.9.0.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/apache/maven/maven-model/3.9.0/maven-model-3.9.0.jar
@ -1080,10 +1153,10 @@ public class TestDependencyResolver {
@Test
void testTransferDependencyPlay()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play_2.13/2.8.19/play_2.13-2.8.19.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.10/scala-library-2.13.10.jar
@ -1192,12 +1265,128 @@ public class TestDependencyResolver {
}
@Test
void testTransferDependencyVaadin()
void testTransferDependencyPlayOverriddenVersions()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var resolution = new VersionResolution(new HierarchicalProperties()
.put(PROPERTY_OVERRIDE_PREFIX, "org.scala-lang:scala-library:2.13.12,org.slf4j:slf4j-api:2.0.11,com.google.guava:guava:31.1-jre"));
var resolver = new DependencyResolver(resolution, ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.typesafe.play", "play_2.13", new VersionNumber(2, 8, 19)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
var result = resolver.getAllDependencies(compile).transferIntoDirectory(resolution, ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play_2.13/2.8.19/play_2.13-2.8.19.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.12/scala-library-2.13.12.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/build-link/2.8.19/build-link-2.8.19.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-streams_2.13/2.8.19/play-streams_2.13-2.8.19.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/twirl-api_2.13/1.5.1/twirl-api_2.13-1.5.1.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.11/slf4j-api-2.0.11.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.13/2.6.20/akka-actor_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor-typed_2.13/2.6.20/akka-actor-typed_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-slf4j_2.13/2.6.20/akka-slf4j_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-serialization-jackson_2.13/2.6.20/akka-serialization-jackson_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.4/jackson-core-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.11.4/jackson-annotations-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.11.4/jackson-datatype-jdk8-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.11.4/jackson-datatype-jsr310-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.11.4/jackson-databind-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-json_2.13/2.8.2/play-json_2.13-2.8.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/io/jsonwebtoken/jjwt/0.9.1/jjwt-0.9.1.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_2.13/1.0.2/scala-java8-compat_2.13-1.0.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.13/0.4.3/ssl-config-core_2.13-0.4.3.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_2.13/1.1.2/scala-parser-combinators_2.13-1.1.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-exceptions/2.8.19/play-exceptions-2.8.19.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-stream_2.13/2.6.20/akka-stream_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.13/1.2.0/scala-xml_2.13-1.2.0.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/config/1.4.2/config-1.4.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.11.4/jackson-dataformat-cbor-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-scala_2.13/2.11.4/jackson-module-scala_2.13-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/play/play-functional_2.13/2.8.2/play-functional_2.13-2.8.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.1/scala-reflect-2.13.1.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/joda-time/joda-time/2.10.5/joda-time-2.10.5.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/typesafe/akka/akka-protobuf-v3_2.13/2.6.20/akka-protobuf-v3_2.13-2.6.20.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-paranamer/2.11.4/jackson-module-paranamer-2.11.4.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/thoughtworks/paranamer/paranamer/2.8/paranamer-2.8.jar""", StringUtils.join(result, "\n"));
var files = FileUtils.getFileList(tmp);
assertEquals(48, files.size());
Collections.sort(files);
assertEquals("""
akka-actor-typed_2.13-2.6.20.jar
akka-actor_2.13-2.6.20.jar
akka-protobuf-v3_2.13-2.6.20.jar
akka-serialization-jackson_2.13-2.6.20.jar
akka-slf4j_2.13-2.6.20.jar
akka-stream_2.13-2.6.20.jar
build-link-2.8.19.jar
checker-qual-3.12.0.jar
config-1.4.2.jar
error_prone_annotations-2.11.0.jar
failureaccess-1.0.1.jar
guava-31.1-jre.jar
j2objc-annotations-1.3.jar
jackson-annotations-2.11.4.jar
jackson-core-2.11.4.jar
jackson-databind-2.11.4.jar
jackson-dataformat-cbor-2.11.4.jar
jackson-datatype-jdk8-2.11.4.jar
jackson-datatype-jsr310-2.11.4.jar
jackson-module-parameter-names-2.11.4.jar
jackson-module-paranamer-2.11.4.jar
jackson-module-scala_2.13-2.11.4.jar
jakarta.activation-api-1.2.2.jar
jakarta.transaction-api-1.3.3.jar
jakarta.xml.bind-api-2.3.3.jar
javax.inject-1.jar
jcl-over-slf4j-1.7.36.jar
jjwt-0.9.1.jar
joda-time-2.10.5.jar
jsr305-3.0.2.jar
jul-to-slf4j-1.7.36.jar
listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
lz4-java-1.8.0.jar
paranamer-2.8.jar
play-exceptions-2.8.19.jar
play-functional_2.13-2.8.2.jar
play-json_2.13-2.8.2.jar
play-streams_2.13-2.8.19.jar
play_2.13-2.8.19.jar
reactive-streams-1.0.3.jar
scala-java8-compat_2.13-1.0.2.jar
scala-library-2.13.12.jar
scala-parser-combinators_2.13-1.1.2.jar
scala-reflect-2.13.1.jar
scala-xml_2.13-1.2.0.jar
slf4j-api-2.0.11.jar
ssl-config-core_2.13-0.4.3.jar
twirl-api_2.13-1.5.1.jar""", StringUtils.join(files, "\n"));
} finally {
FileUtils.deleteDirectory(tmp);
}
}
@Test
void testTransferDependencyVaadin()
throws Exception {
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("com.vaadin", "vaadin", new VersionNumber(23, 3, 7)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
var result = resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertEquals("""
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin/23.3.7/vaadin-23.3.7.jar
https://repo1.maven.org/maven2/:https://repo1.maven.org/maven2/com/vaadin/vaadin-core/23.3.7/vaadin-core-23.3.7.jar
@ -1388,10 +1577,10 @@ public class TestDependencyResolver {
@Test
void testTransferCheckExisting()
throws Exception {
var resolver = new DependencyResolver(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var resolver = new DependencyResolver(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS), new Dependency("org.eclipse.jetty", "jetty-server", new VersionNumber(11, 0, 14)));
var tmp = Files.createTempDirectory("transfers").toFile();
try {
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
var modification_map = new HashMap<String, Long>();
Files.walk(Path.of(tmp.getAbsolutePath()))
@ -1400,7 +1589,7 @@ public class TestDependencyResolver {
.forEach(it -> modification_map.put(it, new File(it).lastModified()));
// re-transfer and check the modification time didn't change
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
Files.walk(Path.of(tmp.getAbsolutePath()))
.map(path -> path.toAbsolutePath().toString())
.filter(s -> !s.equals(tmp.getAbsolutePath()))
@ -1410,7 +1599,7 @@ public class TestDependencyResolver {
var first = modification_map.keySet().stream().findFirst().get();
var first_file = new File(first);
first_file.delete();
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertNotEquals(first_file.lastModified(), modification_map.get(first));
modification_map.put(first, first_file.lastModified());
Files.walk(Path.of(tmp.getAbsolutePath()))
@ -1421,7 +1610,7 @@ public class TestDependencyResolver {
// change one file and check that this is transfered again
FileUtils.writeString("stuff", first_file);
var before_transfer_modified = first_file.lastModified();
resolver.getAllDependencies(compile).transferIntoDirectory(ArtifactRetriever.instance(), resolver.repositories(), tmp);
resolver.getAllDependencies(compile).transferIntoDirectory(VersionResolution.dummy(), ArtifactRetriever.instance(), resolver.repositories(), tmp);
assertNotEquals(first_file.lastModified(), before_transfer_modified);
modification_map.put(first, first_file.lastModified());
Files.walk(Path.of(tmp.getAbsolutePath()))

View file

@ -5,6 +5,7 @@
package rife.bld.dependencies;
import org.junit.jupiter.api.Test;
import rife.ioc.HierarchicalProperties;
import rife.tools.StringUtils;
import java.util.List;
@ -91,7 +92,7 @@ public class TestDependencySet {
org.eclipse.jetty:jetty-io:11.0.14
org.slf4j:slf4j-simple:2.0.6
org.slf4j:slf4j-api:2.0.6
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -117,7 +118,7 @@ public class TestDependencySet {
org.springframework:spring-core:6.0.6
org.springframework:spring-jcl:6.0.6
org.yaml:snakeyaml:1.33
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -157,7 +158,7 @@ public class TestDependencySet {
org.codehaus.plexus:plexus-component-annotations:2.1.0
org.apache.commons:commons-lang3:3.8.1
org.slf4j:slf4j-api:1.7.36
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -213,7 +214,7 @@ public class TestDependencySet {
org.scala-lang.modules:scala-java8-compat_2.13:1.0.2
com.typesafe:ssl-config-core_2.13:0.4.3
org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -309,7 +310,7 @@ public class TestDependencySet {
net.java.dev.jna:jna:5.11.0
net.java.dev.jna:jna-platform:5.11.0
com.auth0:java-jwt:3.19.2
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -352,7 +353,7 @@ public class TestDependencySet {
com.google.zxing:javase:3.5.1
com.google.zxing:core:3.5.1
com.beust:jcommander:1.82
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
}
@Test
@ -371,6 +372,6 @@ public class TestDependencySet {
com.squareup.okio:okio-jvm:3.2.0
com.squareup.okhttp3:logging-interceptor:4.11.0
org.json:json:20230618
"""), dependencies.generateTransitiveDependencyTree(ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), compile, runtime));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY), compile, runtime));
}
}

View file

@ -0,0 +1,49 @@
/*
* Copyright 2001-2024 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.Assertions;
import org.junit.jupiter.api.Test;
import rife.ioc.HierarchicalProperties;
public class TestVersionResolution {
@Test
public void testVersionResolutionConstructor() {
var properties = new HierarchicalProperties();
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
var versionResolution = new VersionResolution(properties);
Assertions.assertNotNull(versionResolution);
versionResolution = new VersionResolution(null);
Assertions.assertNotNull(versionResolution);
}
@Test
public void testOverrideVersion() {
var properties = new HierarchicalProperties();
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
var versionResolution = new VersionResolution(properties);
var originalDependency = new Dependency("com.bookstore", "book-api", new VersionNumber(1,0,0));
var overriddenVersion = versionResolution.overrideVersion(originalDependency);
Assertions.assertEquals(new VersionNumber(2,0,0), overriddenVersion);
}
@Test
public void testOverrideDependency() {
var properties = new HierarchicalProperties();
properties.put("bld.override", "com.bookstore:book-api:2.0.0");
var versionResolution = new VersionResolution(properties);
var originalDependency = new Dependency("com.bookstore", "book-api",new VersionNumber(1,0,0));
var overriddenDependency = versionResolution.overrideDependency(originalDependency);
Assertions.assertEquals(new VersionNumber(2,0,0), overriddenDependency.version());
}
}

View file

@ -22,6 +22,7 @@ public class TestDependencyTreeOperation {
@Test
void testInstantiation() {
var operation = new DependencyTreeOperation();
assertEquals(operation.properties().size(), 0);
assertTrue(operation.dependencies().isEmpty());
assertTrue(operation.repositories().isEmpty());
}

View file

@ -63,7 +63,7 @@ public class TestPublishOperation {
assertTrue(operation.repositories().isEmpty());
assertNull(operation.moment());
assertTrue(operation.dependencies().isEmpty());
assertTrue(operation.properties().isEmpty());
assertTrue(operation.publishProperties().isEmpty());
assertNotNull(operation.info());
assertNull(operation.info().groupId());
assertNull(operation.info().artifactId());
@ -113,14 +113,14 @@ public class TestPublishOperation {
.repository(repository2)
.moment(moment)
.artifacts(List.of(artifact1, artifact2));
operation3.properties().mavenCompilerSource(17).mavenCompilerTarget(19);
operation3.publishProperties().mavenCompilerSource(17).mavenCompilerTarget(19);
assertTrue(operation3.repositories().contains(repository1));
assertTrue(operation3.repositories().contains(repository2));
assertEquals(moment, operation3.moment());
assertTrue(operation3.artifacts().contains(artifact1));
assertTrue(operation3.artifacts().contains(artifact2));
assertEquals(17, operation3.properties().mavenCompilerSource());
assertEquals(19, operation3.properties().mavenCompilerTarget());
assertEquals(17, operation3.publishProperties().mavenCompilerSource());
assertEquals(19, operation3.publishProperties().mavenCompilerTarget());
}
@Test

View file

@ -6,6 +6,7 @@ package rife.bld.wrapper;
import org.junit.jupiter.api.Test;
import rife.bld.BldVersion;
import rife.bld.dependencies.VersionResolution;
import rife.tools.FileUtils;
import java.io.File;
@ -33,7 +34,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, Collections.emptySet(), Collections.emptySet(), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), Collections.emptySet(), Collections.emptySet(), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -66,7 +67,9 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
new Properties(), new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -89,6 +92,95 @@ public class TestWrapperExtensionResolver {
}
}
@Test
void testUpdateExtensionsOverride1()
throws Exception {
var tmp1 = Files.createTempDirectory("test1").toFile();
var tmp2 = Files.createTempDirectory("test2").toFile();
try {
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
var hash_file = new File(tmp1, "wrapper.hash");
assertFalse(hash_file.exists());
var files1 = FileUtils.getFileList(tmp2);
assertEquals(2, files1.size());
Collections.sort(files1);
assertEquals("""
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var properties = new Properties();
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
properties, new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
var files2 = FileUtils.getFileList(tmp2);
assertEquals(9, files2.size());
Collections.sort(files2);
assertEquals("""
ST4-4.3.4.jar
antlr-runtime-3.5.3.jar
antlr4-4.11.0.jar
antlr4-runtime-4.11.0.jar
bld-wrapper.jar
bld-wrapper.properties
icu4j-71.1.jar
javax.json-1.1.4.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
} finally {
tmp2.delete();
tmp1.delete();
}
}
@Test
void testUpdateExtensionsOverride2()
throws Exception {
var tmp1 = Files.createTempDirectory("test1").toFile();
var tmp2 = Files.createTempDirectory("test2").toFile();
try {
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
var hash_file = new File(tmp1, "wrapper.hash");
assertFalse(hash_file.exists());
var files1 = FileUtils.getFileList(tmp2);
assertEquals(2, files1.size());
Collections.sort(files1);
assertEquals("""
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var properties = new Properties();
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.glassfish:javax.json:1.1.3");
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
properties, new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
var files2 = FileUtils.getFileList(tmp2);
assertEquals(10, files2.size());
Collections.sort(files2);
assertEquals("""
ST4-4.3.4.jar
antlr-runtime-3.5.3.jar
antlr4-4.11.1.jar
antlr4-runtime-4.11.1.jar
bld-wrapper.jar
bld-wrapper.properties
icu4j-71.1.jar
javax.json-1.1.3.jar
javax.json-api-1.1.3.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
} finally {
tmp2.delete();
tmp1.delete();
}
}
@Test
void testUpdateExtensionsSources()
throws Exception {
@ -106,7 +198,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -153,7 +245,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, true);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, true);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -200,7 +292,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -237,6 +329,64 @@ public class TestWrapperExtensionResolver {
}
}
@Test
void testUpdateExtensionsBothOverride()
throws Exception {
var tmp1 = Files.createTempDirectory("test1").toFile();
var tmp2 = Files.createTempDirectory("test2").toFile();
try {
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
var hash_file = new File(tmp1, "wrapper.hash");
assertFalse(hash_file.exists());
var files1 = FileUtils.getFileList(tmp2);
assertEquals(2, files1.size());
Collections.sort(files1);
assertEquals("""
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var properties = new Properties();
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
properties, new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), true, true);
resolver.updateExtensions();
assertTrue(hash_file.exists());
var files2 = FileUtils.getFileList(tmp2);
assertEquals(23, files2.size());
Collections.sort(files2);
assertEquals("""
ST4-4.3.4-javadoc.jar
ST4-4.3.4-sources.jar
ST4-4.3.4.jar
antlr-runtime-3.5.3-javadoc.jar
antlr-runtime-3.5.3-sources.jar
antlr-runtime-3.5.3.jar
antlr4-4.11.0-javadoc.jar
antlr4-4.11.0-sources.jar
antlr4-4.11.0.jar
antlr4-runtime-4.11.0-javadoc.jar
antlr4-runtime-4.11.0-sources.jar
antlr4-runtime-4.11.0.jar
bld-wrapper.jar
bld-wrapper.properties
icu4j-71.1-javadoc.jar
icu4j-71.1-sources.jar
icu4j-71.1.jar
javax.json-1.1.4-javadoc.jar
javax.json-1.1.4-sources.jar
javax.json-1.1.4.jar
org.abego.treelayout.core-1.0.3-javadoc.jar
org.abego.treelayout.core-1.0.3-sources.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
} finally {
tmp2.delete();
tmp1.delete();
}
}
@Test
void testResolvedRepository()
throws Exception {
@ -257,7 +407,7 @@ public class TestWrapperExtensionResolver {
var properties = new File(tmp1, "local.properties");
FileUtils.writeString("bld.repo.testrepo=" + MAVEN_CENTRAL, properties);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of("testrepo"), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of("testrepo"), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -297,7 +447,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -345,7 +495,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -409,7 +559,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver.updateExtensions();
assertTrue(hash_file.exists());
@ -473,7 +623,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver1.updateExtensions();
assertTrue(hash_file.exists());
@ -491,7 +641,7 @@ public class TestWrapperExtensionResolver {
javax.json-1.1.4.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
resolver2.updateExtensions();
var files3 = FileUtils.getFileList(tmp2);
assertEquals(10, files3.size());
@ -530,7 +680,7 @@ public class TestWrapperExtensionResolver {
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1", "org.jsoup:jsoup:1.15.4"), false, false);
resolver1.updateExtensions();
assertTrue(hash_file.exists());
@ -549,7 +699,7 @@ public class TestWrapperExtensionResolver {
jsoup-1.15.4.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, List.of(MAVEN_CENTRAL), List.of("org.jsoup:jsoup:1.15.4"), false, false);
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2, new Properties(), new Properties(), List.of(MAVEN_CENTRAL), List.of("org.jsoup:jsoup:1.15.4"), false, false);
resolver2.updateExtensions();
var files3 = FileUtils.getFileList(tmp2);
assertEquals(3, files3.size());
@ -563,4 +713,66 @@ public class TestWrapperExtensionResolver {
tmp1.delete();
}
}
@Test
void testOverrideExtension()
throws Exception {
var tmp1 = Files.createTempDirectory("test1").toFile();
var tmp2 = Files.createTempDirectory("test2").toFile();
try {
new Wrapper().createWrapperFiles(tmp2, BldVersion.getVersion());
var hash_file = new File(tmp1, "wrapper.hash");
assertFalse(hash_file.exists());
var files1 = FileUtils.getFileList(tmp2);
assertEquals(2, files1.size());
Collections.sort(files1);
assertEquals("""
bld-wrapper.jar
bld-wrapper.properties""", String.join("\n", files1));
var resolver1 = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
new Properties(), new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver1.updateExtensions();
assertTrue(hash_file.exists());
var files2 = FileUtils.getFileList(tmp2);
assertEquals(9, files2.size());
Collections.sort(files2);
assertEquals("""
ST4-4.3.4.jar
antlr-runtime-3.5.3.jar
antlr4-4.11.1.jar
antlr4-runtime-4.11.1.jar
bld-wrapper.jar
bld-wrapper.properties
icu4j-71.1.jar
javax.json-1.1.4.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files2));
var properties = new Properties();
properties.put(VersionResolution.PROPERTY_OVERRIDE_PREFIX, "org.antlr:antlr4:4.11.0");
var resolver2 = new WrapperExtensionResolver(tmp1, hash_file, tmp2,
properties, new Properties(),
List.of(MAVEN_CENTRAL), List.of("org.antlr:antlr4:4.11.1"), false, false);
resolver2.updateExtensions();
var files3 = FileUtils.getFileList(tmp2);
assertEquals(9, files3.size());
Collections.sort(files3);
assertEquals("""
ST4-4.3.4.jar
antlr-runtime-3.5.3.jar
antlr4-4.11.0.jar
antlr4-runtime-4.11.0.jar
bld-wrapper.jar
bld-wrapper.properties
icu4j-71.1.jar
javax.json-1.1.4.jar
org.abego.treelayout.core-1.0.3.jar""", String.join("\n", files3));
} finally {
tmp2.delete();
tmp1.delete();
}
}
}