From e69a6cd94fe7d076218d155641e1615ce4c0c8a3 Mon Sep 17 00:00:00 2001 From: "alexander.shustanov" Date: Tue, 23 Sep 2025 13:49:58 +0400 Subject: [PATCH] Support kotlin Power Assert --- .idea/misc.xml | 18 ++---------------- connekt-scripting-host/build.gradle.kts | 1 + .../amplicode/connekt/ConnektScriptingHost.kt | 17 +++++++++++++++-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index fa0a3d8..3666700 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,19 +1,5 @@ + - - - @@ -24,4 +10,4 @@ - \ No newline at end of file + diff --git a/connekt-scripting-host/build.gradle.kts b/connekt-scripting-host/build.gradle.kts index 13768d3..1eddffc 100644 --- a/connekt-scripting-host/build.gradle.kts +++ b/connekt-scripting-host/build.gradle.kts @@ -21,6 +21,7 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-scripting-jvm") implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host") implementation("com.github.ajalt.clikt:clikt:5.0.1") + implementation("org.jetbrains.kotlin:kotlin-power-assert-compiler-plugin-embeddable:2.0.21") // Implementation for slf4j to disable warning implementation("org.slf4j:slf4j-nop:2.0.7") diff --git a/connekt-scripting-host/src/main/java/io/amplicode/connekt/ConnektScriptingHost.kt b/connekt-scripting-host/src/main/java/io/amplicode/connekt/ConnektScriptingHost.kt index bac1c04..0043a50 100644 --- a/connekt-scripting-host/src/main/java/io/amplicode/connekt/ConnektScriptingHost.kt +++ b/connekt-scripting-host/src/main/java/io/amplicode/connekt/ConnektScriptingHost.kt @@ -7,6 +7,7 @@ package io.amplicode.connekt import io.amplicode.connekt.dsl.ConnektBuilder import java.io.File +import java.io.File.pathSeparator import kotlin.script.experimental.api.* import kotlin.script.experimental.host.ScriptingHostConfiguration import kotlin.script.experimental.jvm.BasicJvmScriptEvaluator @@ -25,6 +26,14 @@ class ConnektScriptingHost( // that should be used to run the Evaluator. private val jvmTarget = "1.8" + private val powerAssertJar by lazy { + System.getProperty("java.class.path") + .split(pathSeparator) + .map(::File) + .firstOrNull { it.name.startsWith("kotlin-power-assert-compiler-plugin-embeddable") && it.extension == "jar" } + ?: error("Power-Assert plugin jar not found on classpath") + } + private val compilationConfiguration = createJvmCompilationConfigurationFromTemplate { compilerOptions( @@ -32,7 +41,11 @@ class ConnektScriptingHost( "use-fast-jar-file-system", "false", "-Xadd-modules=ALL-MODULE-PATH", - "-jvm-target=$jvmTarget" + "-jvm-target=$jvmTarget", + "-Xplugin=${powerAssertJar.absolutePath}", + "-P", + "plugin:org.jetbrains.kotlin.powerassert:function=kotlin.assert", + "plugin:org.jetbrains.kotlin.powerassert:function=kotlin.require", ) ) } @@ -109,4 +122,4 @@ private class NoopScriptEvaluator( ) ) } -} \ No newline at end of file +}