Skip to content

Commit 843f3ca

Browse files
Fixed base plugin configuration when targetJavaVersion is 1.8 (#108)
1 parent c2a94a6 commit 843f3ca

File tree

2 files changed

+90
-19
lines changed

2 files changed

+90
-19
lines changed

Diff for: plugin/src/functionalTest/kotlin/com/exactpro/th2/gradle/Th2BaseGradlePluginFunctionalTest.kt

+87-13
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ class Th2BaseGradlePluginFunctionalTest {
9393
}
9494

9595
val result =
96-
GradleRunner.create()
96+
GradleRunner
97+
.create()
9798
.forwardOutput()
9899
.withDebug(true)
99100
.withConfiguredVersion()
@@ -105,8 +106,7 @@ class Th2BaseGradlePluginFunctionalTest {
105106
// because no git repository exist in test
106107
"-x",
107108
"generateGitProperties",
108-
)
109-
.build()
109+
).build()
110110

111111
assertAll(
112112
{ assertEquals(TaskOutcome.SUCCESS, result.task(":compileKotlin")?.outcome, "unexpected kotlin compile outcome") },
@@ -117,6 +117,79 @@ class Th2BaseGradlePluginFunctionalTest {
117117
)
118118
}
119119

120+
@Test
121+
fun `the target jvm release version is 1 dot 8`() {
122+
settingsFile.writeText(
123+
"""
124+
rootProject.name = "test"
125+
""".trimIndent(),
126+
)
127+
buildFile.writeText(
128+
"""
129+
plugins {
130+
id('java-library')
131+
id('org.jetbrains.kotlin.jvm') version '1.9.0'
132+
id('com.exactpro.th2.gradle.base')
133+
}
134+
135+
th2JavaRelease {
136+
targetJavaVersion.set(JavaVersion.VERSION_1_8)
137+
}
138+
139+
repositories {
140+
mavenCentral()
141+
}
142+
""".trimIndent(),
143+
)
144+
with(projectDir / "src" / "main" / "java") {
145+
mkdirs()
146+
resolve("Hello.java").writeText(
147+
"""
148+
class Hello {
149+
public static void printHello() {
150+
System.out.println("Hello World from Java!");
151+
}
152+
}
153+
""".trimIndent(),
154+
)
155+
}
156+
with(projectDir / "src" / "main" / "kotlin") {
157+
mkdirs()
158+
resolve("Main.kt").writeText(
159+
"""
160+
fun main() {
161+
println("Hello World from Kotlin!")
162+
Hello.printHello()
163+
}
164+
""".trimIndent(),
165+
)
166+
}
167+
168+
val result =
169+
GradleRunner
170+
.create()
171+
.forwardOutput()
172+
.withDebug(true)
173+
.withConfiguredVersion()
174+
.withPluginClasspath()
175+
.withProjectDir(projectDir)
176+
.withArguments(
177+
"--stacktrace",
178+
"build",
179+
// because no git repository exist in test
180+
"-x",
181+
"generateGitProperties",
182+
).build()
183+
184+
assertAll(
185+
{ assertEquals(TaskOutcome.SUCCESS, result.task(":compileKotlin")?.outcome, "unexpected kotlin compile outcome") },
186+
{ assertEquals(TaskOutcome.SUCCESS, result.task(":compileJava")?.outcome, "unexpected java compile outcome") },
187+
{ assertEquals(TaskOutcome.SUCCESS, result.task(":build")?.outcome, "unexpected build outcome") },
188+
{ assertClassVersion("java", "Hello.class", 52) },
189+
{ assertClassVersion("kotlin", "MainKt.class", 52) },
190+
)
191+
}
192+
120193
@Test
121194
fun `the default jvm release version is 11`() {
122195
settingsFile.writeText(
@@ -162,7 +235,8 @@ class Th2BaseGradlePluginFunctionalTest {
162235
}
163236

164237
val result =
165-
GradleRunner.create()
238+
GradleRunner
239+
.create()
166240
.forwardOutput()
167241
.withDebug(true)
168242
.withConfiguredVersion()
@@ -174,8 +248,7 @@ class Th2BaseGradlePluginFunctionalTest {
174248
// because no git repository exist in test
175249
"-x",
176250
"generateGitProperties",
177-
)
178-
.build()
251+
).build()
179252

180253
assertAll(
181254
{ assertEquals(TaskOutcome.SUCCESS, result.task(":compileKotlin")?.outcome, "unexpected kotlin compile outcome") },
@@ -213,7 +286,8 @@ class Th2BaseGradlePluginFunctionalTest {
213286
)
214287

215288
val result =
216-
GradleRunner.create()
289+
GradleRunner
290+
.create()
217291
.forwardOutput()
218292
.withDebug(true)
219293
.withConfiguredVersion()
@@ -225,8 +299,7 @@ class Th2BaseGradlePluginFunctionalTest {
225299
// because no git repository exist in test
226300
"-x",
227301
"generateGitProperties",
228-
)
229-
.build()
302+
).build()
230303
val checkLicenses = result.task(":checkLicense")
231304
assertNotNull(checkLicenses, "task checkLicense was not executed") {
232305
assertEquals(TaskOutcome.SUCCESS, it.outcome, "unexpected task result")
@@ -312,7 +385,8 @@ class Th2BaseGradlePluginFunctionalTest {
312385
""".trimIndent(),
313386
)
314387
val result =
315-
GradleRunner.create()
388+
GradleRunner
389+
.create()
316390
.forwardOutput()
317391
.withDebug(true)
318392
.withConfiguredVersion()
@@ -324,8 +398,7 @@ class Th2BaseGradlePluginFunctionalTest {
324398
// because no git repository exist in test
325399
"-x",
326400
"generateGitProperties",
327-
)
328-
.build()
401+
).build()
329402

330403
val checkLicenses = result.task(":checkLicense")
331404
assertNotNull(checkLicenses, "task checkLicense was not executed") {
@@ -371,7 +444,8 @@ class Th2BaseGradlePluginFunctionalTest {
371444
extraAssertion: (ArrayNode, String) -> Unit = { _, _ -> },
372445
) {
373446
val module =
374-
elements().asSequence()
447+
elements()
448+
.asSequence()
375449
.find { it.get("moduleName").textValue() == moduleName }
376450
assertNotNull(module, "module $moduleName not found") { m ->
377451
val moduleInfo = assertIs<ObjectNode>(m, "module info must be an object")

Diff for: plugin/src/main/kotlin/com/exactpro/th2/gradle/BaseTh2Plugin.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import org.gradle.api.plugins.JavaPlugin
3030
import org.gradle.api.plugins.JavaTestFixturesPlugin
3131
import org.gradle.api.tasks.compile.JavaCompile
3232
import org.gradle.jvm.tasks.Jar
33-
import org.gradle.jvm.toolchain.JavaLanguageVersion
3433
import org.gradle.kotlin.dsl.getByType
3534
import org.gradle.kotlin.dsl.named
3635
import org.gradle.kotlin.dsl.withType
@@ -159,7 +158,7 @@ class BaseTh2Plugin : Plugin<Project> {
159158
tasks.withType<JavaCompile> {
160159
options.release.set(
161160
javaRelease.targetJavaVersion
162-
.map { JavaLanguageVersion.of(it.toString()).asInt() },
161+
.map { JavaVersion.toVersion(it).majorVersion.toInt() },
163162
)
164163
}
165164
}
@@ -185,14 +184,12 @@ class BaseTh2Plugin : Plugin<Project> {
185184

186185
private fun Project.configureKotlinProject(extension: JavaReleaseTh2Extension) {
187186
plugins.withId("org.jetbrains.kotlin.jvm") {
188-
fun JavaVersion.toJdkTarget() = if (ordinal <= JavaVersion.VERSION_1_8.ordinal) "1.$this" else this.toString()
189-
190187
tasks.withType<KotlinCompile>().configureEach {
191188
compilerOptions {
192-
jvmTarget.set(extension.targetJavaVersion.map { JvmTarget.fromTarget(it.toJdkTarget()) })
189+
jvmTarget.set(extension.targetJavaVersion.map { JvmTarget.fromTarget(it.toString()) })
193190
freeCompilerArgs.add(
194191
extension.targetJavaVersion
195-
.map { "-Xjdk-release=${it.toJdkTarget()}" },
192+
.map { "-Xjdk-release=$it" },
196193
)
197194
}
198195
}

0 commit comments

Comments
 (0)