1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 16:07:12 -07:00

Move IClasspathDependency in its own package.

This commit is contained in:
Cedric Beust 2015-11-28 11:06:26 -08:00
parent c14eb2adbf
commit 7af789d282
24 changed files with 85 additions and 60 deletions

View file

@ -4,7 +4,7 @@ import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.api.Project
import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.SystemProperties
import java.io.File

View file

@ -5,7 +5,7 @@ import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.internal.PluginInfo
import com.beust.kobalt.internal.TaskManager
import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors

View file

@ -1,6 +1,8 @@
package com.beust.kobalt
import com.beust.kobalt.maven.*
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.Node
import com.beust.kobalt.misc.log
import com.google.inject.Inject

View file

@ -1,6 +1,6 @@
package com.beust.kobalt.api
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
/**
* Plugins that export classpath entries need to implement this interface.

View file

@ -1,7 +1,7 @@
package com.beust.kobalt.api
import com.beust.kobalt.TaskResult
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
/**
* Plugins that can run a project (task "run" or "test") should implement this interface.

View file

@ -3,8 +3,8 @@ package com.beust.kobalt.api
import com.beust.kobalt.Plugins
import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.internal.IProjectInfo
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.MavenDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.plugin.android.AndroidPlugin
import com.beust.kobalt.plugin.android.Proguard

View file

@ -6,7 +6,7 @@ import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.IRunnerContributor
import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.log
import java.io.File

View file

@ -3,7 +3,7 @@ package com.beust.kobalt.internal
import com.beust.kobalt.api.IRunnerContributor
import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
public class JUnitRunner() : GenericTestRunner() {

View file

@ -5,7 +5,7 @@ import com.beust.kobalt.TaskResult
import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.google.inject.Inject
import java.io.File
import java.util.*

View file

@ -3,7 +3,7 @@ package com.beust.kobalt.internal
import com.beust.kobalt.api.IRunnerContributor
import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KFiles
import java.io.File

View file

@ -6,8 +6,8 @@ import com.beust.kobalt.internal.PluginInfo
import com.beust.kobalt.internal.build.BuildFile
import com.beust.kobalt.internal.build.BuildFileCompiler
import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.MavenDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.log
import com.google.gson.Gson

View file

@ -1,6 +1,9 @@
package com.beust.kobalt.maven
import com.beust.kobalt.KobaltException
import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KobaltExecutors
import java.util.concurrent.ExecutorService
import javax.inject.Inject

View file

@ -4,6 +4,8 @@ import com.beust.kobalt.api.IClasspathContributor
import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project
import com.beust.kobalt.api.ProjectDescription
import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn

View file

@ -1,5 +1,6 @@
package com.beust.kobalt.maven
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.google.inject.assistedinject.Assisted
import java.io.*
import java.net.HttpURLConnection

View file

@ -0,0 +1,39 @@
package com.beust.kobalt.maven.dependency
import com.beust.kobalt.maven.CompletedFuture
import org.apache.maven.model.Dependency
import java.io.File
open public class FileDependency(open val fileName: String) : IClasspathDependency, Comparable<FileDependency> {
override val id = IClasspathDependency.PREFIX_FILE + fileName
override val jarFile = CompletedFuture(File(fileName))
override fun toMavenDependencies(): Dependency {
with(Dependency()) {
systemPath = jarFile.get().absolutePath
return this
}
}
override val shortId = fileName
override fun directDependencies() = arrayListOf<IClasspathDependency>()
override fun compareTo(other: FileDependency) = fileName.compareTo(other.fileName)
override fun toString() = fileName
override fun equals(other: Any?): Boolean{
if (this === other) return true
if (other?.javaClass != javaClass) return false
other as FileDependency
if (id != other.id) return false
return true
}
override fun hashCode() = id.hashCode()
}

View file

@ -1,11 +1,17 @@
package com.beust.kobalt.maven
package com.beust.kobalt.maven.dependency
import org.apache.maven.model.Dependency
import java.io.File
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.ExecutorService
import java.util.concurrent.Future
/**
* Encapsulate a dependency that can be put on the classpath. This interface
* has two subclasses: FileDependency (a physical file) and MavenDependency,
* which represents a dependency living in a Maven repo.
*/
interface IClasspathDependency {
companion object {
val PREFIX_FILE: String = "file://"
@ -18,7 +24,7 @@ interface IClasspathDependency {
val jarFile: Future<File>
/** Convert to a Maven <dependency> model tag */
fun toMavenDependencies() : org.apache.maven.model.Dependency
fun toMavenDependencies() : Dependency
/** The list of dependencies for this element (not the transitive closure */
fun directDependencies(): List<IClasspathDependency>
@ -53,38 +59,4 @@ interface IClasspathDependency {
}
return result
}
}
open public class FileDependency(open val fileName: String) : IClasspathDependency, Comparable<FileDependency> {
override val id = IClasspathDependency.PREFIX_FILE + fileName
override val jarFile = CompletedFuture(File(fileName))
override fun toMavenDependencies(): org.apache.maven.model.Dependency {
with(org.apache.maven.model.Dependency()) {
systemPath = jarFile.get().absolutePath
return this
}
}
override val shortId = fileName
override fun directDependencies() = arrayListOf<IClasspathDependency>()
override fun compareTo(other: FileDependency) = fileName.compareTo(other.fileName)
override fun toString() = fileName
override fun equals(other: Any?): Boolean{
if (this === other) return true
if (other?.javaClass != javaClass) return false
other as FileDependency
if (id != other.id) return false
return true
}
override fun hashCode() = id.hashCode()
}
}

