[Kotlin Server] Update Ktor to latest version; move config to kts (#19727)

* [Kotlin Server] Update Ktor to latest version; move config to kts

* Bump gradle version for kotlin server samples

* Replace deprecated gradle API

* Bump gradle to 7.6.4
This commit is contained in:
Leonid Stashevsky 2024-10-11 05:44:53 +02:00 committed by GitHub
parent 368b9b7e37
commit 7f899dff97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 355 additions and 352 deletions

View File

@ -17,7 +17,7 @@ on:
# - samples/server/petstore/kotlin-spring-default/** # - samples/server/petstore/kotlin-spring-default/**
env: env:
GRADLE_VERSION: 6.9 GRADLE_VERSION: 7.6.4
jobs: jobs:
build: build:

View File

@ -272,13 +272,13 @@ public class KotlinServerCodegen extends AbstractKotlinCodegen implements BeanVa
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
if (library.equals(Constants.KTOR)) { if (isKtor()) {
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile")); supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
} }
String gradleBuildFile = "build.gradle"; String gradleBuildFile = "build.gradle";
if (isJavalin()) { if (isJavalin() || isKtor()) {
gradleBuildFile = "build.gradle.kts"; gradleBuildFile = "build.gradle.kts";
} }
@ -286,7 +286,7 @@ public class KotlinServerCodegen extends AbstractKotlinCodegen implements BeanVa
supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle")); supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle"));
supportingFiles.add(new SupportingFile("gradle.properties", "", "gradle.properties")); supportingFiles.add(new SupportingFile("gradle.properties", "", "gradle.properties"));
if (library.equals(Constants.KTOR)) { if (isKtor()) {
supportingFiles.add(new SupportingFile("AppMain.kt.mustache", packageFolder, "AppMain.kt")); supportingFiles.add(new SupportingFile("AppMain.kt.mustache", packageFolder, "AppMain.kt"));
supportingFiles.add(new SupportingFile("Configuration.kt.mustache", packageFolder, "Configuration.kt")); supportingFiles.add(new SupportingFile("Configuration.kt.mustache", packageFolder, "Configuration.kt"));
@ -300,6 +300,11 @@ public class KotlinServerCodegen extends AbstractKotlinCodegen implements BeanVa
final String infrastructureFolder = (sourceFolder + File.separator + packageName + File.separator + "infrastructure").replace(".", File.separator); final String infrastructureFolder = (sourceFolder + File.separator + packageName + File.separator + "infrastructure").replace(".", File.separator);
supportingFiles.add(new SupportingFile("ApiKeyAuth.kt.mustache", infrastructureFolder, "ApiKeyAuth.kt")); supportingFiles.add(new SupportingFile("ApiKeyAuth.kt.mustache", infrastructureFolder, "ApiKeyAuth.kt"));
if (!getOmitGradleWrapper()) {
supportingFiles.add(new SupportingFile("gradle-wrapper.properties", "gradle" + File.separator + "wrapper", "gradle-wrapper.properties"));
}
} else if (isJavalin()) { } else if (isJavalin()) {
supportingFiles.add(new SupportingFile("Main.kt.mustache", packageFolder, "Main.kt")); supportingFiles.add(new SupportingFile("Main.kt.mustache", packageFolder, "Main.kt"));
apiTemplateFiles.put("service.mustache", "Service.kt"); apiTemplateFiles.put("service.mustache", "Service.kt");
@ -412,4 +417,8 @@ public class KotlinServerCodegen extends AbstractKotlinCodegen implements BeanVa
private boolean isJavalin() { private boolean isJavalin() {
return Constants.JAVALIN5.equals(library) || Constants.JAVALIN6.equals(library); return Constants.JAVALIN5.equals(library) || Constants.JAVALIN6.equals(library);
} }
private boolean isKtor() {
return Constants.KTOR.equals(library);
}
} }

View File

@ -2,7 +2,7 @@ group "{{groupId}}"
version "{{artifactVersion}}" version "{{artifactVersion}}"
wrapper { wrapper {
gradleVersion = '6.9' gradleVersion = '7.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
} }

View File

@ -8,8 +8,8 @@ Generated by OpenAPI Generator {{generatorVersion}}{{^hideGenerationTimestamp}}
## Requires ## Requires
* Kotlin 1.7.20 * Kotlin 2.0.20
* Gradle 7.4.2 * Gradle 8.10.2
## Build ## Build

View File

