From 7c10f55fa15515205938c78b20ce5ccc9d185cef Mon Sep 17 00:00:00 2001 From: Danil-Didkovskiy Date: Tue, 14 Apr 2026 16:58:26 +0300 Subject: [PATCH 1/6] Add GraalVM artifact support --- .../com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt | 6 ++++++ .../jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt | 2 ++ .../com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt | 1 + 3 files changed, 9 insertions(+) diff --git a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt index 4de121a..59202ab 100644 --- a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt +++ b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt @@ -117,6 +117,12 @@ public open class JxBrowserExtension( */ public val swt: Provider = artifact("swt") + /** + * Returns a dependency notation for the `jxbrowser-graalvm`, + * an artifact containing GraalVM reachability metadata configuration. + */ + public val graalvm: Provider = artifact("graalvm") + /** * Returns a dependency notation for the `jxbrowser-win64`, * an artifact with Chromium Windows 64-bit binaries. diff --git a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt index f6a8fd1..9c0fc45 100644 --- a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt +++ b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt @@ -99,6 +99,7 @@ internal class JxBrowserPluginFunctionalTest { "jxbrowser-kotlin-$jxBrowserVersion.jar", "jxbrowser-compose-$jxBrowserVersion.jar", "jxbrowser-win64-arm-$jxBrowserVersion.jar", + "jxbrowser-graalvm-$jxBrowserVersion.jar", ) buildFile.writeText( """ @@ -129,6 +130,7 @@ internal class JxBrowserPluginFunctionalTest { "toCopy"(jxbrowser.kotlin) "toCopy"(jxbrowser.compose) "toCopy"(jxbrowser.winArm) + "toCopy"(jxbrowser.graalvm) } tasks.register("$taskName") { diff --git a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt index 9151685..81e33b5 100644 --- a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt +++ b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt @@ -67,6 +67,7 @@ internal class JxBrowserPluginTest { macArm.get() shouldBe "$group:jxbrowser-mac-arm:$jxBrowserVersion" kotlin.get() shouldBe "$group:jxbrowser-kotlin:$jxBrowserVersion" winArm.get() shouldBe "$group:jxbrowser-win64-arm:$jxBrowserVersion" + graalvm.get() shouldBe "$group:jxbrowser-graalvm:$jxBrowserVersion" compose.get() shouldBe "$group:jxbrowser-compose:$jxBrowserVersion" linux64.get() shouldBe "$group:jxbrowser-linux64:$jxBrowserVersion" linuxArm.get() shouldBe "$group:jxbrowser-linux64-arm:$jxBrowserVersion" From 33fbb97ca68e472f830bd0d974a82285edff66ac Mon Sep 17 00:00:00 2001 From: Danil-Didkovskiy Date: Tue, 21 Apr 2026 15:20:33 +0300 Subject: [PATCH 2/6] Rename `graalvm` artifact to `native-image` --- .../com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt | 6 +++--- .../jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt | 4 ++-- .../com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt index 59202ab..69be95a 100644 --- a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt +++ b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt @@ -118,10 +118,10 @@ public open class JxBrowserExtension( public val swt: Provider = artifact("swt") /** - * Returns a dependency notation for the `jxbrowser-graalvm`, - * an artifact containing GraalVM reachability metadata configuration. + * Returns a dependency notation for the `jxbrowser-native-image`, + * an artifact containing GraalVM Native Image reachability metadata configuration. */ - public val graalvm: Provider = artifact("graalvm") + public val nativeImage: Provider = artifact("native-image") /** * Returns a dependency notation for the `jxbrowser-win64`, diff --git a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt index 9c0fc45..f0a4f29 100644 --- a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt +++ b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginFunctionalTest.kt @@ -99,7 +99,7 @@ internal class JxBrowserPluginFunctionalTest { "jxbrowser-kotlin-$jxBrowserVersion.jar", "jxbrowser-compose-$jxBrowserVersion.jar", "jxbrowser-win64-arm-$jxBrowserVersion.jar", - "jxbrowser-graalvm-$jxBrowserVersion.jar", + "jxbrowser-native-image-$jxBrowserVersion.jar", ) buildFile.writeText( """ @@ -130,7 +130,7 @@ internal class JxBrowserPluginFunctionalTest { "toCopy"(jxbrowser.kotlin) "toCopy"(jxbrowser.compose) "toCopy"(jxbrowser.winArm) - "toCopy"(jxbrowser.graalvm) + "toCopy"(jxbrowser.nativeImage) } tasks.register("$taskName") { diff --git a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt index 81e33b5..714552c 100644 --- a/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt +++ b/src/test/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserPluginTest.kt @@ -67,10 +67,10 @@ internal class JxBrowserPluginTest { macArm.get() shouldBe "$group:jxbrowser-mac-arm:$jxBrowserVersion" kotlin.get() shouldBe "$group:jxbrowser-kotlin:$jxBrowserVersion" winArm.get() shouldBe "$group:jxbrowser-win64-arm:$jxBrowserVersion" - graalvm.get() shouldBe "$group:jxbrowser-graalvm:$jxBrowserVersion" compose.get() shouldBe "$group:jxbrowser-compose:$jxBrowserVersion" linux64.get() shouldBe "$group:jxbrowser-linux64:$jxBrowserVersion" linuxArm.get() shouldBe "$group:jxbrowser-linux64-arm:$jxBrowserVersion" + nativeImage.get() shouldBe "$group:jxbrowser-native-image:$jxBrowserVersion" crossPlatform.get() shouldBe "$group:jxbrowser-cross-platform:$jxBrowserVersion" } } From 57ed53857faba991956db042173ec7e2255d7e0e Mon Sep 17 00:00:00 2001 From: Danil-Didkovskiy Date: Tue, 21 Apr 2026 17:14:47 +0300 Subject: [PATCH 3/6] Update docs --- .../kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt index 69be95a..a090e78 100644 --- a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt +++ b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt @@ -119,7 +119,7 @@ public open class JxBrowserExtension( /** * Returns a dependency notation for the `jxbrowser-native-image`, - * an artifact containing GraalVM Native Image reachability metadata configuration. + * an artifact containing GraalVM Native Image reachability metadata. */ public val nativeImage: Provider = artifact("native-image") From 2e5f7c600ee68c165e40544f816b1c7a6c647712 Mon Sep 17 00:00:00 2001 From: Danil-Didkovskiy Date: Fri, 24 Apr 2026 18:07:21 +0300 Subject: [PATCH 4/6] Check if native-image artifact is supported --- .../jxbrowser/gradle/JxBrowserExtension.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt index a090e78..38e4f94 100644 --- a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt +++ b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt @@ -216,12 +216,6 @@ public open class JxBrowserExtension( shortName: String, version: String, ) { - val artifactNameToReleaseVersion = - mapOf( - "compose" to "8.0.0", - "kotlin" to "8.0.0", - "win64-arm" to "8.0.0", - ) val artifactReleaseVersion = artifactNameToReleaseVersion[shortName] if (artifactReleaseVersion != null) { val releaseVersion = Semver(artifactReleaseVersion) @@ -234,5 +228,16 @@ public open class JxBrowserExtension( private companion object { private const val GROUP = "com.teamdev.jxbrowser" + + /** + * Maps an artifact short name to the first JxBrowser version that supports it. + */ + private val artifactNameToReleaseVersion = + mapOf( + "compose" to "8.0.0", + "kotlin" to "8.0.0", + "win64-arm" to "8.0.0", + "native-image" to "9.0.0", + ) } } From bafdf55779a083279062932dc07203a77f8d7618 Mon Sep 17 00:00:00 2001 From: Vladyslav Lubenskyi Date: Mon, 27 Apr 2026 11:47:27 +0200 Subject: [PATCH 5/6] Update versions to 9.0.0 --- .../teamdev/jxbrowser/gradle/JxBrowserExtension.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt index 38e4f94..e366fb9 100644 --- a/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt +++ b/src/main/kotlin/com/teamdev/jxbrowser/gradle/JxBrowserExtension.kt @@ -87,7 +87,7 @@ public open class JxBrowserExtension( * Returns a dependency notation for the `jxbrowser-kotlin`, * an artifact with the Kotlin API of the library. * - * Kotlin API is only supported in JxBrowser 8.x.x. + * Kotlin API is only supported in JxBrowser 8.x.x and newer. */ public val kotlin: Provider = artifact("kotlin") @@ -95,7 +95,7 @@ public open class JxBrowserExtension( * Returns a dependency notation for the `jxbrowser-compose`, * an artifact with Compose integration. * - * Compose is only supported in JxBrowser 8.x.x. + * Compose is only supported in JxBrowser 8.x.x and newer. */ public val compose: Provider = artifact("compose") @@ -120,6 +120,8 @@ public open class JxBrowserExtension( /** * Returns a dependency notation for the `jxbrowser-native-image`, * an artifact containing GraalVM Native Image reachability metadata. + * + * Native images are only supported in JxBrowser 9.x.x and newer. */ public val nativeImage: Provider = artifact("native-image") @@ -234,9 +236,9 @@ public open class JxBrowserExtension( */ private val artifactNameToReleaseVersion = mapOf( - "compose" to "8.0.0", - "kotlin" to "8.0.0", - "win64-arm" to "8.0.0", + "compose" to "9.0.0", + "kotlin" to "9.0.0", + "win64-arm" to "9.0.0", "native-image" to "9.0.0", ) } From 746c644b3504312120a301ba7896d425d0284224 Mon Sep 17 00:00:00 2001 From: Vladyslav Lubenskyi Date: Mon, 27 Apr 2026 11:59:56 +0200 Subject: [PATCH 6/6] Update Jxbrowser version to 9.0.0 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index a69b1e0..82910bb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget object BuildSettings { const val GROUP = "com.teamdev.jxbrowser" const val VERSION = "2.0.0" - const val JXBROWSER_VERSION = "8.18.3" + const val JXBROWSER_VERSION = "9.0.0" val javaVersion = JavaVersion.VERSION_1_8 }