@@ -3,9 +3,11 @@ package io.github.cdsap.projectgenerator.cli
33import com.fasterxml.jackson.annotation.JsonSetter
44import com.fasterxml.jackson.annotation.Nulls
55import com.fasterxml.jackson.databind.MapperFeature
6+ import com.fasterxml.jackson.databind.node.ObjectNode
67import com.fasterxml.jackson.databind.ObjectMapper
78import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
89import com.fasterxml.jackson.module.kotlin.KotlinModule
10+ import io.github.cdsap.projectgenerator.model.Gradle
911import io.github.cdsap.projectgenerator.model.VersionsFile
1012import java.io.File
1113
@@ -22,5 +24,18 @@ object VersionsParser {
2224 * [VersionsFile] keeps plugin list fields nullable so omitted YAML keys can resolve to empty lists
2325 * instead of inheriting the runtime defaults from [io.github.cdsap.projectgenerator.model.Versions].
2426 */
25- fun fromFile (file : File ): VersionsFile = mapper.readValue(file, VersionsFile ::class .java)
27+ fun fromFile (file : File ): VersionsFile {
28+ val tree = mapper.readTree(file)
29+ normalizeGradleVersion(tree)
30+ return mapper.treeToValue(tree, VersionsFile ::class .java)
31+ }
32+
33+ private fun normalizeGradleVersion (tree : com.fasterxml.jackson.databind.JsonNode ) {
34+ if (tree !is ObjectNode ) return
35+ val gradleNode = tree.get(" gradle" ) ? : return
36+ if (! gradleNode.isTextual) return
37+
38+ val normalized = Gradle .fromValue(gradleNode.asText()).name
39+ tree.put(" gradle" , normalized)
40+ }
2641}
0 commit comments