Skip to content

Commit db4e69e

Browse files
committed
Merge branch 'kotlin-ktor-server' of https://github.com/ktorio/openapi-generator into ktorio-kotlin-ktor-server
2 parents d60200d + 2ab59fa commit db4e69e

File tree

17 files changed

+188
-185
lines changed

17 files changed

+188
-185
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinServerCodegen.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -272,21 +272,21 @@ public void processOpts() {
272272

273273
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
274274

275-
if (library.equals(Constants.KTOR)) {
275+
if (isKtor()) {
276276
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
277277
}
278278

279279
String gradleBuildFile = "build.gradle";
280280

281-
if (isJavalin()) {
281+
if (isJavalin() || isKtor()) {
282282
gradleBuildFile = "build.gradle.kts";
283283
}
284284

285285
supportingFiles.add(new SupportingFile(gradleBuildFile + ".mustache", "", gradleBuildFile));
286286
supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle"));
287287
supportingFiles.add(new SupportingFile("gradle.properties", "", "gradle.properties"));
288288

289-
if (library.equals(Constants.KTOR)) {
289+
if (isKtor()) {
290290
supportingFiles.add(new SupportingFile("AppMain.kt.mustache", packageFolder, "AppMain.kt"));
291291
supportingFiles.add(new SupportingFile("Configuration.kt.mustache", packageFolder, "Configuration.kt"));
292292

@@ -300,6 +300,11 @@ public void processOpts() {
300300
final String infrastructureFolder = (sourceFolder + File.separator + packageName + File.separator + "infrastructure").replace(".", File.separator);
301301

302302
supportingFiles.add(new SupportingFile("ApiKeyAuth.kt.mustache", infrastructureFolder, "ApiKeyAuth.kt"));
303+
304+
if (!getOmitGradleWrapper()) {
305+
supportingFiles.add(new SupportingFile("gradle-wrapper.properties", "gradle" + File.separator + "wrapper", "gradle-wrapper.properties"));
306+
}
307+
303308
} else if (isJavalin()) {
304309
supportingFiles.add(new SupportingFile("Main.kt.mustache", packageFolder, "Main.kt"));
305310
apiTemplateFiles.put("service.mustache", "Service.kt");
@@ -412,4 +417,8 @@ public void setReturnContainer(final String returnContainer) {
412417
private boolean isJavalin() {
413418
return Constants.JAVALIN5.equals(library) || Constants.JAVALIN6.equals(library);
414419
}
420+
421+
private boolean isKtor() {
422+
return Constants.KTOR.equals(library);
423+
}
415424
}

modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/README.mustache

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ Generated by OpenAPI Generator {{generatorVersion}}{{^hideGenerationTimestamp}}
88

99
## Requires
1010

11-
* Kotlin 1.7.20
12-
* Gradle 7.4.2
11+
* Kotlin 2.0.20
12+
* Gradle 8.10.2
1313

1414
## Build
1515

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
2+
val kotlin_version: String by project
3+
val logback_version: String by project
4+
5+
group = "{{groupId}}"
6+
version = "{{artifactVersion}}"
7+
8+
plugins {
9+
kotlin("jvm") version "2.0.20"
10+
id("io.ktor.plugin") version "2.3.12"
11+
}
12+
13+
application {
14+
mainClass.set("io.ktor.server.netty.EngineMain")
15+
16+
val isDevelopment: Boolean = project.ext.has("development")
17+
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
18+
}
19+
20+
repositories {
21+
mavenCentral()
22+
}
23+
24+
dependencies {
25+
implementation("ch.qos.logback:logback-classic:$logback_version")
26+
{{#hasAuthMethods}}
27+
implementation("com.typesafe:config:1.4.1")
28+
{{/hasAuthMethods}}
29+
implementation("io.ktor:ktor-server-auth")
30+
{{#hasAuthMethods}}
31+
implementation("io.ktor:ktor-client-apache")
32+
{{/hasAuthMethods}}
33+
{{#featureAutoHead}}
34+
implementation("io.ktor:ktor-server-auto-head-response")
35+
{{/featureAutoHead}}
36+
implementation("io.ktor:ktor-server-default-headers")
37+
implementation("io.ktor:ktor-server-content-negotiation")
38+
implementation("io.ktor:ktor-serialization-gson")
39+
{{#featureResources}}
40+
implementation("io.ktor:ktor-server-resources")
41+
{{/featureResources}}
42+
{{#featureHSTS}}
43+
implementation("io.ktor:ktor-server-hsts")
44+
{{/featureHSTS}}
45+
{{#featureCORS}}
46+
implementation("io.ktor:ktor-server-cors")
47+
{{/featureCORS}}
48+
{{#featureConditionalHeaders}}
49+
implementation("io.ktor:ktor-server-conditional-headers")
50+
{{/featureConditionalHeaders}}
51+
{{#featureCompression}}
52+
implementation("io.ktor:ktor-server-compression")
53+
{{/featureCompression}}
54+
{{#featureMetrics}}
55+
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
56+
implementation("io.ktor:ktor-server-metrics")
57+
{{/featureMetrics}}
58+
implementation("io.ktor:ktor-server-netty")
59+
60+
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
61+
}

modules/openapi-generator/src/main/resources/kotlin-server/libraries/ktor/build.gradle.mustache

-96
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
org.gradle.caching=true
1+
kotlin.code.style=official
2+
ktor_version=2.3.12
3+
kotlin_version=2.0.20
4+
logback_version=1.4.14

samples/server/petstore/kotlin-server-modelMutable/.openapi-generator/FILES

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
Dockerfile
22
README.md
3-
build.gradle
3+
build.gradle.kts
44
gradle.properties
5+
gradle/wrapper/gradle-wrapper.properties
56
settings.gradle
67
src/main/kotlin/org/openapitools/server/AppMain.kt
78
src/main/kotlin/org/openapitools/server/Configuration.kt

samples/server/petstore/kotlin-server-modelMutable/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Generated by OpenAPI Generator 7.10.0-SNAPSHOT.
66

77
## Requires
88

9-
* Kotlin 1.7.20
10-
* Gradle 7.4.2
9+
* Kotlin 2.0.20
10+
* Gradle 8.10.2
1111

1212
## Build
1313

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
val kotlin_version: String by project
3+
val logback_version: String by project
4+
5+
group = "org.openapitools"
6+
version = "1.0.0"
7+
8+
plugins {
9+
kotlin("jvm") version "2.0.20"
10+
id("io.ktor.plugin") version "2.3.12"
11+
}
12+
13+
application {
14+
mainClass.set("io.ktor.server.netty.EngineMain")
15+
16+
val isDevelopment: Boolean = project.ext.has("development")
17+
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
18+
}
19+
20+
repositories {
21+
mavenCentral()
22+
}
23+
24+
dependencies {
25+
implementation("ch.qos.logback:logback-classic:$logback_version")
26+
implementation("com.typesafe:config:1.4.1")
27+
implementation("io.ktor:ktor-server-auth")
28+
implementation("io.ktor:ktor-client-apache")
29+
implementation("io.ktor:ktor-server-auto-head-response")
30+
implementation("io.ktor:ktor-server-default-headers")
31+
implementation("io.ktor:ktor-server-content-negotiation")
32+
implementation("io.ktor:ktor-serialization-gson")
33+
implementation("io.ktor:ktor-server-resources")
34+
implementation("io.ktor:ktor-server-hsts")
35+
implementation("io.ktor:ktor-server-compression")
36+
implementation("io.dropwizard.metrics:metrics-core:4.1.18")
37+
implementation("io.ktor:ktor-server-metrics")
38+
implementation("io.ktor:ktor-server-netty")
39+
40+
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
41+
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
org.gradle.caching=true
1+
kotlin.code.style=official
2+
ktor_version=2.3.12
3+
kotlin_version=2.0.20
4+
logback_version=1.4.14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

samples/server/petstore/kotlin-server/ktor/.openapi-generator/FILES

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
Dockerfile
22
README.md
3-
build.gradle
3+
build.gradle.kts
44
gradle.properties
5+
gradle/wrapper/gradle-wrapper.properties
56
settings.gradle
67
src/main/kotlin/org/openapitools/server/AppMain.kt
78
src/main/kotlin/org/openapitools/server/Configuration.kt

samples/server/petstore/kotlin-server/ktor/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Generated by OpenAPI Generator 7.10.0-SNAPSHOT.
66

77
## Requires
88

9-
* Kotlin 1.7.20
10-
* Gradle 7.4.2
9+
* Kotlin 2.0.20
10+
* Gradle 8.10.2
1111

1212
## Build
1313

0 commit comments

Comments
 (0)