@@ -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,28 @@ 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 url = URL (url)
73+ val connection: HttpURLConnection = url.openConnection() as HttpURLConnection
74+ connection.requestMethod = " GET"
75+ connection.connect()
76+ val statusCode = connection.responseCode
7177 logger.trace(" apiDocsUrl = {} status code = {}" , url, statusCode)
7278 statusCode < MAX_HTTP_STATUS_CODE
7379 }
7480 logger.info(" Generating OpenApi Docs.." )
75- val response: Response = khttp.get(url)
81+ val url = URL (url)
82+ val connection: HttpURLConnection = url.openConnection() as HttpURLConnection
83+ connection.requestMethod = " GET"
84+ connection.connect()
7685
77- val isYaml = url.toLowerCase().matches(Regex (" .+[./]yaml(/.+)*" ))
78- val apiDocs = if (isYaml) response.text else prettifyJson(response)
86+ val response = String (connection.inputStream.readAllBytes(), Charsets .UTF_8 )
87+
88+ val apiDocs = if (isYaml) response else prettifyJson(response)
7989
8090 val outputFile = outputDir.file(fileName).get().asFile
8191 outputFile.writeText(apiDocs)
@@ -85,9 +95,9 @@ open class OpenApiGeneratorTask : DefaultTask() {
8595 }
8696 }
8797
88- private fun prettifyJson (response : Response ): String {
98+ private fun prettifyJson (response : String ): String {
8999 val gson = GsonBuilder ().setPrettyPrinting().create()
90- val googleJsonObject = gson.fromJson(response.text , JsonObject ::class .java)
100+ val googleJsonObject = gson.fromJson(response, JsonObject ::class .java)
91101 return gson.toJson(googleJsonObject)
92102 }
93103}
0 commit comments