Skip to content

Commit 12ebc1b

Browse files
author
Nayan Hajratwala
committed
got rid of warnings & made more idomatic
1 parent 22f8f46 commit 12ebc1b

File tree

1 file changed

+53
-53
lines changed

1 file changed

+53
-53
lines changed

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

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,69 @@ import com.github.jengelman.gradle.plugins.processes.tasks.Fork
44
import org.gradle.api.Plugin
55
import org.gradle.api.Project
66
import org.gradle.api.logging.Logging
7+
import org.gradle.api.provider.Property
78
import java.util.*
89

10+
@Suppress("unused")
911
open class OpenApiGradlePlugin : Plugin<Project> {
10-
private val LOGGER =
11-
Logging.getLogger(OpenApiGradlePlugin::class.java)
12+
private val logger = Logging.getLogger(OpenApiGradlePlugin::class.java)
1213

13-
override fun apply(project: Project) {
14-
// Run time dependency on the following plugins
15-
project.plugins.apply(SPRING_BOOT_PLUGIN)
16-
project.plugins.apply(PROCESS_PLUGIN)
14+
override fun apply(project: Project) {
15+
// Run time dependency on the following plugins
16+
project.plugins.apply(SPRING_BOOT_PLUGIN)
17+
project.plugins.apply(PROCESS_PLUGIN)
1718

18-
project.extensions.create(EXTENSION_NAME, OpenApiExtension::class.java, project)
19+
project.extensions.create(EXTENSION_NAME, OpenApiExtension::class.java, project)
1920

20-
project.afterEvaluate {
21-
// Spring boot jar task
22-
val bootJarTask = project.tasks.named(SPRING_BOOT_JAR_TASK_NAME)
21+
project.afterEvaluate {
22+
// Spring boot jar task
23+
val bootJarTask = project.tasks.named(SPRING_BOOT_JAR_TASK_NAME)
2324

24-
val extension: OpenApiExtension = project.extensions.run {
25-
getByName(EXTENSION_NAME) as OpenApiExtension
26-
}
25+
val extension: OpenApiExtension = project.extensions.run {
26+
getByName(EXTENSION_NAME) as OpenApiExtension
27+
}
2728

28-
// Create a forked version spring boot run task
29-
val forkedSpringBoot = project.tasks.register(FORKED_SPRING_BOOT_RUN_TASK_NAME, Fork::class.java) { fork ->
30-
fork.dependsOn(bootJarTask)
29+
// Create a forked version spring boot run task
30+
val forkedSpringBoot = project.tasks.register(FORKED_SPRING_BOOT_RUN_TASK_NAME, Fork::class.java) { fork ->
31+
fork.dependsOn(bootJarTask)
3132

32-
fork.onlyIf {
33-
val bootJar = bootJarTask.get().outputs.files.first()
33+
fork.onlyIf {
34+
val bootJar = bootJarTask.get().outputs.files.first()
35+
fork.commandLine = listOf("java", "-jar") + extractProperties(extension.forkProperties) + listOf("$bootJar")
36+
true
37+
}
38+
}
3439

35-
val command = mutableListOf("java", "-jar")
36-
if (extension.forkProperties.isPresent) {
37-
val element = extension.forkProperties.get()
38-
if (element is String) {
39-
val elements = element
40-
.split("-D")
41-
.filter { s -> s.isNotEmpty() }
42-
.map { "-D${it.trim()}" }
43-
command.addAll(elements)
44-
} else if (element is Properties) {
45-
element.toMap().map { r -> "-D${r.key}=${r.value}" }.forEach { p -> command.add(p) }
46-
} else {
47-
LOGGER.warn("Failed to use the value set for 'forkProprerties'. Only String and Properties objects are supported.")
48-
}
49-
}
50-
command.add("$bootJar")
40+
val stopForkedSpringBoot = project.tasks.register(FINALIZER_TASK_NAME) {
41+
it.dependsOn(forkedSpringBoot)
42+
it.doLast {
43+
forkedSpringBoot.get().processHandle.abort()
44+
}
45+
}
5146

52-
fork.commandLine = command
53-
true
54-
}
55-
}
47+
// This is my task. Before I can run it I have to run the dependent tasks
48+
project.tasks.register(OPEN__API_TASK_NAME, OpenApiGeneratorTask::class.java) { openApiGenTask ->
49+
openApiGenTask.dependsOn(forkedSpringBoot)
50+
openApiGenTask.finalizedBy(stopForkedSpringBoot)
51+
}
52+
}
5653

57-
val stopForkedSpringBoot = project.tasks.register(FINALIZER_TASK_NAME) {
58-
it.dependsOn(forkedSpringBoot)
59-
it.doLast {
60-
forkedSpringBoot.get().processHandle.abort();
61-
}
62-
}
54+
}
6355

64-
// This is my task. Before I can run it I have to run the dependent tasks
65-
project.tasks.register(OPEN__API_TASK_NAME, OpenApiGeneratorTask::class.java) { openApiGenTask ->
66-
openApiGenTask.dependsOn(forkedSpringBoot)
67-
openApiGenTask.finalizedBy(stopForkedSpringBoot)
68-
}
69-
}
70-
71-
}
72-
}
56+
private fun extractProperties(forkProperties: Property<Any>) =
57+
if (forkProperties.isPresent) {
58+
when (val element = forkProperties.get()) {
59+
is String ->
60+
element.split("-D")
61+
.filter { it.isNotEmpty() }
62+
.map { "-D${it.trim()}" }
63+
is Properties ->
64+
element
65+
.map { "-D${it.key}=${it.value}" }
66+
else -> {
67+
logger.warn("Failed to use the value set for 'forkProperties'. Only String and Properties objects are supported.")
68+
emptyList()
69+
}
70+
}
71+
} else emptyList()
72+
}

0 commit comments

Comments
 (0)