From 811e1bceb7b58d42e7dfead944ca9ed5eac6b027 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 24 Mar 2016 22:24:44 -0700 Subject: [PATCH] LATEST version work. --- .../com/beust/kobalt/maven/aether/Aether.kt | 49 ++++++++++++++----- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt index 9b5e5e90..57d16c75 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt @@ -16,11 +16,9 @@ import org.eclipse.aether.collection.CollectResult import org.eclipse.aether.graph.Dependency import org.eclipse.aether.graph.DependencyFilter import org.eclipse.aether.graph.DependencyNode +import org.eclipse.aether.metadata.DefaultMetadata import org.eclipse.aether.repository.RemoteRepository -import org.eclipse.aether.resolution.ArtifactResult -import org.eclipse.aether.resolution.DependencyRequest -import org.eclipse.aether.resolution.DependencyResolutionException -import org.eclipse.aether.resolution.VersionRequest +import org.eclipse.aether.resolution.* import org.eclipse.aether.util.artifact.JavaScopes import org.eclipse.aether.util.filter.AndDependencyFilter import org.eclipse.aether.util.filter.DependencyFilterUtils @@ -55,7 +53,11 @@ class Aether(val localRepo: File = File(homeDir(TEST_DIR))) { ExcludeOptionalDependencyFilter(), DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE)) private val kobaltRepositories : List - get() = Kobalt.repos.map { RemoteRepository.Builder("maven", "default", it.url).build() } + get() = Kobalt.repos.map { + RemoteRepository.Builder("maven", "default", it.url) +// .setSnapshotPolicy(RepositoryPolicy(false, null, null)) + .build() + } private fun collectRequest(artifact: Artifact) : CollectRequest { with(CollectRequest()) { @@ -66,8 +68,28 @@ class Aether(val localRepo: File = File(homeDir(TEST_DIR))) { } } - fun resolveVersion(artifact: Artifact) - = system.resolveVersion(session, VersionRequest(artifact, kobaltRepositories, null)) + fun resolveVersion(artifact: Artifact): VersionRangeResult? { + val metadata = DefaultMetadata(artifact.groupId, artifact.artifactId, "maven-metadata.xml", + org.eclipse.aether.metadata.Metadata.Nature.RELEASE) + + val r = system.resolveMetadata(session, kobaltRepositories.map { + MetadataRequest(metadata, it, null).apply { + isFavorLocalRepository = false + } + }) + + +// kobaltRepositories.forEach { +// val request = MetadataRequest(metadata, it, null).apply { +// isFavorLocalRepository = false +// } +// val r = system.resolveMetadata(session, listOf(request)) +// println("Repo: $it " + r) +// } + val request = VersionRangeRequest(artifact, kobaltRepositories, null) + val result = system.resolveVersionRange(session, request) + return result + } fun resolve(artifact: Artifact): List? { try { @@ -161,13 +183,14 @@ class AetherDependency(val artifact: Artifact): IClasspathDependency, Comparable fun main(argv: Array) { KobaltLogger.LOG_LEVEL = 2 val aether = Aether() - val artifact = DefaultArtifact("org.testng:testng:RELEASE") + val artifact = DefaultArtifact("org.testng:testng:(0,]") aether.resolveVersion(artifact)?.let { versionResult -> - println("Latest version: " + versionResult.version + " repo: " + versionResult.repository) - val newArtifact = DefaultArtifact(artifact.groupId, artifact.artifactId, artifact.extension, - versionResult.version) - val artifactResult = aether.resolve(newArtifact) - println(" File: " + artifactResult) + println("Latest version: " + versionResult + " " + versionResult.highestVersion) + println("") +// val newArtifact = DefaultArtifact(artifact.groupId, artifact.artifactId, artifact.extension, +// versionResult.highestVersion) +// val artifactResult = aether.resolve(newArtifact) +// println(" File: " + artifactResult) } val d2 = Aether().resolve(artifact) // val dd = Aether().resolve("org.testng:testng:6.9.9")