11package com.yelp.codegen.plugin
22
33import com.yelp.codegen.main
4+ import io.swagger.parser.SwaggerParser
45import org.gradle.api.DefaultTask
56import org.gradle.api.plugins.BasePlugin
67import org.gradle.api.tasks.Input
@@ -11,11 +12,7 @@ import org.gradle.api.tasks.Optional
1112import org.gradle.api.tasks.OutputDirectory
1213import org.gradle.api.tasks.TaskAction
1314import org.gradle.api.tasks.options.Option
14- import org.json.JSONException
15- import org.json.JSONObject
16- import org.json.JSONTokener
1715import java.io.File
18- import java.io.FileInputStream
1916
2017const val DEFAULT_PLATFORM = " kotlin"
2118const val DEFAULT_VERSION = " 0.0.0"
@@ -126,15 +123,16 @@ open class GenerateTask : DefaultTask() {
126123 }
127124
128125 private fun readVersionFromSpecfile (specFile : File ) {
129- try {
130- FileInputStream (specFile).use {
131- val jsonObject = JSONTokener (it).nextValue() as JSONObject
132- val version = jsonObject.getJSONObject(" info" ).getString(" version" )
126+ val swaggerSpec = SwaggerParser ().readWithInfo(specFile.absolutePath, listOf (), false ).swagger
127+ specVersion = when (val version = swaggerSpec.info.version) {
128+ is String -> {
133129 println (" Successfully read version from Swagger Spec file: $version " )
134- specVersion = version
130+ version
131+ }
132+ else -> {
133+ println (" Issue in reading version from Swagger Spec file. Falling back to 0.0.0" )
134+ " 0.0.0"
135135 }
136- } catch (e: JSONException ) {
137- System .err.println (" Failed to parse $specFile to read spec version" )
138136 }
139137 }
140138}
0 commit comments