@@ -10,21 +10,23 @@ import org.gradle.api.DefaultTask
10
10
import org.gradle.api.file.DirectoryProperty
11
11
import org.gradle.api.provider.Property
12
12
import org.gradle.api.tasks.Input
13
+ import org.gradle.api.tasks.Nested
13
14
import org.gradle.api.tasks.OutputDirectory
14
15
import org.gradle.api.tasks.TaskAction
15
16
import java.net.ConnectException
16
17
import java.time.Duration
17
18
import java.time.temporal.ChronoUnit.SECONDS
18
19
19
20
20
- open class OpenApiGeneratorTask : DefaultTask () {
21
+ open class OpenApiGeneratorTask : DefaultTask () {
21
22
@get:Input
22
23
val apiDocsUrl: Property <String > = project.objects.property(String ::class .java)
23
24
@get:Input
24
25
val outputFileName: Property <String > = project.objects.property(String ::class .java)
25
26
@get:OutputDirectory
26
27
val outputDir: DirectoryProperty = project.objects.directoryProperty()
27
28
private val waitTimeInSeconds: Property <Int > = project.objects.property(Int ::class .java)
29
+ @get:Nested
28
30
val taskError: Property <String > = project.objects.property(String ::class .java)
29
31
30
32
init {
@@ -49,7 +51,10 @@ open class OpenApiGeneratorTask: DefaultTask() {
49
51
@TaskAction
50
52
fun execute () {
51
53
try {
52
- await ignoreException ConnectException ::class withPollInterval Durations .ONE_SECOND atMost Duration .of(waitTimeInSeconds.get().toLong(), SECONDS ) until {
54
+ await ignoreException ConnectException ::class withPollInterval Durations .ONE_SECOND atMost Duration .of(
55
+ waitTimeInSeconds.get().toLong(),
56
+ SECONDS
57
+ ) until {
53
58
val statusCode = khttp.get(apiDocsUrl.get()).statusCode
54
59
logger.trace(" apiDocsUrl = {} status code = {}" , apiDocsUrl.get(), statusCode)
55
60
statusCode < 299
@@ -63,7 +68,10 @@ open class OpenApiGeneratorTask: DefaultTask() {
63
68
outputFile.writeText(gson.toJson(googleJsonObject))
64
69
} catch (e: ConditionTimeoutException ) {
65
70
taskError.set(" Timeout occurred while trying to connect to ${apiDocsUrl.get()} " )
66
- this .logger.error(" Unable to connect to ${apiDocsUrl.get()} waited for ${waitTimeInSeconds.get()} seconds" , e)
71
+ this .logger.error(
72
+ " Unable to connect to ${apiDocsUrl.get()} waited for ${waitTimeInSeconds.get()} seconds" ,
73
+ e
74
+ )
67
75
}
68
76
}
69
77
0 commit comments