View file

@ -1,11 +1,13 @@
package com.beust.kobalt.maven
package com.beust.kobalt.maven.dependency
import com.beust.kobalt.KobaltException
import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.maven.*
import com.beust.kobalt.misc.DependencyExecutor
import com.beust.kobalt.misc.Versions
import com.beust.kobalt.misc.warn
import com.google.inject.Key
import org.apache.maven.model.Dependency
import java.io.File
import java.util.concurrent.ExecutorService
import java.util.concurrent.Future
@ -59,8 +61,8 @@ public class MavenDependency @Inject constructor(mavenId: MavenId,
override val id = mavenId.toId
override fun toMavenDependencies(): org.apache.maven.model.Dependency {
return org.apache.maven.model.Dependency().apply {
override fun toMavenDependencies(): Dependency {
return Dependency().apply {
setGroupId(groupId)
setArtifactId(artifactId)
setVersion(version)

View file

@ -2,7 +2,7 @@ package com.beust.kobalt.misc
import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.MavenDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.maven.MavenId
import javax.inject.Inject

View file

@ -5,9 +5,9 @@ import com.beust.kobalt.api.*
import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.internal.CompilerActionInfo
import com.beust.kobalt.maven.FileDependency
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.MavenId
import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.RunCommand
import com.beust.kobalt.misc.log

View file

@ -6,7 +6,7 @@ import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.RunCommand
import com.beust.kobalt.misc.warn

View file

@ -8,8 +8,8 @@ import com.beust.kobalt.internal.CompilerActionInfo
import com.beust.kobalt.internal.ICompilerAction
import com.beust.kobalt.internal.JvmCompiler
import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.FileDependency
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors
@ -127,7 +127,7 @@ class KotlinCompiler @Inject constructor(val localRepo : LocalRepo,
// getKotlinCompilerJar("kotlin-compiler-embeddable"))
// .map { FileDependency(it) }
val dependencies = compileDependencies + otherClasspath.map { FileDependency(it)}
val dependencies = compileDependencies + otherClasspath.map { FileDependency(it) }
val info = CompilerActionInfo(project?.directory, dependencies, sourceFiles, outputDir, args)
return jvmCompiler.doCompile(project, context, compilerAction, info)
}

View file

@ -11,6 +11,9 @@ import com.beust.kobalt.internal.CompilerActionInfo
import com.beust.kobalt.internal.JvmCompiler
import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.*
import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn

View file

@ -11,7 +11,7 @@ import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.glob
import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.IClasspathDependency
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors

View file

@ -2,6 +2,7 @@ package com.beust.kobalt.maven
import com.beust.kobalt.Args
import com.beust.kobalt.TestModule
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.DependencyExecutor
import com.beust.kobalt.misc.MainModule
import com.google.inject.Guice