Refactoring: remove unused ScriptHandler
This commit is contained in:
+5
-28
@@ -101,7 +101,6 @@ class Kotlin2JvmSourceSetProcessor(
|
||||
project: Project,
|
||||
javaBasePlugin: JavaBasePlugin,
|
||||
sourceSet: SourceSet,
|
||||
val scriptHandler: ScriptHandler,
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinSourceSetProvider: KotlinSourceSetProvider
|
||||
) : KotlinSourceSetProcessor<KotlinCompile>(
|
||||
@@ -168,7 +167,6 @@ class Kotlin2JsSourceSetProcessor(
|
||||
project: Project,
|
||||
javaBasePlugin: JavaBasePlugin,
|
||||
sourceSet: SourceSet,
|
||||
val scriptHandler: ScriptHandler,
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinSourceSetProvider: KotlinSourceSetProvider
|
||||
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
||||
@@ -217,7 +215,7 @@ class Kotlin2JsSourceSetProcessor(
|
||||
}
|
||||
|
||||
|
||||
abstract class AbstractKotlinPlugin @Inject constructor(val scriptHandler: ScriptHandler, val tasksProvider: KotlinTasksProvider, val kotlinSourceSetProvider: KotlinSourceSetProvider) : Plugin<Project> {
|
||||
abstract class AbstractKotlinPlugin(val tasksProvider: KotlinTasksProvider, val kotlinSourceSetProvider: KotlinSourceSetProvider) : Plugin<Project> {
|
||||
abstract fun buildSourceSetProcessor(project: Project, javaBasePlugin: JavaBasePlugin, sourceSet: SourceSet): KotlinSourceSetProcessor<*>
|
||||
|
||||
override fun apply(project: Project) {
|
||||
@@ -242,12 +240,11 @@ abstract class AbstractKotlinPlugin @Inject constructor(val scriptHandler: Scrip
|
||||
|
||||
|
||||
open class KotlinPlugin(
|
||||
scriptHandler: ScriptHandler,
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinSourceSetProvider: KotlinSourceSetProvider
|
||||
) : AbstractKotlinPlugin(scriptHandler, tasksProvider, kotlinSourceSetProvider) {
|
||||
) : AbstractKotlinPlugin(tasksProvider, kotlinSourceSetProvider) {
|
||||
override fun buildSourceSetProcessor(project: Project, javaBasePlugin: JavaBasePlugin, sourceSet: SourceSet) =
|
||||
Kotlin2JvmSourceSetProcessor(project, javaBasePlugin, sourceSet, scriptHandler, tasksProvider, kotlinSourceSetProvider)
|
||||
Kotlin2JvmSourceSetProcessor(project, javaBasePlugin, sourceSet, tasksProvider, kotlinSourceSetProvider)
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.createKaptExtension()
|
||||
@@ -257,16 +254,14 @@ open class KotlinPlugin(
|
||||
|
||||
|
||||
open class Kotlin2JsPlugin(
|
||||
scriptHandler: ScriptHandler,
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinSourceSetProvider: KotlinSourceSetProvider
|
||||
) : AbstractKotlinPlugin(scriptHandler, tasksProvider, kotlinSourceSetProvider) {
|
||||
) : AbstractKotlinPlugin(tasksProvider, kotlinSourceSetProvider) {
|
||||
override fun buildSourceSetProcessor(project: Project, javaBasePlugin: JavaBasePlugin, sourceSet: SourceSet) =
|
||||
Kotlin2JsSourceSetProcessor(project, javaBasePlugin, sourceSet, scriptHandler, tasksProvider, kotlinSourceSetProvider)
|
||||
Kotlin2JsSourceSetProcessor(project, javaBasePlugin, sourceSet, tasksProvider, kotlinSourceSetProvider)
|
||||
}
|
||||
|
||||
open class KotlinAndroidPlugin(
|
||||
val scriptHandler: ScriptHandler,
|
||||
val tasksProvider: KotlinTasksProvider,
|
||||
private val kotlinSourceSetProvider: KotlinSourceSetProvider
|
||||
) : Plugin<Project> {
|
||||
@@ -512,24 +507,6 @@ class SubpluginEnvironment(
|
||||
}
|
||||
}
|
||||
|
||||
open class GradleUtils(val scriptHandler: ScriptHandler, val project: Project) {
|
||||
public fun resolveDependencies(vararg coordinates: String): Collection<File> {
|
||||
val dependencyHandler: DependencyHandler = scriptHandler.dependencies
|
||||
val configurationsContainer: ConfigurationContainer = scriptHandler.configurations
|
||||
|
||||
val deps = coordinates.map { dependencyHandler.create(it) }
|
||||
val configuration = configurationsContainer.detachedConfiguration(*deps.toTypedArray())
|
||||
|
||||
return configuration.resolvedConfiguration.getFiles { true }
|
||||
}
|
||||
|
||||
public fun kotlinPluginVersion(): String = project.properties["kotlin.gradle.plugin.version"] as String
|
||||
public fun kotlinPluginArtifactCoordinates(artifact: String): String = "org.jetbrains.kotlin:${artifact}:${kotlinPluginVersion()}"
|
||||
public fun kotlinJsLibraryCoordinates(): String = kotlinPluginArtifactCoordinates("kotlin-js-library")
|
||||
|
||||
public fun resolveJsLibrary(): File = resolveDependencies(kotlinJsLibraryCoordinates()).first()
|
||||
}
|
||||
|
||||
internal operator fun FileCollection.plus(other: FileCollection) = this.plus(other)
|
||||
internal operator fun FileCollection.minus(other: FileCollection) = this.minus(other)
|
||||
|
||||
|
||||
+8
-33
@@ -2,7 +2,6 @@ package org.jetbrains.kotlin.gradle.plugin
|
||||
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.initialization.dsl.ScriptHandler
|
||||
import org.gradle.api.internal.file.FileResolver
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.api.logging.Logging
|
||||
@@ -14,23 +13,16 @@ import javax.inject.Inject
|
||||
// TODO: simplify: the complicated structure is a leftover from dynamic loading of plugin core, could be significantly simplified now
|
||||
|
||||
abstract class KotlinBasePluginWrapper(protected val fileResolver: FileResolver): Plugin<Project> {
|
||||
|
||||
val log = Logging.getLogger(this.javaClass)
|
||||
|
||||
override fun apply(project: Project) {
|
||||
val sourceBuildScript = findSourceBuildScript(project)
|
||||
if (sourceBuildScript == null) {
|
||||
log.error("Failed to determine source cofiguration of kotlin plugin. Can not download core. Please verify that this or any parent project " +
|
||||
"contains 'kotlin-gradle-plugin' in buildscript's classpath configuration.")
|
||||
return
|
||||
}
|
||||
// TODO: consider only set if if daemon or parallel compilation are enabled, though this way it should be safe too
|
||||
System.setProperty(org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY, "true")
|
||||
|
||||
val kotlinPluginVersion = loadKotlinVersionFromResource(log)
|
||||
project.extensions.extraProperties?.set("kotlin.gradle.plugin.version", kotlinPluginVersion)
|
||||
|
||||
val plugin = getPlugin(sourceBuildScript)
|
||||
val plugin = getPlugin()
|
||||
plugin.apply(project)
|
||||
|
||||
val cleanUpBuildListener = CleanUpBuildListener(project)
|
||||
@@ -38,39 +30,22 @@ abstract class KotlinBasePluginWrapper(protected val fileResolver: FileResolver)
|
||||
project.gradle.addBuildListener(cleanUpBuildListener)
|
||||
}
|
||||
|
||||
protected abstract fun getPlugin(scriptHandler: ScriptHandler): Plugin<Project>
|
||||
|
||||
private fun findSourceBuildScript(project: Project): ScriptHandler? {
|
||||
log.kotlinDebug("Looking for proper script handler")
|
||||
var curProject = project
|
||||
while (curProject != curProject.parent) {
|
||||
log.kotlinDebug("Looking in project $project")
|
||||
val scriptHandler = curProject.buildscript
|
||||
val found = scriptHandler.configurations.findByName("classpath")?.firstOrNull { it.name.contains("kotlin-gradle-plugin") } != null
|
||||
if (found) {
|
||||
log.kotlinDebug("Found! returning...")
|
||||
return scriptHandler
|
||||
}
|
||||
log.kotlinDebug("not found, switching to parent")
|
||||
curProject = curProject.parent ?: break
|
||||
}
|
||||
return null
|
||||
}
|
||||
protected abstract fun getPlugin(): Plugin<Project>
|
||||
}
|
||||
|
||||
open class KotlinPluginWrapper @Inject constructor(fileResolver: FileResolver): KotlinBasePluginWrapper(fileResolver) {
|
||||
override fun getPlugin(scriptHandler: ScriptHandler) =
|
||||
KotlinPlugin(scriptHandler, KotlinTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
override fun getPlugin() =
|
||||
KotlinPlugin(KotlinTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
}
|
||||
|
||||
open class KotlinAndroidPluginWrapper @Inject constructor(fileResolver: FileResolver): KotlinBasePluginWrapper(fileResolver) {
|
||||
override fun getPlugin(scriptHandler: ScriptHandler) =
|
||||
KotlinAndroidPlugin(scriptHandler, AndroidTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
override fun getPlugin() =
|
||||
KotlinAndroidPlugin(AndroidTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
}
|
||||
|
||||
open class Kotlin2JsPluginWrapper @Inject constructor(fileResolver: FileResolver): KotlinBasePluginWrapper(fileResolver) {
|
||||
override fun getPlugin(scriptHandler: ScriptHandler) =
|
||||
Kotlin2JsPlugin(scriptHandler, KotlinTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
override fun getPlugin() =
|
||||
Kotlin2JsPlugin(KotlinTasksProvider(), KotlinSourceSetProviderImpl(fileResolver))
|
||||
}
|
||||
|
||||
fun Logger.kotlinDebug(message: String) {
|
||||
|
||||
Reference in New Issue
Block a user