Log Kotlin Gradle subplugin loading

This commit is contained in:
Yan Zhulanow
2015-02-26 21:39:43 +03:00
parent 2f83e600f5
commit 9be33338ef
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.internal.KotlinSourceSet
import java.io.File import java.io.File
import org.gradle.api.Action import org.gradle.api.Action
import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.AbstractCompile
import org.gradle.api.logging.Logging
import com.android.build.gradle.BaseExtension import com.android.build.gradle.BaseExtension
import com.android.build.gradle.AppExtension import com.android.build.gradle.AppExtension
import com.android.build.gradle.LibraryExtension import com.android.build.gradle.LibraryExtension
@@ -38,6 +37,7 @@ import org.gradle.api.tasks.Delete
import groovy.lang.Closure import groovy.lang.Closure
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
import java.util.ServiceLoader import java.util.ServiceLoader
import org.gradle.api.logging.*
val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations" val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations"
@@ -144,7 +144,7 @@ class Kotlin2JvmSourceSetProcessor(
} }
} }
loadSubplugins(project).addSubpluginArguments(project, kotlinTask) loadSubplugins(project, logger).addSubpluginArguments(project, kotlinTask)
} }
} }
@@ -317,7 +317,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
sourceSets.getByName("androidTest") sourceSets.getByName("androidTest")
} }
val subpluginEnvironment = loadSubplugins(project) val subpluginEnvironment = loadSubplugins(project, logger)
for (variant in variants) { for (variant in variants) {
if (variant is LibraryVariant || variant is ApkVariant) { if (variant is LibraryVariant || variant is ApkVariant) {
@@ -421,7 +421,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
} }
} }
private fun loadSubplugins(project: Project): SubpluginEnvironment { private fun loadSubplugins(project: Project, logger: Logger): SubpluginEnvironment {
try { try {
val subplugins = ServiceLoader.load( val subplugins = ServiceLoader.load(
javaClass<KotlinGradleSubplugin>(), project.getBuildscript().getClassLoader()).toList() javaClass<KotlinGradleSubplugin>(), project.getBuildscript().getClassLoader()).toList()
@@ -438,17 +438,18 @@ private fun loadSubplugins(project: Project): SubpluginEnvironment {
subpluginClasspaths.put(subplugin, files) subpluginClasspaths.put(subplugin, files)
} }
return SubpluginEnvironment(subpluginClasspaths, subplugins) return SubpluginEnvironment(subpluginClasspaths, subplugins, logger)
} catch (e: NoClassDefFoundError) { } catch (e: NoClassDefFoundError) {
// Skip plugin loading if KotlinGradleSubplugin is not defined. // Skip plugin loading if KotlinGradleSubplugin is not defined.
// It is true now for tests in kotlin-gradle-plugin-core. // It is true now for tests in kotlin-gradle-plugin-core.
return SubpluginEnvironment(mapOf(), listOf()) return SubpluginEnvironment(mapOf(), listOf(), logger)
} }
} }
private class SubpluginEnvironment( private class SubpluginEnvironment(
val subpluginClasspaths: Map<KotlinGradleSubplugin, List<String>>, val subpluginClasspaths: Map<KotlinGradleSubplugin, List<String>>,
val subplugins: List<KotlinGradleSubplugin> val subplugins: List<KotlinGradleSubplugin>,
val logger: Logger
) { ) {
fun addSubpluginArguments(project: Project, compileTask: AbstractCompile) { fun addSubpluginArguments(project: Project, compileTask: AbstractCompile) {
@@ -458,6 +459,11 @@ private class SubpluginEnvironment(
subplugins.forEach { subplugin -> subplugins.forEach { subplugin ->
val args = subplugin.getExtraArguments(project, compileTask) val args = subplugin.getExtraArguments(project, compileTask)
with (subplugin) {
logger.debug("Subplugin ${getPluginName()} (${getGroupName()}:${getArtifactName()}) loaded.")
}
val subpluginClasspath = subpluginClasspaths[subplugin] val subpluginClasspath = subpluginClasspaths[subplugin]
if (args != null && subpluginClasspath != null) { if (args != null && subpluginClasspath != null) {
realPluginClasspaths.addAll(subpluginClasspath) realPluginClasspaths.addAll(subpluginClasspath)