Skip to content

Commit 0bd2f18

Browse files
authored
Merge pull request #92 from raviu/remove_khttp
Removes khttp
2 parents a477b7c + 9a7db22 commit 0bd2f18

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ publishing {
4646

4747
dependencies {
4848
implementation(kotlin("reflect"))
49-
implementation("khttp:khttp:1.0.0")
5049
implementation("com.google.code.gson:gson:2.8.6")
5150
implementation("org.awaitility:awaitility-kotlin:4.0.3")
5251
implementation("com.github.psxpaul:gradle-execfork-plugin:0.2.0")

src/main/kotlin/org/springdoc/openapi/gradle/plugin/OpenApiGeneratorTask.kt

+15-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package org.springdoc.openapi.gradle.plugin
22

33
import com.google.gson.GsonBuilder
44
import com.google.gson.JsonObject
5-
import khttp.responses.Response
65
import org.awaitility.Durations
76
import org.awaitility.core.ConditionTimeoutException
87
import org.awaitility.kotlin.*
@@ -15,6 +14,8 @@ import org.gradle.api.tasks.Input
1514
import org.gradle.api.tasks.OutputDirectory
1615
import org.gradle.api.tasks.TaskAction
1716
import java.net.ConnectException
17+
import java.net.HttpURLConnection
18+
import java.net.URL
1819
import java.time.Duration
1920
import 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

Comments
 (0)