Refactor script definitions and resolving/refining infrastructure:
- implement wrappers to wrap old and new API providers and resolvers - make old API deprecated (with error where possible) - drop old internal classes related to the old API - refactor usages accordingly - fix and add missing features to the scripting API where necessary
This commit is contained in:
+3
-1
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||
import org.jetbrains.kotlin.scripting.definitions.reporter
|
||||
import java.io.File
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
private const val MIN_SUPPORTED_GRADLE_MAJOR_VERSION = 5
|
||||
private const val MIN_SUPPORTED_GRADLE_MINOR_VERSION = 0
|
||||
@@ -166,7 +167,8 @@ internal class DiscoverScriptExtensionsTransform : ArtifactTransform() {
|
||||
override fun transform(input: File): List<File> {
|
||||
val definitions =
|
||||
ScriptDefinitionsFromClasspathDiscoverySource(
|
||||
listOf(input), emptyMap(),
|
||||
listOf(input),
|
||||
defaultJvmScriptingHostConfiguration,
|
||||
PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false).reporter
|
||||
).definitions
|
||||
val extensions = definitions.mapTo(arrayListOf()) { it.fileExtension }
|
||||
|
||||
@@ -14,6 +14,7 @@ import kotlin.script.dependencies.ScriptContents
|
||||
import kotlin.script.dependencies.ScriptDependenciesResolver
|
||||
import kotlin.script.experimental.annotations.KotlinScript
|
||||
import kotlin.script.experimental.api.*
|
||||
import kotlin.script.experimental.host.FileBasedScriptSource
|
||||
import kotlin.script.experimental.host.FileScriptSource
|
||||
import kotlin.script.experimental.jvm.compat.mapLegacyDiagnosticSeverity
|
||||
import kotlin.script.experimental.jvm.compat.mapLegacyScriptPosition
|
||||
@@ -59,7 +60,7 @@ class MainKtsConfigurator : RefineScriptCompilationConfigurationHandler {
|
||||
val annotations = context.collectedData?.get(ScriptCollectedData.foundAnnotations)?.takeIf { it.isNotEmpty() }
|
||||
?: return context.compilationConfiguration.asSuccess()
|
||||
|
||||
val scriptBaseDir = (context.script as? FileScriptSource)?.file?.parentFile
|
||||
val scriptBaseDir = (context.script as? FileBasedScriptSource)?.file?.parentFile
|
||||
val importedSources = annotations.flatMap {
|
||||
(it as? Import)?.paths?.map { sourceName ->
|
||||
FileScriptSource(scriptBaseDir?.resolve(sourceName) ?: File(sourceName))
|
||||
|
||||
+3
-1
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.maven;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import kotlin.script.experimental.jvm.JvmScriptingHostConfigurationKt;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.DefaultArtifact;
|
||||
import org.apache.maven.artifact.handler.ArtifactHandler;
|
||||
@@ -188,7 +189,8 @@ public class ExecuteKotlinScriptMojo extends AbstractMojo {
|
||||
configuration.put(CommonConfigurationKeys.MODULE_NAME, JvmProtoBufUtil.DEFAULT_MODULE_NAME);
|
||||
|
||||
ConfigurationKt.configureScriptDefinitions(
|
||||
scriptTemplates, configuration, this.getClass().getClassLoader(), messageCollector, new HashMap<>()
|
||||
scriptTemplates, configuration, this.getClass().getClassLoader(), messageCollector,
|
||||
JvmScriptingHostConfigurationKt.getDefaultJvmScriptingHostConfiguration()
|
||||
);
|
||||
|
||||
KotlinCoreEnvironment environment = KotlinCoreEnvironment.createForProduction(rootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
|
||||
|
||||
+8
-1
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.script.util.templates.StandardArgsScriptTemplateWith
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
|
||||
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.utils.PathUtil.getResourcePathForClass
|
||||
import org.junit.Assert
|
||||
@@ -44,6 +45,7 @@ import java.io.ByteArrayOutputStream
|
||||
import java.io.OutputStream
|
||||
import java.io.PrintStream
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
const val KOTLIN_JAVA_RUNTIME_JAR = "kotlin-stdlib.jar"
|
||||
|
||||
@@ -155,7 +157,12 @@ done
|
||||
}
|
||||
}
|
||||
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script-util-test")
|
||||
add(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, scriptDefinition)
|
||||
add(
|
||||
ScriptingConfigurationKeys.SCRIPT_DEFINITIONS,
|
||||
ScriptDefinition.FromLegacy(
|
||||
defaultJvmScriptingHostConfiguration, scriptDefinition
|
||||
)
|
||||
)
|
||||
put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true)
|
||||
|
||||
add(ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS, ScriptingCompilerConfigurationComponentRegistrar())
|
||||
|
||||
Reference in New Issue
Block a user