mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 16:28:12 -07:00
Track dependencies downloaded on the server's websocket.
This commit is contained in:
parent
a52dd19f3f
commit
5eb92ed10b
6 changed files with 50 additions and 12 deletions
|
@ -0,0 +1,5 @@
|
|||
package com.beust.kobalt.internal.eventbus
|
||||
|
||||
import org.eclipse.aether.repository.ArtifactRepository
|
||||
|
||||
class ArtifactDownloadedEvent(val artifactId: String, val repository: ArtifactRepository)
|
|
@ -13,6 +13,7 @@ import com.beust.kobalt.misc.KobaltLogger
|
|||
import com.beust.kobalt.misc.Versions
|
||||
import com.beust.kobalt.misc.log
|
||||
import com.beust.kobalt.misc.warn
|
||||
import com.google.common.eventbus.EventBus
|
||||
import com.google.inject.Inject
|
||||
import com.google.inject.Singleton
|
||||
import org.eclipse.aether.artifact.Artifact
|
||||
|
@ -73,9 +74,9 @@ class ExcludeOptionalDependencyFilter: DependencyFilter {
|
|||
}
|
||||
|
||||
@Singleton
|
||||
class Aether(val localRepo: File, val settings: KobaltSettings) {
|
||||
class Aether(val localRepo: File, val settings: KobaltSettings, val eventBus: EventBus) {
|
||||
private val system = Booter.newRepositorySystem()
|
||||
private val session = Booter.newRepositorySystemSession(system, localRepo, settings)
|
||||
private val session = Booter.newRepositorySystemSession(system, localRepo, settings, eventBus)
|
||||
private val classpathFilter = AndDependencyFilter(
|
||||
ExcludeOptionalDependencyFilter(),
|
||||
DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE))
|
||||
|
@ -245,7 +246,8 @@ class AetherDependency(val artifact: Artifact): IClasspathDependency, Comparable
|
|||
fun main(argv: Array<String>) {
|
||||
KobaltLogger.LOG_LEVEL = 1
|
||||
val id = "org.testng:testng:6.9.11"
|
||||
val aether = KobaltAether(KobaltSettings(KobaltSettingsXml()), Aether(File(homeDir(".aether")),KobaltSettings(KobaltSettingsXml())))
|
||||
val aether = KobaltAether(KobaltSettings(KobaltSettingsXml()), Aether(File(homeDir(".aether")),
|
||||
KobaltSettings(KobaltSettingsXml()), EventBus()))
|
||||
val r = aether.resolve(id)
|
||||
val r2 = aether.resolve(id)
|
||||
val d = org.eclipse.aether.artifact.DefaultArtifact("org.testng:testng:6.9")
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.beust.kobalt.maven.aether
|
||||
|
||||
import com.beust.kobalt.internal.KobaltSettings
|
||||
import com.google.common.eventbus.EventBus
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession
|
||||
import org.eclipse.aether.RepositorySystem
|
||||
import org.eclipse.aether.repository.LocalRepository
|
||||
|
@ -15,14 +16,15 @@ object Booter {
|
|||
// return org.eclipse.aether.examples.plexus.PlexusRepositorySystemFactory.newRepositorySystem();
|
||||
}
|
||||
|
||||
fun newRepositorySystemSession(system: RepositorySystem, repo: File, settings: KobaltSettings): DefaultRepositorySystemSession {
|
||||
fun newRepositorySystemSession(system: RepositorySystem, repo: File, settings: KobaltSettings,
|
||||
eventBus: EventBus): DefaultRepositorySystemSession {
|
||||
val session = MavenRepositorySystemUtils.newSession(settings)
|
||||
|
||||
val localRepo = LocalRepository(repo.absolutePath)
|
||||
session.localRepositoryManager = system.newLocalRepositoryManager(session, localRepo)
|
||||
|
||||
session.transferListener = ConsoleTransferListener()
|
||||
session.repositoryListener = ConsoleRepositoryListener()
|
||||
session.repositoryListener = ConsoleRepositoryListener(eventBus = eventBus)
|
||||
|
||||
// uncomment to generate dirty trees
|
||||
// session.setDependencyGraphTransformer( null );
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.beust.kobalt.maven.aether
|
||||
|
||||
import com.beust.kobalt.internal.eventbus.ArtifactDownloadedEvent
|
||||
import com.beust.kobalt.misc.log
|
||||
import com.google.common.eventbus.EventBus
|
||||
import org.eclipse.aether.AbstractRepositoryListener
|
||||
import org.eclipse.aether.RepositoryEvent
|
||||
import java.io.PrintStream
|
||||
|
@ -8,7 +10,8 @@ import java.io.PrintStream
|
|||
/**
|
||||
* A simplistic repository listener that logs events to the console.
|
||||
*/
|
||||
class ConsoleRepositoryListener @JvmOverloads constructor(out: PrintStream? = null) : AbstractRepositoryListener() {
|
||||
class ConsoleRepositoryListener @JvmOverloads constructor(out: PrintStream? = null, val eventBus: EventBus)
|
||||
: AbstractRepositoryListener() {
|
||||
companion object {
|
||||
val LOG_LEVEL = 4
|
||||
}
|
||||
|
@ -53,8 +56,10 @@ class ConsoleRepositoryListener @JvmOverloads constructor(out: PrintStream? = nu
|
|||
}
|
||||
|
||||
override fun artifactDownloaded(event: RepositoryEvent?) {
|
||||
if (event?.file != null) {
|
||||
log(1, "Downloaded artifact " + event!!.artifact + " from " + event.repository)
|
||||
if (event?.file != null && event?.artifact != null) {
|
||||
val artifact = event!!.artifact
|
||||
log(1, "Downloaded artifact " + artifact + " from " + event.repository)
|
||||
eventBus.post(ArtifactDownloadedEvent(artifact.toString(), event.repository))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue