From fb66d55b1dd13eb62a8ddcce4c238f69bb35e4ea Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Wed, 22 May 2024 15:56:30 +0200 Subject: [PATCH] refactor(script): Migrate from deprecated `constructorArgs` to properties This is a preparation for the migration to Kotlin 2.0.0 in order to work around [1]. [1]: https://youtrack.jetbrains.com/issue/KT-68336 Signed-off-by: Sebastian Schuberth --- evaluator/src/main/kotlin/Evaluator.kt | 11 +++++++++-- .../src/main/kotlin/RulesScriptTemplate.kt | 17 ++++++++++------- .../main/kotlin/NotificationsScriptTemplate.kt | 7 ++++--- notifier/src/main/kotlin/Notifier.kt | 3 +-- .../src/main/kotlin/HowToFixTextProvider.kt | 4 ++-- .../HowToFixTextProviderScriptTemplate.kt | 7 ++++--- 6 files changed, 30 insertions(+), 19 deletions(-) diff --git a/evaluator/src/main/kotlin/Evaluator.kt b/evaluator/src/main/kotlin/Evaluator.kt index a0ad971a6ed61..b13b87a7a90a8 100644 --- a/evaluator/src/main/kotlin/Evaluator.kt +++ b/evaluator/src/main/kotlin/Evaluator.kt @@ -22,7 +22,7 @@ package org.ossreviewtoolkit.evaluator import java.time.Instant import kotlin.script.experimental.api.ScriptEvaluationConfiguration -import kotlin.script.experimental.api.constructorArgs +import kotlin.script.experimental.api.providedProperties import kotlin.script.experimental.api.scriptsInstancesSharing import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate @@ -45,7 +45,14 @@ class Evaluator( override val compConfig = createJvmCompilationConfigurationFromTemplate() override val evalConfig = ScriptEvaluationConfiguration { - constructorArgs(ortResult, licenseInfoResolver, resolutionProvider, licenseClassifications, time) + providedProperties( + "ortResult" to ortResult, + "licenseInfoResolver" to licenseInfoResolver, + "resolutionProvider" to resolutionProvider, + "licenseClassifications" to licenseClassifications, + "time" to time + ) + scriptsInstancesSharing(true) } diff --git a/evaluator/src/main/kotlin/RulesScriptTemplate.kt b/evaluator/src/main/kotlin/RulesScriptTemplate.kt index 535cc289964f8..ed8b936f07f40 100644 --- a/evaluator/src/main/kotlin/RulesScriptTemplate.kt +++ b/evaluator/src/main/kotlin/RulesScriptTemplate.kt @@ -24,6 +24,7 @@ import java.time.Instant import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.defaultImports +import kotlin.script.experimental.api.providedProperties import org.ossreviewtoolkit.model.OrtResult import org.ossreviewtoolkit.model.RuleViolation @@ -37,13 +38,7 @@ import org.ossreviewtoolkit.utils.scripting.OrtScriptCompilationConfiguration fileExtension = "rules.kts", compilationConfiguration = RulesScriptCompilationConfiguration::class ) -open class RulesScriptTemplate( - val ortResult: OrtResult, - val licenseInfoResolver: LicenseInfoResolver, - val resolutionProvider: ResolutionProvider, - val licenseClassifications: LicenseClassifications, - val time: Instant -) { +open class RulesScriptTemplate { val ruleViolations = mutableListOf() } @@ -58,5 +53,13 @@ class RulesScriptCompilationConfiguration : ScriptCompilationConfiguration( "org.ossreviewtoolkit.model.utils.*", "org.ossreviewtoolkit.utils.spdx.*" ) + + providedProperties( + "ortResult" to OrtResult::class, + "licenseInfoResolver" to LicenseInfoResolver::class, + "resolutionProvider" to ResolutionProvider::class, + "licenseClassifications" to LicenseClassifications::class, + "time" to Instant::class + ) } ) diff --git a/notifier/src/main/kotlin/NotificationsScriptTemplate.kt b/notifier/src/main/kotlin/NotificationsScriptTemplate.kt index ad6b3fd900b15..71eb727187063 100644 --- a/notifier/src/main/kotlin/NotificationsScriptTemplate.kt +++ b/notifier/src/main/kotlin/NotificationsScriptTemplate.kt @@ -22,6 +22,7 @@ package org.ossreviewtoolkit.notifier import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.defaultImports +import kotlin.script.experimental.api.providedProperties import org.ossreviewtoolkit.model.OrtResult import org.ossreviewtoolkit.utils.scripting.OrtScriptCompilationConfiguration @@ -31,9 +32,7 @@ import org.ossreviewtoolkit.utils.scripting.OrtScriptCompilationConfiguration fileExtension = "notifications.kts", compilationConfiguration = NotificationsScriptCompilationConfiguration::class ) -open class NotificationsScriptTemplate( - val ortResult: OrtResult -) +open class NotificationsScriptTemplate class NotificationsScriptCompilationConfiguration : ScriptCompilationConfiguration( OrtScriptCompilationConfiguration(), @@ -45,5 +44,7 @@ class NotificationsScriptCompilationConfiguration : ScriptCompilationConfigurati "org.ossreviewtoolkit.model.utils.*", "org.ossreviewtoolkit.notifier.modules.*" ) + + providedProperties("ortResult" to OrtResult::class) } ) diff --git a/notifier/src/main/kotlin/Notifier.kt b/notifier/src/main/kotlin/Notifier.kt index 1e492529f41c7..0d4e24153666a 100644 --- a/notifier/src/main/kotlin/Notifier.kt +++ b/notifier/src/main/kotlin/Notifier.kt @@ -23,7 +23,6 @@ import java.time.Instant import kotlin.script.experimental.api.KotlinType import kotlin.script.experimental.api.ScriptEvaluationConfiguration -import kotlin.script.experimental.api.constructorArgs import kotlin.script.experimental.api.providedProperties import kotlin.script.experimental.api.scriptsInstancesSharing import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate @@ -54,7 +53,7 @@ class Notifier( } override val evalConfig = ScriptEvaluationConfiguration { - constructorArgs(ortResult) + providedProperties("ortResult" to ortResult) scriptsInstancesSharing(true) providedProperties(customProperties) diff --git a/reporter/src/main/kotlin/HowToFixTextProvider.kt b/reporter/src/main/kotlin/HowToFixTextProvider.kt index 18f1ec17713ab..98aa6028d5ed0 100644 --- a/reporter/src/main/kotlin/HowToFixTextProvider.kt +++ b/reporter/src/main/kotlin/HowToFixTextProvider.kt @@ -21,7 +21,7 @@ package org.ossreviewtoolkit.reporter import kotlin.script.experimental.api.ResultValue import kotlin.script.experimental.api.ScriptEvaluationConfiguration -import kotlin.script.experimental.api.constructorArgs +import kotlin.script.experimental.api.providedProperties import kotlin.script.experimental.api.scriptsInstancesSharing import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate @@ -57,7 +57,7 @@ private class HowToFixScriptRunner(ortResult: OrtResult) : ScriptRunner() { override val compConfig = createJvmCompilationConfigurationFromTemplate() override val evalConfig = ScriptEvaluationConfiguration { - constructorArgs(ortResult) + providedProperties("ortResult" to ortResult) scriptsInstancesSharing(true) } diff --git a/reporter/src/main/kotlin/HowToFixTextProviderScriptTemplate.kt b/reporter/src/main/kotlin/HowToFixTextProviderScriptTemplate.kt index c5ed0fb3d08dc..3b5ba0d023cf3 100644 --- a/reporter/src/main/kotlin/HowToFixTextProviderScriptTemplate.kt +++ b/reporter/src/main/kotlin/HowToFixTextProviderScriptTemplate.kt @@ -22,6 +22,7 @@ package org.ossreviewtoolkit.reporter import kotlin.script.experimental.annotations.KotlinScript import kotlin.script.experimental.api.ScriptCompilationConfiguration import kotlin.script.experimental.api.defaultImports +import kotlin.script.experimental.api.providedProperties import org.ossreviewtoolkit.model.OrtResult import org.ossreviewtoolkit.utils.scripting.OrtScriptCompilationConfiguration @@ -31,9 +32,7 @@ import org.ossreviewtoolkit.utils.scripting.OrtScriptCompilationConfiguration fileExtension = "how-to-fix-text-provider.kts", compilationConfiguration = HowToFixTextProviderScriptCompilationConfiguration::class ) -open class HowToFixTextProviderScriptTemplate( - val ortResult: OrtResult -) +open class HowToFixTextProviderScriptTemplate class HowToFixTextProviderScriptCompilationConfiguration : ScriptCompilationConfiguration( OrtScriptCompilationConfiguration(), @@ -45,5 +44,7 @@ class HowToFixTextProviderScriptCompilationConfiguration : ScriptCompilationConf "org.ossreviewtoolkit.model.utils.*", "org.ossreviewtoolkit.reporter.HowToFixTextProvider" ) + + providedProperties("ortResult" to OrtResult::class) } )