From 50641b14dffb477bed327518b21374d095976276 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 24 Mar 2016 15:00:12 +0400 Subject: [PATCH] Working on LATEST. --- .../com/beust/kobalt/maven/DepFactory.kt | 5 +--- .../com/beust/kobalt/maven/aether/Aether.kt | 30 +++++++++++++++---- .../com/beust/kobalt/maven/aether/Booter.kt | 5 ++-- .../maven/aether/ConsoleRepositoryListener.kt | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt index ef2bc700..bfe201fa 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/DepFactory.kt @@ -4,7 +4,6 @@ import com.beust.kobalt.api.IClasspathDependency import com.beust.kobalt.api.Kobalt import com.beust.kobalt.maven.aether.KobaltAether import com.beust.kobalt.maven.dependency.FileDependency -import com.beust.kobalt.maven.dependency.MavenDependency import com.beust.kobalt.misc.DependencyExecutor import com.beust.kobalt.misc.KobaltExecutors import com.google.inject.Key @@ -12,10 +11,8 @@ import java.util.concurrent.ExecutorService import javax.inject.Inject public class DepFactory @Inject constructor(val localRepo: LocalRepo, - val remoteRepo: RepoFinder, val executors: KobaltExecutors, - val aether: KobaltAether, - val mavenDependencyFactory: MavenDependency.IFactory) { + val aether: KobaltAether) { companion object { val defExecutor : ExecutorService by lazy { 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 a23f32d7..9b5e5e90 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 @@ -5,6 +5,7 @@ import com.beust.kobalt.api.IClasspathDependency import com.beust.kobalt.api.Kobalt import com.beust.kobalt.homeDir import com.beust.kobalt.maven.CompletedFuture +import com.beust.kobalt.misc.KobaltLogger import com.beust.kobalt.misc.Versions import com.beust.kobalt.misc.log import com.beust.kobalt.misc.warn @@ -15,9 +16,11 @@ 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.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.util.artifact.JavaScopes import org.eclipse.aether.util.filter.AndDependencyFilter import org.eclipse.aether.util.filter.DependencyFilterUtils @@ -51,16 +54,21 @@ class Aether(val localRepo: File = File(homeDir(TEST_DIR))) { private val classpathFilter = AndDependencyFilter( ExcludeOptionalDependencyFilter(), DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE)) + private val kobaltRepositories : List + get() = Kobalt.repos.map { RemoteRepository.Builder("maven", "default", it.url).build() } private fun collectRequest(artifact: Artifact) : CollectRequest { with(CollectRequest()) { root = Dependency(artifact, JavaScopes.COMPILE) - repositories = Booter.newRepositories(Kobalt.repos.map { it.url }) + repositories = kobaltRepositories return this } } + fun resolveVersion(artifact: Artifact) + = system.resolveVersion(session, VersionRequest(artifact, kobaltRepositories, null)) + fun resolve(artifact: Artifact): List? { try { val dependencyRequest = DependencyRequest(collectRequest(artifact), classpathFilter) @@ -151,8 +159,20 @@ class AetherDependency(val artifact: Artifact): IClasspathDependency, Comparable } fun main(argv: Array) { - val d2 = Aether().transitiveDependencies(DefaultArtifact("com.google.inject:guice-parent:4.0")) -// val dd = Aether().directDependencies("org.testng:testng:6.9.9") - val artifact = d2?.root?.artifact - println("DD: " + d2) + KobaltLogger.LOG_LEVEL = 2 + val aether = Aether() + val artifact = DefaultArtifact("org.testng:testng:RELEASE") + 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) + } + val d2 = Aether().resolve(artifact) +// val dd = Aether().resolve("org.testng:testng:6.9.9") +// val artifact = d2?.root?.artifact + if (d2 != null && d2.size > 0) { + println("DD: " + d2) + } } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Booter.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Booter.kt index e48b5bcc..ac6fee3e 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Booter.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Booter.kt @@ -3,7 +3,6 @@ package com.beust.kobalt.maven.aether import org.eclipse.aether.DefaultRepositorySystemSession import org.eclipse.aether.RepositorySystem import org.eclipse.aether.repository.LocalRepository -import org.eclipse.aether.repository.RemoteRepository import java.io.File object Booter { @@ -30,7 +29,7 @@ object Booter { return session } - fun newRepositories(repositories: Collection) - = repositories.map { RemoteRepository.Builder("maven", "default", it).build() } +// fun newRepositories(repositories: Collection) +// = repositories.map { RemoteRepository.Builder("maven", "default", it).build() } } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/ConsoleRepositoryListener.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/ConsoleRepositoryListener.kt index b5481ac4..b255c59a 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/ConsoleRepositoryListener.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/ConsoleRepositoryListener.kt @@ -46,7 +46,7 @@ class ConsoleRepositoryListener @JvmOverloads constructor(out: PrintStream? = nu } override fun artifactDownloading(event: RepositoryEvent?) { - log(2, "Downloading artifact " + event!!.artifact + " from " + event.repository) + log(1, "Downloading artifact " + event!!.artifact + " from " + event.repository) } override fun artifactDownloaded(event: RepositoryEvent?) {