@@ -2,7 +2,6 @@ package org.springdoc.openapi.gradle.plugin
2
2
3
3
import com.google.gson.GsonBuilder
4
4
import com.google.gson.JsonObject
5
- import khttp.responses.Response
6
5
import org.awaitility.Durations
7
6
import org.awaitility.core.ConditionTimeoutException
8
7
import org.awaitility.kotlin.*
@@ -15,6 +14,8 @@ import org.gradle.api.tasks.Input
15
14
import org.gradle.api.tasks.OutputDirectory
16
15
import org.gradle.api.tasks.TaskAction
17
16
import java.net.ConnectException
17
+ import java.net.HttpURLConnection
18
+ import java.net.URL
18
19
import java.time.Duration
19
20
import java.time.temporal.ChronoUnit.SECONDS
20
21
@@ -63,19 +64,26 @@ open class OpenApiGeneratorTask : DefaultTask() {
63
64
64
65
private fun generateApiDocs (url : String , fileName : String ) {
65
66
try {
67
+ val isYaml = url.toLowerCase().matches(Regex (" .+[./]yaml(/.+)*" ))
66
68
await ignoreException ConnectException ::class withPollInterval Durations .ONE_SECOND atMost Duration .of(
67
69
waitTimeInSeconds.get().toLong(),
68
70
SECONDS
69
71
) 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
71
76
logger.trace(" apiDocsUrl = {} status code = {}" , url, statusCode)
72
77
statusCode < MAX_HTTP_STATUS_CODE
73
78
}
74
79
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()
76
83
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)
79
87
80
88
val outputFile = outputDir.file(fileName).get().asFile
81
89
outputFile.writeText(apiDocs)
@@ -85,9 +93,9 @@ open class OpenApiGeneratorTask : DefaultTask() {
85
93
}
86
94
}
87
95
88
- private fun prettifyJson (response : Response ): String {
96
+ private fun prettifyJson (response : String ): String {
89
97
val gson = GsonBuilder ().setPrettyPrinting().create()
90
- val googleJsonObject = gson.fromJson(response.text , JsonObject ::class .java)
98
+ val googleJsonObject = gson.fromJson(response, JsonObject ::class .java)
91
99
return gson.toJson(googleJsonObject)
92
100
}
93
101
}
0 commit comments