@ -0,0 +1,61 @@
val kotlin_version: String by project
val logback_version: String by project
group = "{{groupId}}"
version = "{{artifactVersion}}"
plugins {
kotlin("jvm") version "2.0.20"
id("io.ktor.plugin") version "2.3.12"
}
application {
mainClass.set("io.ktor.server.netty.EngineMain")
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
repositories {
mavenCentral()
}
dependencies {
implementation("ch.qos.logback:logback-classic:$logback_version")
{{#hasAuthMethods}}
implementation("com.typesafe:config:1.4.1")
{{/hasAuthMethods}}
implementation("io.ktor:ktor-server-auth")
{{#hasAuthMethods}}
implementation("io.ktor:ktor-client-apache")
{{/hasAuthMethods}}
{{#featureAutoHead}}
implementation("io.ktor:ktor-server-auto-head-response")
{{/featureAutoHead}}
implementation("io.ktor:ktor-server-default-headers")
implementation("io.ktor:ktor-server-content-negotiation")
implementation("io.ktor:ktor-serialization-gson")
{{#featureResources}}
implementation("io.ktor:ktor-server-resources")
{{/featureResources}}
{{#featureHSTS}}
implementation("io.ktor:ktor-server-hsts")
{{/featureHSTS}}
{{#featureCORS}}
implementation("io.ktor:ktor-server-cors")
{{/featureCORS}}
{{#featureConditionalHeaders}}
implementation("io.ktor:ktor-server-conditional-headers")
{{/featureConditionalHeaders}}
{{#featureCompression}}
implementation("io.ktor:ktor-server-compression")
{{/featureCompression}}
{{#featureMetrics}}
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
implementation("io.ktor:ktor-server-metrics")
{{/featureMetrics}}
implementation("io.ktor:ktor-server-netty")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
}

View File

@ -1,96 +0,0 @@
group "{{groupId}}"
version "{{artifactVersion}}"
{{^omitGradleWrapper}}
wrapper {
gradleVersion = "7.4.2"
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}
{{/omitGradleWrapper}}
buildscript {
ext.kotlin_version = "1.7.20"
ext.ktor_version = "2.2.1"
ext.shadow_version = "6.1.0"
repositories {
maven { url "https://repo1.maven.org/maven2" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
classpath("com.github.jengelman.gradle.plugins:shadow:$shadow_version")
}
}
apply plugin: "java"
apply plugin: "kotlin"
apply plugin: "application"
mainClassName = "io.ktor.server.netty.DevelopmentEngine"
// Initialization order with shadow 2.0.1 and Gradle 6.9 is weird.
// See https://github.com/johnrengelman/shadow/issues/336#issuecomment-355402508
apply plugin: "com.github.johnrengelman.shadow"
sourceCompatibility = 1.8
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
shadowJar {
baseName = "{{artifactId}}"
classifier = null
version = null
}
repositories {
maven { setUrl("https://repo1.maven.org/maven2") }
maven { setUrl("https://dl.bintray.com/kotlin/ktor") }
maven { setUrl("https://dl.bintray.com/kotlin/kotlinx") }
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
implementation("ch.qos.logback:logback-classic:1.2.9")
{{#hasAuthMethods}}
implementation("com.typesafe:config:1.4.1")
{{/hasAuthMethods}}
implementation("io.ktor:ktor-server-auth:$ktor_version")
{{#hasAuthMethods}}
implementation("io.ktor:ktor-client-apache:$ktor_version")
{{/hasAuthMethods}}
{{#featureAutoHead}}
implementation("io.ktor:ktor-server-auto-head-response:$ktor_version")
{{/featureAutoHead}}
implementation("io.ktor:ktor-server-default-headers:$ktor_version")
implementation("io.ktor:ktor-server-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-gson:$ktor_version")
{{#featureResources}}
implementation("io.ktor:ktor-server-resources:$ktor_version")
{{/featureResources}}
{{#featureHSTS}}
implementation("io.ktor:ktor-server-hsts:$ktor_version")
{{/featureHSTS}}
{{#featureCORS}}
implementation("io.ktor:ktor-server-cors:$ktor_version")
{{/featureCORS}}
{{#featureConditionalHeaders}}
implementation("io.ktor:ktor-server-conditional-headers:$ktor_version")
{{/featureConditionalHeaders}}
{{#featureCompression}}
implementation("io.ktor:ktor-server-compression:$ktor_version")
{{/featureCompression}}
{{#featureMetrics}}
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
implementation("io.ktor:ktor-server-metrics:$ktor_version")
{{/featureMetrics}}
implementation("io.ktor:ktor-server-netty:$ktor_version")
testImplementation("junit:junit:4.13.2")
}

View File

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -1 +1,4 @@
org.gradle.caching=true kotlin.code.style=official
ktor_version=2.3.12
kotlin_version=2.0.20
logback_version=1.4.14

View File

@ -37,33 +37,33 @@ plugins {
dependencies { dependencies {
{{#reactive}} val kotlinxCoroutinesVersion = "1.6.1" {{#reactive}} val kotlinxCoroutinesVersion = "1.6.1"
{{/reactive}} compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") {{/reactive}} implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect"){{^reactive}} implementation("org.jetbrains.kotlin:kotlin-reflect"){{^reactive}}
compile("org.springframework.boot:spring-boot-starter-web"){{/reactive}}{{#reactive}} implementation("org.springframework.boot:spring-boot-starter-web"){{/reactive}}{{#reactive}}
compile("org.springframework.boot:spring-boot-starter-webflux") implementation("org.springframework.boot:spring-boot-starter-webflux")
compile("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
compile("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinxCoroutinesVersion"){{/reactive}}{{#springDocDocumentationProvider}}{{#useSwaggerUI}} implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinxCoroutinesVersion"){{/reactive}}{{#springDocDocumentationProvider}}{{#useSwaggerUI}}
compile("org.springdoc:springdoc-openapi-{{#reactive}}webflux-{{/reactive}}ui:1.6.8"){{/useSwaggerUI}}{{^useSwaggerUI}} implementation("org.springdoc:springdoc-openapi-{{#reactive}}webflux-{{/reactive}}ui:1.6.8"){{/useSwaggerUI}}{{^useSwaggerUI}}
compile("org.springdoc:springdoc-openapi-{{#reactive}}webflux{{/reactive}}{{^reactive}}webmvc{{/reactive}}-core:1.6.8"){{/useSwaggerUI}}{{/springDocDocumentationProvider}}{{#springFoxDocumentationProvider}} implementation("org.springdoc:springdoc-openapi-{{#reactive}}webflux{{/reactive}}{{^reactive}}webmvc{{/reactive}}-core:1.6.8"){{/useSwaggerUI}}{{/springDocDocumentationProvider}}{{#springFoxDocumentationProvider}}
compile("io.springfox:springfox-swagger2:2.9.2"){{/springFoxDocumentationProvider}}{{#useSwaggerUI}}{{^springDocDocumentationProvider}} implementation("io.springfox:springfox-swagger2:2.9.2"){{/springFoxDocumentationProvider}}{{#useSwaggerUI}}{{^springDocDocumentationProvider}}
compile("org.webjars:swagger-ui:4.10.3") implementation("org.webjars:swagger-ui:4.10.3")
compile("org.webjars:webjars-locator-core"){{/springDocDocumentationProvider}}{{/useSwaggerUI}}{{^springFoxDocumentationProvider}}{{^springDocDocumentationProvider}}{{#swagger1AnnotationLibrary}} implementation("org.webjars:webjars-locator-core"){{/springDocDocumentationProvider}}{{/useSwaggerUI}}{{^springFoxDocumentationProvider}}{{^springDocDocumentationProvider}}{{#swagger1AnnotationLibrary}}
compile("io.swagger:swagger-annotations:1.6.6"){{/swagger1AnnotationLibrary}}{{#swagger2AnnotationLibrary}} implementation("io.swagger:swagger-annotations:1.6.6"){{/swagger1AnnotationLibrary}}{{#swagger2AnnotationLibrary}}
compile("io.swagger.core.v3:swagger-annotations:2.2.0"){{/swagger2AnnotationLibrary}}{{/springDocDocumentationProvider}}{{/springFoxDocumentationProvider}} implementation("io.swagger.core.v3:swagger-annotations:2.2.0"){{/swagger2AnnotationLibrary}}{{/springDocDocumentationProvider}}{{/springFoxDocumentationProvider}}
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
{{#useBeanValidation}} {{#useBeanValidation}}
compile("javax.validation:validation-api"){{/useBeanValidation}} implementation("javax.validation:validation-api"){{/useBeanValidation}}
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
{{#reactive}} {{#reactive}}
testCompile("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinxCoroutinesVersion") testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinxCoroutinesVersion")
{{/reactive}} {{/reactive}}
} }

View File

@ -2,7 +2,7 @@ group "org.openapitools"
version "1.0.0" version "1.0.0"
wrapper { wrapper {
gradleVersion = '6.9' gradleVersion = '7.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
} }

View File

@ -2,7 +2,7 @@ group "org.openapitools"
version "1.0.0" version "1.0.0"
wrapper { wrapper {
gradleVersion = '6.9' gradleVersion = '7.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
} }

View File

@ -1,7 +1,8 @@
Dockerfile Dockerfile
README.md README.md
build.gradle build.gradle.kts
gradle.properties gradle.properties
gradle/wrapper/gradle-wrapper.properties
settings.gradle settings.gradle
src/main/kotlin/org/openapitools/server/AppMain.kt src/main/kotlin/org/openapitools/server/AppMain.kt
src/main/kotlin/org/openapitools/server/Configuration.kt src/main/kotlin/org/openapitools/server/Configuration.kt

View File

@ -6,8 +6,8 @@ Generated by OpenAPI Generator 7.10.0-SNAPSHOT.
## Requires ## Requires
* Kotlin 1.7.20 * Kotlin 2.0.20
* Gradle 7.4.2 * Gradle 8.10.2
## Build ## Build

View File

@ -0,0 +1,41 @@
val kotlin_version: String by project
val logback_version: String by project
group = "org.openapitools"
version = "1.0.0"
plugins {
kotlin("jvm") version "2.0.20"
id("io.ktor.plugin") version "2.3.12"
}
application {
mainClass.set("io.ktor.server.netty.EngineMain")
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
repositories {
mavenCentral()
}
dependencies {
implementation("ch.qos.logback:logback-classic:$logback_version")
implementation("com.typesafe:config:1.4.1")
implementation("io.ktor:ktor-server-auth")
implementation("io.ktor:ktor-client-apache")
implementation("io.ktor:ktor-server-auto-head-response")
implementation("io.ktor:ktor-server-default-headers")
implementation("io.ktor:ktor-server-content-negotiation")
implementation("io.ktor:ktor-serialization-gson")
implementation("io.ktor:ktor-server-resources")
implementation("io.ktor:ktor-server-hsts")
implementation("io.ktor:ktor-server-compression")
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
implementation("io.ktor:ktor-server-metrics")
implementation("io.ktor:ktor-server-netty")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
}

View File

@ -1 +1,4 @@
org.gradle.caching=true kotlin.code.style=official
ktor_version=2.3.12
kotlin_version=2.0.20
logback_version=1.4.14

View File

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -2,7 +2,7 @@ group "org.openapitools"
version "1.0.0" version "1.0.0"
wrapper { wrapper {
gradleVersion = '6.9' gradleVersion = '7.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
} }

View File

@ -2,7 +2,7 @@ group "org.openapitools"
version "1.0.0" version "1.0.0"
wrapper { wrapper {
gradleVersion = '6.9' gradleVersion = '7.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
} }

View File

@ -1,7 +1,8 @@
Dockerfile Dockerfile
README.md README.md
build.gradle build.gradle.kts
gradle.properties gradle.properties
gradle/wrapper/gradle-wrapper.properties
settings.gradle settings.gradle
src/main/kotlin/org/openapitools/server/AppMain.kt src/main/kotlin/org/openapitools/server/AppMain.kt
src/main/kotlin/org/openapitools/server/Configuration.kt src/main/kotlin/org/openapitools/server/Configuration.kt

View File

@ -6,8 +6,8 @@ Generated by OpenAPI Generator 7.10.0-SNAPSHOT.
## Requires ## Requires
* Kotlin 1.7.20 * Kotlin 2.0.20
* Gradle 7.4.2 * Gradle 8.10.2
## Build ## Build

View File

@ -1,74 +0,0 @@
group "org.openapitools"
version "1.0.0"
wrapper {
gradleVersion = "7.4.2"
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}
buildscript {
ext.kotlin_version = "1.7.20"
ext.ktor_version = "2.2.1"
ext.shadow_version = "6.1.0"
repositories {
maven { url "https://repo1.maven.org/maven2" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
classpath("com.github.jengelman.gradle.plugins:shadow:$shadow_version")
}
}
apply plugin: "java"
apply plugin: "kotlin"
apply plugin: "application"
mainClassName = "io.ktor.server.netty.DevelopmentEngine"
// Initialization order with shadow 2.0.1 and Gradle 6.9 is weird.
// See https://github.com/johnrengelman/shadow/issues/336#issuecomment-355402508
apply plugin: "com.github.johnrengelman.shadow"
sourceCompatibility = 1.8
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
shadowJar {
baseName = "kotlin-server"
classifier = null
version = null
}
repositories {
maven { setUrl("https://repo1.maven.org/maven2") }
maven { setUrl("https://dl.bintray.com/kotlin/ktor") }
maven { setUrl("https://dl.bintray.com/kotlin/kotlinx") }
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
implementation("ch.qos.logback:logback-classic:1.2.9")
implementation("com.typesafe:config:1.4.1")
implementation("io.ktor:ktor-server-auth:$ktor_version")
implementation("io.ktor:ktor-client-apache:$ktor_version")
implementation("io.ktor:ktor-server-auto-head-response:$ktor_version")
implementation("io.ktor:ktor-server-default-headers:$ktor_version")
implementation("io.ktor:ktor-server-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-gson:$ktor_version")
implementation("io.ktor:ktor-server-resources:$ktor_version")
implementation("io.ktor:ktor-server-hsts:$ktor_version")
implementation("io.ktor:ktor-server-compression:$ktor_version")
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
implementation("io.ktor:ktor-server-metrics:$ktor_version")
implementation("io.ktor:ktor-server-netty:$ktor_version")
testImplementation("junit:junit:4.13.2")
}

View File

@ -0,0 +1,41 @@
val kotlin_version: String by project
val logback_version: String by project
group = "org.openapitools"
version = "1.0.0"
plugins {
kotlin("jvm") version "2.0.20"
id("io.ktor.plugin") version "2.3.12"
}
application {
mainClass.set("io.ktor.server.netty.EngineMain")
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
repositories {
mavenCentral()
}
dependencies {
implementation("ch.qos.logback:logback-classic:$logback_version")
implementation("com.typesafe:config:1.4.1")
implementation("io.ktor:ktor-server-auth")
implementation("io.ktor:ktor-client-apache")
implementation("io.ktor:ktor-server-auto-head-response")
implementation("io.ktor:ktor-server-default-headers")
implementation("io.ktor:ktor-server-content-negotiation")
implementation("io.ktor:ktor-serialization-gson")
implementation("io.ktor:ktor-server-resources")
implementation("io.ktor:ktor-server-hsts")
implementation("io.ktor:ktor-server-compression")
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
implementation("io.ktor:ktor-server-metrics")
implementation("io.ktor:ktor-server-netty")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
}

View File

@ -1 +1,4 @@
org.gradle.caching=true kotlin.code.style=official
ktor_version=2.3.12
kotlin_version=2.0.20
logback_version=1.4.14

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@ -30,20 +30,20 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.springdoc:springdoc-openapi-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,20 +30,20 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.springdoc:springdoc-openapi-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,20 +30,20 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.springdoc:springdoc-openapi-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,20 +30,20 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.springdoc:springdoc-openapi-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,20 +30,20 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.springdoc:springdoc-openapi-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -31,23 +31,23 @@ plugins {
dependencies { dependencies {
val kotlinxCoroutinesVersion = "1.6.1" val kotlinxCoroutinesVersion = "1.6.1"
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-webflux") implementation("org.springframework.boot:spring-boot-starter-webflux")
compile("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
compile("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinxCoroutinesVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinxCoroutinesVersion")
compile("org.springdoc:springdoc-openapi-webflux-ui:1.6.8") implementation("org.springdoc:springdoc-openapi-webflux-ui:1.6.8")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
testCompile("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinxCoroutinesVersion") testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinxCoroutinesVersion")
} }

View File

@ -30,22 +30,22 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.webjars:swagger-ui:4.10.3") implementation("org.webjars:swagger-ui:4.10.3")
compile("org.webjars:webjars-locator-core") implementation("org.webjars:webjars-locator-core")
compile("io.swagger:swagger-annotations:1.6.6") implementation("io.swagger:swagger-annotations:1.6.6")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,22 +30,22 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("org.webjars:swagger-ui:4.10.3") implementation("org.webjars:swagger-ui:4.10.3")
compile("org.webjars:webjars-locator-core") implementation("org.webjars:webjars-locator-core")
compile("io.swagger.core.v3:swagger-annotations:2.2.0") implementation("io.swagger.core.v3:swagger-annotations:2.2.0")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,22 +30,22 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("io.springfox:springfox-swagger2:2.9.2") implementation("io.springfox:springfox-swagger2:2.9.2")
compile("org.webjars:swagger-ui:4.10.3") implementation("org.webjars:swagger-ui:4.10.3")
compile("org.webjars:webjars-locator-core") implementation("org.webjars:webjars-locator-core")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }

View File

@ -30,19 +30,19 @@ plugins {
} }
dependencies { dependencies {
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-reflect")
compile("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
compile("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.findbugs:jsr305:3.0.2")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
compile("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
compile("javax.validation:validation-api") implementation("javax.validation:validation-api")
compile("javax.annotation:javax.annotation-api:1.3.2") implementation("javax.annotation:javax.annotation-api:1.3.2")
testCompile("org.jetbrains.kotlin:kotlin-test-junit5") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testCompile("org.springframework.boot:spring-boot-starter-test") { testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(module = "junit") exclude(module = "junit")
} }
} }