Skip to content

Commit

Permalink
Do not use afterEvaluate as this is not needed but causes side-effect…
Browse files Browse the repository at this point in the history
…s with convention plugins.
  • Loading branch information
Martin Ahrer committed Jun 6, 2023
1 parent 4728413 commit e9474b9
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {
}

group = "org.springdoc"
version = "1.6.0"
version = "1.6.1-SNAPSHOT"

sonarqube {
properties {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@ import com.github.psxpaul.task.JavaExecFork
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.logging.Logging
import org.gradle.api.UnknownDomainObjectException
import org.gradle.api.tasks.TaskProvider
import org.gradle.internal.jvm.Jvm
import org.springframework.boot.gradle.tasks.run.BootRun

open class OpenApiGradlePlugin : Plugin<Project> {
private val logger = Logging.getLogger(OpenApiGradlePlugin::class.java)

override fun apply(project: Project) {
with(project) {
Expand All @@ -20,7 +19,7 @@ open class OpenApiGradlePlugin : Plugin<Project> {

extensions.create(EXTENSION_NAME, OpenApiExtension::class.java, this)

afterEvaluate { generate(this) }
generate(this)
}
}

Expand All @@ -30,14 +29,22 @@ open class OpenApiGradlePlugin : Plugin<Project> {
// The task, used to run the Spring Boot application (`bootRun`)
val bootRunTask = tasks.named(SPRING_BOOT_RUN_TASK_NAME)
// The task, used to resolve the application's main class (`bootRunMainClassName`)
val bootRunMainClassNameTask = tasks.find { it.name == SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME}
?:tasks.named(SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME)
val bootRunMainClassNameTask =
try {
val task=tasks.named(SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME)
logger.debug("Detected Spring Boot task {}", SPRING_BOOT_RUN_MAIN_CLASS_NAME_TASK_NAME)
task
} catch (e: UnknownDomainObjectException) {
val task=tasks.named(SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME)
logger.debug("Detected Spring Boot task {}", SPRING_BOOT_3_RUN_MAIN_CLASS_NAME_TASK_NAME)
task
}

val extension = extensions.findByName(EXTENSION_NAME) as OpenApiExtension
val customBootRun = extension.customBootRun
// Create a forked version spring boot run task
val forkedSpringBoot = tasks.register(FORKED_SPRING_BOOT_RUN_TASK_NAME, JavaExecFork::class.java) { fork ->
fork.dependsOn(bootRunMainClassNameTask)
fork.dependsOn(tasks.named(bootRunMainClassNameTask.name))
fork.onlyIf { needToFork(bootRunTask, customBootRun, fork) }
}

Expand All @@ -54,8 +61,9 @@ open class OpenApiGradlePlugin : Plugin<Project> {
val tasksNames = tasks.names
val boot2TaskName = "bootRunMainClassName"
val boot3TaskName = "resolveMainClassName"
if (!tasksNames.contains(boot2TaskName) && tasksNames.contains(boot3TaskName))
if (!tasksNames.contains(boot2TaskName) && tasksNames.contains(boot3TaskName)) {
tasks.register(boot2TaskName) { it.dependsOn(tasks.named(boot3TaskName)) }
}
}

private fun needToFork(
Expand Down

0 comments on commit e9474b9

Please sign in to comment.