@@ -61,6 +61,7 @@ class JBRDownloadTest {
61
61
Assert .assertEquals(TaskOutcome .SUCCESS , result.task(" :downloadJbr" )?.outcome)
62
62
Assert .assertTrue(File (testProjectDir.root, " jbrdl" ).exists())
63
63
}
64
+
64
65
@Test
65
66
fun `download without download dir` () {
66
67
settingsFile.writeText("""
@@ -247,4 +248,44 @@ class JBRDownloadTest {
247
248
Assert .assertEquals(TaskOutcome .SUCCESS , result.task(" :exec" )?.outcome)
248
249
assertThat(result.output, containsString(" OpenJDK Runtime Environment JBR" ))
249
250
}
251
+
252
+ @Test
253
+ fun `use JavaLauncher with Gradle 8_13` () {
254
+ buildFile.writeText("""
255
+ import de.itemis.mps.gradle.downloadJBR.DownloadJbrForPlatform
256
+
257
+ plugins {
258
+ id("download-jbr")
259
+ }
260
+
261
+ repositories {
262
+ mavenCentral()
263
+ maven("https://artifacts.itemis.cloud/repository/maven-mps")
264
+ }
265
+
266
+ downloadJbr {
267
+ jbrVersion = "$JBR_VERSION "
268
+ }
269
+
270
+ val downloadJbrTask = tasks.named("downloadJbr", DownloadJbrForPlatform::class)
271
+
272
+ tasks.register<JavaExec>("exec") {
273
+ dependsOn(downloadJbrTask)
274
+ javaLauncher.set(downloadJbrTask.flatMap { it.javaLauncher })
275
+ jvmArgs("--version")
276
+
277
+ // Main class will be ignored due to --version but has to be provided
278
+ mainClass.set("ignored")
279
+ }
280
+ """ .trimIndent())
281
+
282
+ val result = GradleRunner .create()
283
+ .withProjectDir(testProjectDir.root)
284
+ .withArguments(" exec" )
285
+ .withGradleVersion(" 8.13" )
286
+ .withPluginClasspath()
287
+ .build()
288
+ Assert .assertEquals(TaskOutcome .SUCCESS , result.task(" :exec" )?.outcome)
289
+ assertThat(result.output, containsString(" OpenJDK Runtime Environment JBR" ))
290
+ }
250
291
}
0 commit comments