Skip to content

Commit 4b58682

Browse files
author
Simon
committed
changed engine to instance variable, documented thread-safety; changed kotlin version
1 parent 76d0b4f commit 4b58682

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import org.gradle.api.publish.maven.MavenPom
66
val kotlinVersion = plugins.getPlugin(KotlinPluginWrapper::class.java).kotlinPluginVersion
77

88
project.group = "de.swirtz"
9-
project.version = "0.0.5"
9+
project.version = "0.0.6"
1010
val artifactID = "ktsRunner"
1111

1212
plugins {
13-
kotlin("jvm") version "1.2.51"
13+
kotlin("jvm") version "1.3.10"
1414
`maven-publish`
1515
`java-library`
1616
id("com.jfrog.bintray") version "1.8.0"

src/main/kotlin/de/swirtz/ktsrunner/objectloader/KtsObjectLoader.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import java.io.InputStream
44
import java.io.Reader
55
import javax.script.ScriptEngineManager
66

7+
/**
8+
*
9+
* This class is not thread-safe, don't use it for parallel executions and create new instances instead.
10+
*/
711
class KtsObjectLoader {
812

9-
companion object {
10-
val engine = ScriptEngineManager().getEngineByExtension("kts")
11-
}
13+
val engine = ScriptEngineManager().getEngineByExtension("kts")
1214

1315
inline fun <reified T> load(script: String): T = engine.eval(script).takeIf { it is T } as T
1416
?: throw IllegalStateException("Could not load script from .kts")

src/test/kotlin/de/swirtz/ktsrunner/objectloader/KtsObjectLoaderTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class KtsObjectLoaderTest {
1414

1515
@Test
1616
fun `general ScriptEngineFactory test`() {
17-
KtsObjectLoader.engine.factory.apply {
17+
KtsObjectLoader().engine.factory.apply {
1818
assertEquals("kotlin", languageName)
1919
assertEquals(KotlinCompilerVersion.VERSION, languageVersion)
2020
assertEquals("kotlin", engineName)
@@ -33,7 +33,7 @@ class KtsObjectLoaderTest {
3333

3434
@Test
3535
fun `simple evaluations should work`() {
36-
with(KtsObjectLoader.engine as KotlinJsr223JvmLocalScriptEngine) {
36+
with(KtsObjectLoader().engine as KotlinJsr223JvmLocalScriptEngine) {
3737
val res1 = eval("val x = 3")
3838
assertNull(res1, "No returned value expected")
3939
val res2 = eval("x + 2")

0 commit comments

Comments
 (0)