1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27: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.Project
import com.beust.kobalt.api.annotation.Directive import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.maven.DepFactory 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.misc.KobaltExecutors
import com.beust.kobalt.SystemProperties import com.beust.kobalt.SystemProperties
import java.io.File 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.PluginInfo
import com.beust.kobalt.internal.TaskManager import com.beust.kobalt.internal.TaskManager
import com.beust.kobalt.maven.DepFactory 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.maven.LocalRepo
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors

View file

@ -1,6 +1,8 @@
package com.beust.kobalt package com.beust.kobalt
import com.beust.kobalt.maven.* 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.Node
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.google.inject.Inject import com.google.inject.Inject

View file

@ -1,6 +1,6 @@
package com.beust.kobalt.api 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. * Plugins that export classpath entries need to implement this interface.

View file

@ -1,7 +1,7 @@
package com.beust.kobalt.api package com.beust.kobalt.api
import com.beust.kobalt.TaskResult 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. * 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.Plugins
import com.beust.kobalt.api.annotation.Directive import com.beust.kobalt.api.annotation.Directive
import com.beust.kobalt.internal.IProjectInfo import com.beust.kobalt.internal.IProjectInfo
import com.beust.kobalt.maven.IClasspathDependency import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.MavenDependency import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.plugin.android.AndroidPlugin import com.beust.kobalt.plugin.android.AndroidPlugin
import com.beust.kobalt.plugin.android.Proguard 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.IRunnerContributor
import com.beust.kobalt.api.KobaltContext import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project 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.KFiles
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import java.io.File 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.IRunnerContributor
import com.beust.kobalt.api.KobaltContext import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.IClasspathDependency import com.beust.kobalt.maven.dependency.IClasspathDependency
public class JUnitRunner() : GenericTestRunner() { 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.KobaltContext
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.DependencyManager 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 com.google.inject.Inject
import java.io.File import java.io.File
import java.util.* 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.IRunnerContributor
import com.beust.kobalt.api.KobaltContext import com.beust.kobalt.api.KobaltContext
import com.beust.kobalt.api.Project 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.KFiles
import java.io.File 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.BuildFile
import com.beust.kobalt.internal.build.BuildFileCompiler import com.beust.kobalt.internal.build.BuildFileCompiler
import com.beust.kobalt.maven.DependencyManager import com.beust.kobalt.maven.DependencyManager
import com.beust.kobalt.maven.IClasspathDependency import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.MavenDependency import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.log import com.beust.kobalt.misc.log
import com.google.gson.Gson import com.google.gson.Gson

View file

@ -1,6 +1,9 @@
package com.beust.kobalt.maven package com.beust.kobalt.maven
import com.beust.kobalt.KobaltException 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 com.beust.kobalt.misc.KobaltExecutors
import java.util.concurrent.ExecutorService import java.util.concurrent.ExecutorService
import javax.inject.Inject 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.KobaltContext
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.api.ProjectDescription 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.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn

View file

@ -1,5 +1,6 @@
package com.beust.kobalt.maven package com.beust.kobalt.maven
import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.google.inject.assistedinject.Assisted import com.google.inject.assistedinject.Assisted
import java.io.* import java.io.*
import java.net.HttpURLConnection 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.io.File
import java.util.* import java.util.*
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.ExecutorService import java.util.concurrent.ExecutorService
import java.util.concurrent.Future 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 { interface IClasspathDependency {
companion object { companion object {
val PREFIX_FILE: String = "file://" val PREFIX_FILE: String = "file://"
@ -18,7 +24,7 @@ interface IClasspathDependency {
val jarFile: Future<File> val jarFile: Future<File>
/** Convert to a Maven <dependency> model tag */ /** 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 */ /** The list of dependencies for this element (not the transitive closure */
fun directDependencies(): List<IClasspathDependency> fun directDependencies(): List<IClasspathDependency>
@ -54,37 +60,3 @@ interface IClasspathDependency {
return result 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.KobaltException
import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.Kobalt
import com.beust.kobalt.maven.*
import com.beust.kobalt.misc.DependencyExecutor import com.beust.kobalt.misc.DependencyExecutor
import com.beust.kobalt.misc.Versions import com.beust.kobalt.misc.Versions
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn
import com.google.inject.Key import com.google.inject.Key
import org.apache.maven.model.Dependency
import java.io.File import java.io.File
import java.util.concurrent.ExecutorService import java.util.concurrent.ExecutorService
import java.util.concurrent.Future import java.util.concurrent.Future
@ -59,8 +61,8 @@ public class MavenDependency @Inject constructor(mavenId: MavenId,
override val id = mavenId.toId override val id = mavenId.toId
override fun toMavenDependencies(): org.apache.maven.model.Dependency { override fun toMavenDependencies(): Dependency {
return org.apache.maven.model.Dependency().apply { return Dependency().apply {
setGroupId(groupId) setGroupId(groupId)
setArtifactId(artifactId) setArtifactId(artifactId)
setVersion(version) setVersion(version)

View file

@ -2,7 +2,7 @@ package com.beust.kobalt.misc
import com.beust.kobalt.api.Project import com.beust.kobalt.api.Project
import com.beust.kobalt.maven.DepFactory 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 com.beust.kobalt.maven.MavenId
import javax.inject.Inject 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.Directive
import com.beust.kobalt.api.annotation.Task import com.beust.kobalt.api.annotation.Task
import com.beust.kobalt.internal.CompilerActionInfo 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.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.KFiles
import com.beust.kobalt.misc.RunCommand import com.beust.kobalt.misc.RunCommand
import com.beust.kobalt.misc.log 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.api.annotation.Task
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DependencyManager 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.KobaltExecutors
import com.beust.kobalt.misc.RunCommand import com.beust.kobalt.misc.RunCommand
import com.beust.kobalt.misc.warn 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.ICompilerAction
import com.beust.kobalt.internal.JvmCompiler import com.beust.kobalt.internal.JvmCompiler
import com.beust.kobalt.maven.DepFactory import com.beust.kobalt.maven.DepFactory
import com.beust.kobalt.maven.FileDependency import com.beust.kobalt.maven.dependency.FileDependency
import com.beust.kobalt.maven.IClasspathDependency import com.beust.kobalt.maven.dependency.IClasspathDependency
import com.beust.kobalt.maven.LocalRepo import com.beust.kobalt.maven.LocalRepo
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
@ -127,7 +127,7 @@ class KotlinCompiler @Inject constructor(val localRepo : LocalRepo,
// getKotlinCompilerJar("kotlin-compiler-embeddable")) // getKotlinCompilerJar("kotlin-compiler-embeddable"))
// .map { FileDependency(it) } // .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) val info = CompilerActionInfo(project?.directory, dependencies, sourceFiles, outputDir, args)
return jvmCompiler.doCompile(project, context, compilerAction, info) 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.JvmCompiler
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.* 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.KFiles
import com.beust.kobalt.misc.KobaltExecutors import com.beust.kobalt.misc.KobaltExecutors
import com.beust.kobalt.misc.warn 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.glob
import com.beust.kobalt.internal.JvmCompilerPlugin import com.beust.kobalt.internal.JvmCompilerPlugin
import com.beust.kobalt.maven.DependencyManager 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.maven.LocalRepo
import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.KobaltExecutors 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.Args
import com.beust.kobalt.TestModule import com.beust.kobalt.TestModule
import com.beust.kobalt.maven.dependency.MavenDependency
import com.beust.kobalt.misc.DependencyExecutor import com.beust.kobalt.misc.DependencyExecutor
import com.beust.kobalt.misc.MainModule import com.beust.kobalt.misc.MainModule
import com.google.inject.Guice import com.google.inject.Guice