Skip to content

Commit 872ba2e

Browse files
committed
Resolve transitive dependencies with libby-maven-resolver
1 parent fb9b924 commit 872ba2e

File tree

8 files changed

+10
-297
lines changed

8 files changed

+10
-297
lines changed

core/build.gradle.kts

-72
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,19 @@
1-
import groovy.xml.MarkupBuilder
2-
import java.security.MessageDigest
3-
import java.util.Base64
4-
51
plugins {
62
id("net.kyori.blossom") version "2.0.1"
73
}
84

9-
val libbyMavenResolverRepo = layout.buildDirectory.dir("libby-maven-resolver-repo").get()
10-
val libbyMavenResolverJar = provider {}.flatMap { // Use a provider to not resolve shadowTask task too early
11-
project(":libby-maven-resolver").tasks.named("shadowJar").flatMap { (it as Jar).archiveFile }
12-
}
13-
14-
val deleteLibbyMavenResolver = tasks.register<Delete>("deleteLibbyMavenResolver") {
15-
delete(libbyMavenResolverRepo)
16-
isFollowSymlinks = false
17-
}
18-
19-
val copyLibbyMavenResolver = tasks.register<Copy>("copyLibbyMavenResolver") {
20-
dependsOn(":libby-maven-resolver:shadowJar")
21-
dependsOn(deleteLibbyMavenResolver)
22-
}
23-
setupCopy()
24-
25-
tasks.test {
26-
dependsOn(copyLibbyMavenResolver)
27-
}
28-
295
sourceSets {
306
main {
317
blossom {
328
javaSources {
339
property("version", project.version.toString())
34-
property("libbyMavenResolverChecksum", provider {
35-
val md = MessageDigest.getInstance("SHA-256")
36-
val sha256 = md.digest(libbyMavenResolverJar.get().asFile.readBytes())
37-
Base64.getEncoder().encodeToString(sha256)
38-
})
3910
}
4011
}
4112
}
4213
test {
4314
blossom {
4415
javaSources {
4516
property("buildDir", layout.buildDirectory.asFile.get().absolutePath.replace("\\", "\\\\"))
46-
property("libbyMavenResolverRepo", libbyMavenResolverRepo.asFile.absolutePath.replace("\\", "\\\\"))
47-
}
48-
}
49-
}
50-
}
51-
52-
tasks.named("generateJavaTemplates") {
53-
dependsOn(":libby-maven-resolver:shadowJar")
54-
}
55-
56-
fun setupCopy() {
57-
val version = project.version.toString()
58-
val partialPath = "${project.group.toString().replace('.', '/')}/libby-maven-resolver/${version}"
59-
val mainFolder = libbyMavenResolverRepo.dir(partialPath)
60-
61-
copyLibbyMavenResolver {
62-
from(libbyMavenResolverJar)
63-
into(mainFolder)
64-
}
65-
66-
if (!version.endsWith("-SNAPSHOT")) {
67-
return
68-
}
69-
70-
// Generate snapshot's maven-metadata-local.xml
71-
copyLibbyMavenResolver {
72-
doFirst {
73-
mainFolder.file("maven-metadata-local.xml").asFile.printWriter(Charsets.UTF_8).use {
74-
val builder = MarkupBuilder(it)
75-
builder.doubleQuotes = true
76-
builder.mkp.xmlDeclaration(mapOf("version" to "1.0", "encoding" to "UTF-8"))
77-
builder.withGroovyBuilder {
78-
"metadata"("modelVersion" to "1.1.0") {
79-
"groupId"(project.group.toString())
80-
"artifactId"("libby-maven-resolver")
81-
"version"(version)
82-
"versioning"() {
83-
"snapshot"() {
84-
"localCopy"(true)
85-
}
86-
}
87-
}
88-
}
8917
}
9018
}
9119
}

core/src/main/java-templates/com/alessiodp/libby/LibbyProperties.java

-5
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,4 @@ public class LibbyProperties {
1313
* User agent string to use when downloading libraries
1414
*/
1515
public static final String HTTP_USER_AGENT = "libby/" + VERSION;
16-
17-
/**
18-
* Checksum of libby-maven-resolver jar
19-
*/
20-
public static final String LIBBY_MAVEN_RESOLVER_CHECKSUM = "{{ libbyMavenResolverChecksum }}";
2116
}

core/src/main/java/com/alessiodp/libby/transitive/TransitiveDependencyHelper.java

+9-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.alessiodp.libby.transitive;
22

3-
import com.alessiodp.libby.LibbyProperties;
43
import com.alessiodp.libby.Library;
54
import com.alessiodp.libby.LibraryManager;
65
import com.alessiodp.libby.Util;
@@ -25,16 +24,16 @@
2524

2625
/**
2726
* A reflection-based helper for resolving transitive dependencies. It automatically
28-
* downloads Maven Resolver Supplier, Maven Resolver Provider and their transitive dependencies to resolve transitive dependencies.
27+
* downloads Libby Maven Resolver to resolve transitive dependencies.
2928
*
30-
* @see <a href="https://github.com/apache/maven-resolver">Apache Maven Artifact Resolver</a>
29+
* @see <a href="https://github.com/AlessioDP/libby-maven-resolver">Libby Maven Resolver</a>
3130
*/
3231
public class TransitiveDependencyHelper {
3332

3433
/**
35-
* com.alessiodp.libby.transitive.TransitiveDependencyCollector class name for reflections
34+
* com.alessiodp.libby.maven.resolver.TransitiveDependencyCollector class name for reflections
3635
*/
37-
private static final String TRANSITIVE_DEPENDENCY_COLLECTOR_CLASS = replaceWithDots("com{}alessiodp{}libby{}transitive{}TransitiveDependencyCollector");
36+
private static final String TRANSITIVE_DEPENDENCY_COLLECTOR_CLASS = replaceWithDots("com{}alessiodp{}libby{}maven{}resolver{}TransitiveDependencyCollector");
3837

3938
/**
4039
* org.eclipse.aether.artifact.Artifact class name for reflections
@@ -75,22 +74,22 @@ public TransitiveDependencyHelper(@NotNull LibraryManager libraryManager, @NotNu
7574
IsolatedClassLoader classLoader = new IsolatedClassLoader();
7675

7776
classLoader.addPath(libraryManager.downloadLibrary(Library.builder()
78-
.groupId("com{}alessiodp{}libby")
77+
.groupId("com{}alessiodp{}libby{}maven{}resolver")
7978
.artifactId("libby-maven-resolver")
80-
.version(LibbyProperties.VERSION)
81-
.checksumFromBase64(LibbyProperties.LIBBY_MAVEN_RESOLVER_CHECKSUM)
79+
.version("1.0.0")
80+
.checksumFromBase64("aMujUbcaxqGkNX5LNIwNzJTffn3MH6DrZKzXcu67+Qc=")
8281
.build()
8382
));
8483

8584
try {
8685
Class<?> transitiveDependencyCollectorClass = classLoader.loadClass(TRANSITIVE_DEPENDENCY_COLLECTOR_CLASS);
8786
Class<?> artifactClass = classLoader.loadClass(ARTIFACT_CLASS);
8887

89-
// com.alessiodp.libby.TransitiveDependencyCollector(Path)
88+
// com.alessiodp.libby.maven.resolver.TransitiveDependencyCollector(Path)
9089
Constructor<?> constructor = transitiveDependencyCollectorClass.getConstructor(Path.class);
9190
constructor.setAccessible(true);
9291
transitiveDependencyCollectorObject = constructor.newInstance(saveDirectory);
93-
// com.alessiodp.libby.TransitiveDependencyCollector#findTransitiveDependencies(String, String, String, String, Stream<String>)
92+
// com.alessiodp.libby.maven.resolver.TransitiveDependencyCollector#findTransitiveDependencies(String, String, String, String, Stream<String>)
9493
resolveTransitiveDependenciesMethod = transitiveDependencyCollectorClass.getMethod("findTransitiveDependencies", String.class, String.class, String.class, String.class, Stream.class);
9594
resolveTransitiveDependenciesMethod.setAccessible(true);
9695
// org.eclipse.aether.artifact.Artifact#getGroupId()

core/src/test/java-templates/com/alessiodp/libby/LibbyTestProperties.java

-5
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,4 @@ public class LibbyTestProperties {
88
* Build dir path
99
*/
1010
public static final String BUILD_DIR = "{{ buildDir }}";
11-
12-
/**
13-
* Local repo set up by gradle for libby-maven-resolver
14-
*/
15-
public static final String LIBBY_MAVEN_RESOLVER_REPO = "{{ libbyMavenResolverRepo }}";
1611
}

core/src/test/java/com/alessiodp/libby/transitive/TransitiveDownloadingTest.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.alessiodp.libby.transitive;
22

3-
import com.alessiodp.libby.LibbyTestProperties;
43
import com.alessiodp.libby.Library;
54
import com.alessiodp.libby.LibraryManagerMock;
65
import com.alessiodp.libby.TestUtils;
@@ -9,7 +8,6 @@
98
import org.junit.jupiter.api.Test;
109

1110
import java.nio.file.Path;
12-
import java.nio.file.Paths;
1311
import java.util.*;
1412

1513
import static org.junit.jupiter.api.Assertions.*;
@@ -46,8 +44,7 @@ public class TransitiveDownloadingTest {
4644
@BeforeEach
4745
public void setUp() throws Exception {
4846
libraryManager = new LibraryManagerMock();
49-
// Local repo set up by gradle for libby-maven-resolver
50-
libraryManager.addRepository(Paths.get(LibbyTestProperties.LIBBY_MAVEN_RESOLVER_REPO).toUri().toString());
47+
libraryManager.addRepository("https://repo.alessiodp.com/releases");
5148
libraryManager.addMavenCentral();
5249
}
5350

maven-resolver/build.gradle.kts

-19
This file was deleted.

maven-resolver/src/main/java/com/alessiodp/libby/transitive/TransitiveDependencyCollector.java

-181
This file was deleted.

0 commit comments

Comments
 (0)