Merge remote-tracking branch 'origin/pr/401'

Conflicts:
	libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt
	libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt
This commit is contained in:
Natalia Ukhorskaya
2014-03-12 11:28:23 +04:00
13 changed files with 375 additions and 16 deletions
@@ -38,10 +38,11 @@ import org.gradle.api.artifacts.ConfigurationContainer
import org.gradle.api.artifacts.Dependency
import java.util.HashSet
import org.gradle.api.UnknownDomainObjectException
import org.gradle.api.initialization.dsl.ScriptHandler
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
open class KotlinPlugin: Plugin<Project> {
open class KotlinPlugin(val scriptHandler: ScriptHandler): Plugin<Project> {
public override fun apply(project: Project) {
val javaBasePlugin = project.getPlugins().apply(javaClass<JavaBasePlugin>())
@@ -53,7 +54,8 @@ open class KotlinPlugin: Plugin<Project> {
configureKDoc(project, javaPluginConvention)
val version = project.getProperties()!!.get("kotlin.gradle.plugin.version") as String
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils.resolveDependencies(project, "org.jetbrains.kotlin:kotlin-jdk-annotations:$version"))
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils(scriptHandler).resolveDependencies("org.jetbrains.kotlin:kotlin-jdk-annotations:$version"))
}
@@ -121,7 +123,7 @@ open class KotlinPlugin: Plugin<Project> {
}
open class KotlinAndroidPlugin: Plugin<Project> {
open class KotlinAndroidPlugin(val scriptHandler: ScriptHandler): Plugin<Project> {
val log = Logging.getLogger(getClass())
@@ -167,7 +169,7 @@ open class KotlinAndroidPlugin: Plugin<Project> {
})
val version = project.getProperties()!!.get("kotlin.gradle.plugin.version") as String
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils.resolveDependencies(project, "org.jetbrains.kotlin:kotlin-android-sdk-annotations:$version"));
project.getExtensions().add(DEFAULT_ANNOTATIONS, GradleUtils(scriptHandler).resolveDependencies("org.jetbrains.kotlin:kotlin-android-sdk-annotations:$version"));
}
private fun processVariants(variants: DefaultDomainObjectSet<out BaseVariant>, project: Project, androidExt: BaseExtension): Unit {
@@ -272,17 +274,15 @@ open class KSpec<T: Any?>(val predicate: (T) -> Boolean): Spec<T> {
}
}
open class GradleUtils() {
class object {
public fun resolveDependencies(project: Project, vararg coordinates: String): Collection<File> {
val dependencyHandler : DependencyHandler = project.getBuildscript().getDependencies()
val configurationsContainer : ConfigurationContainer = project.getBuildscript().getConfigurations()
open class GradleUtils(val scriptHandler: ScriptHandler) {
public fun resolveDependencies(vararg coordinates: String): Collection<File> {
val dependencyHandler : DependencyHandler = scriptHandler.getDependencies()
val configurationsContainer : ConfigurationContainer = scriptHandler.getConfigurations()
val deps = coordinates.map { dependencyHandler.create(it) }
val configuration = configurationsContainer.detachedConfiguration(*deps.copyToArray())
val deps = coordinates.map { dependencyHandler.create(it) }
val configuration = configurationsContainer.detachedConfiguration(*deps.copyToArray())
return configuration.getResolvedConfiguration().getFiles(KSpec({ dep -> true }))!!
}
return configuration.getResolvedConfiguration().getFiles(KSpec({ dep -> true }))!!
}
}