KotlinToolingMetadata: Add schemaVersion property

This commit is contained in:
sebastian.sellmair
2021-03-17 11:15:54 +01:00
committed by TeamCityServer
parent 0119541462
commit 0a732869e9
5 changed files with 11 additions and 2 deletions
@@ -77,6 +77,7 @@ open class BuildKotlinToolingMetadataTask : DefaultTask() {
private fun KotlinProjectExtension.getKotlinToolingMetadata(): KotlinToolingMetadata {
return KotlinToolingMetadata(
schemaVersion = KotlinToolingMetadata.currentSchemaVersion,
buildSystem = "Gradle",
buildSystemVersion = project.gradle.gradleVersion,
buildPlugin = project.plugins.withType(KotlinBasePluginWrapper::class.java).joinToString(";") { it.javaClass.canonicalName },
@@ -16,6 +16,7 @@ fun KotlinToolingMetadata.toJsonString(): String {
internal fun KotlinToolingMetadata.toJsonObject(): JsonObject {
return JsonObject().apply {
addProperty("schemaVersion", schemaVersion)
addProperty("buildSystem", buildSystem)
addProperty("buildSystemVersion", buildSystemVersion)
addProperty("buildPlugin", buildPlugin)
@@ -118,6 +119,7 @@ fun KotlinToolingMetadata.Companion.parseJsonOrThrow(value: String): KotlinTooli
private fun JsonObject.toKotlinToolingMetadataOrThrow(): KotlinToolingMetadata {
return KotlinToolingMetadata(
schemaVersion = getOrThrow("schemaVersion").asString,
buildSystem = getOrThrow("buildSystem").asString,
buildSystemVersion = getOrThrow("buildSystemVersion").asString,
buildPlugin = getOrThrow("buildPlugin").asString,
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.tooling
data class KotlinToolingMetadata(
val schemaVersion: String,
/**
* Build System used (e.g. Gradle, Maven, ...)
*/
@@ -66,7 +67,9 @@ data class KotlinToolingMetadata(
)
}
companion object
companion object {
const val currentSchemaVersion: String = "1.0.0"
}
}
@@ -21,9 +21,10 @@ import kotlin.test.assertNull
class DeserializeStringTest {
@Test
fun sample1() {
fun `schemaVersion 1 0 0`() {
@Language("JSON") val json = """
{
"schemaVersion": "1.0.0",
"buildSystem": "Gradle",
"buildSystemVersion": "6.7",
"buildPlugin": "org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper",
@@ -83,6 +84,7 @@ class DeserializeStringTest {
""".trimIndent()
val metadata = KotlinToolingMetadata.parseJsonOrThrow(json)
assertEquals("1.0.0", metadata.schemaVersion)
assertEquals("Gradle", metadata.buildSystem)
assertEquals("6.7", metadata.buildSystemVersion)
assertEquals("org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper", metadata.buildPlugin)
@@ -84,6 +84,7 @@ private fun assertDeserializedMatchesOrigin(origin: KotlinToolingMetadata) {
private fun defaultKotlinToolingMetadata(): KotlinToolingMetadata {
return KotlinToolingMetadata(
schemaVersion = KotlinToolingMetadata.currentSchemaVersion,
buildSystem = "generic build system",
buildSystemVersion = "v1.0 (build system)",
buildPlugin = "generic build plugin",