@@ -2,7 +2,6 @@ package org.springdoc.openapi.gradle.plugin
22
33import com.google.gson.GsonBuilder
44import com.google.gson.JsonObject
5- import khttp.responses.Response
65import org.awaitility.Durations
76import org.awaitility.core.ConditionTimeoutException
87import org.awaitility.kotlin.*
@@ -15,6 +14,8 @@ import org.gradle.api.tasks.Input
1514import org.gradle.api.tasks.OutputDirectory
1615import org.gradle.api.tasks.TaskAction
1716import java.net.ConnectException
17+ import java.net.HttpURLConnection
18+ import java.net.URL
1819import java.time.Duration
1920import java.time.temporal.ChronoUnit.SECONDS
2021
@@ -63,19 +64,26 @@ open class OpenApiGeneratorTask : DefaultTask() {
6364
6465 private fun generateApiDocs (url : String , fileName : String ) {
6566 try {
67+ val isYaml = url.toLowerCase().matches(Regex (" .+[./]yaml(/.+)*" ))
6668 await ignoreException ConnectException ::class withPollInterval Durations .ONE_SECOND atMost Duration .of(
6769 waitTimeInSeconds.get().toLong(),
6870 SECONDS
6971 ) until {
70- val statusCode = khttp.get(url).statusCode
72+ val connection: HttpURLConnection = URL (url).openConnection() as HttpURLConnection
73+ connection.requestMethod = " GET"
74+ connection.connect()
75+ val statusCode = connection.responseCode
7176 logger.trace(" apiDocsUrl = {} status code = {}" , url, statusCode)
7277 statusCode < MAX_HTTP_STATUS_CODE
7378 }
7479 logger.info(" Generating OpenApi Docs.." )
75- val response: Response = khttp.get(url)
80+ val connection: HttpURLConnection = URL (url).openConnection() as HttpURLConnection
81+ connection.requestMethod = " GET"
82+ connection.connect()
7683
77- val isYaml = url.toLowerCase().matches(Regex (" .+[./]yaml(/.+)*" ))
78- val apiDocs = if (isYaml) response.text else prettifyJson(response)
84+ val response = String (connection.inputStream.readAllBytes(), Charsets .UTF_8 )
85+
86+ val apiDocs = if (isYaml) response else prettifyJson(response)
7987
8088 val outputFile = outputDir.file(fileName).get().asFile
8189 outputFile.writeText(apiDocs)
@@ -85,9 +93,9 @@ open class OpenApiGeneratorTask : DefaultTask() {
8593 }
8694 }
8795
88- private fun prettifyJson (response : Response ): String {
96+ private fun prettifyJson (response : String ): String {
8997 val gson = GsonBuilder ().setPrettyPrinting().create()
90- val googleJsonObject = gson.fromJson(response.text , JsonObject ::class .java)
98+ val googleJsonObject = gson.fromJson(response, JsonObject ::class .java)
9199 return gson.toJson(googleJsonObject)
92100 }
93101}
0 commit comments