[kotlin] add missing import, better code format for kotlin generators (#11619)

* add missing import, better code format for kotlin generators

* update kotlin workflow

* more kotlin tests

* better code format

* separate kotlin client, server teets

* comment out tests
This commit is contained in:
William Cheng 2022-02-16 15:09:51 +08:00 committed by GitHub
parent d0d0a0505e
commit c7367c2d34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 105 additions and 47 deletions

View File

@ -1,14 +1,10 @@
name: Samples Kotlin
name: Samples Kotlin cilent
on:
push:
branches:
- master
- '[5-9]+.[0-9]+.x'
- 'samples/client/petstore/kotlin*/**'
pull_request:
branches:
- master
- '[5-9]+.[0-9]+.x'
paths:
- 'samples/client/petstore/kotlin*/**'
@ -17,12 +13,13 @@ env:
jobs:
build:
name: Build Kotlin
name: Build Kotlin client
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
# client
- samples/client/petstore/kotlin
- samples/client/petstore/kotlin-gson
- samples/client/petstore/kotlin-jackson

View File

@ -0,0 +1,54 @@
name: Samples Kotlin server
on:
push:
branches:
- 'samples/server/petstore/kotlin*/**'
pull_request:
paths:
- 'samples/server/petstore/kotlin*/**'
env:
GRADLE_VERSION: 6.9
jobs:
build:
name: Build Kotlin server
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
# server
- samples/server/petstore/kotlin-springboot
- samples/server/petstore/kotlin-springboot-modelMutable
- samples/server/petstore/kotlin-springboot-delegate
- samples/server/petstore/kotlin-springboot-reactive
- samples/server/petstore/kotlin-server/ktor
- samples/server/petstore/kotlin-server/jaxrs-spec
- samples/server/petstore/kotlin-server-modelMutable
# no build.gradle file
#- samples/server/petstore/kotlin-vertx-modelMutable
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 8
- name: Cache maven dependencies
uses: actions/cache@v2.1.7
env:
cache-name: maven-repository
with:
path: |
~/.gradle
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
- name: Install Gradle wrapper
uses: eskatos/gradle-command-action@v2
with:
gradle-version: ${{ env.GRADLE_VERSION }}
build-root-directory: ${{ matrix.sample }}
arguments: wrapper
- name: Build
working-directory: ${{ matrix.sample }}
run: ./gradlew build -x test

View File

@ -1042,5 +1042,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
}
@Override
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.KOTLIN; }
public GeneratorLanguage generatorLanguage() {
return GeneratorLanguage.KOTLIN;
}
}

View File

@ -247,7 +247,9 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
return "Generates a Kotlin client.";
}
public boolean getGenerateRoomModels() { return generateRoomModels; }
public boolean getGenerateRoomModels() {
return generateRoomModels;
}
public void setGenerateRoomModels(Boolean generateRoomModels) {
this.generateRoomModels = generateRoomModels;
@ -343,12 +345,10 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
// Set the value to defaults if we haven't overridden
if (MULTIPLATFORM.equals(getLibrary())) {
setSourceFolder("src/commonMain/kotlin");
}
else if (JVM_VOLLEY.equals(getLibrary())){
} else if (JVM_VOLLEY.equals(getLibrary())) {
// Android plugin wants it's source in java
setSourceFolder("src/main/java");
}
else {
} else {
setSourceFolder(super.sourceFolder);
}
additionalProperties.put(CodegenConstants.SOURCE_FOLDER, this.sourceFolder);
@ -549,8 +549,8 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
this.setGenerateRoomModels(convertPropertyToBooleanAndWriteBack(GENERATE_ROOM_MODELS));
// Hide this option behind a property getter and setter in case we need to check it elsewhere
if (getGenerateRoomModels()) {
modelTemplateFiles.put("model_room.mustache", "RoomModel.kt");
supportingFiles.add(new SupportingFile("infrastructure/ITransformForStorage.mustache", infrastructureFolder, "ITransformForStorage.kt"));
modelTemplateFiles.put("model_room.mustache", "RoomModel.kt");
supportingFiles.add(new SupportingFile("infrastructure/ITransformForStorage.mustache", infrastructureFolder, "ITransformForStorage.kt"));
}
} else {

View File

@ -429,7 +429,7 @@ public class KotlinSpringServerCodegen extends AbstractKotlinCodegen
if (!this.interfaceOnly) {
supportingFiles.add(new SupportingFile("application.mustache", resourceFolder, "application.yaml"));
supportingFiles.add(new SupportingFile("springBootApplication.mustache",
sanitizeDirectory(sourceFolder + File.separator + basePackage), "Application.kt"));
sanitizeDirectory(sourceFolder + File.separator + basePackage), "Application.kt"));
}
}
@ -596,11 +596,11 @@ public class KotlinSpringServerCodegen extends AbstractKotlinCodegen
final List<CodegenParameter> allParams = operation.allParams;
if (allParams != null) {
allParams.forEach(param ->
// This is necessary in case 'modelMutable' is enabled,
// to prevent Spring Request handlers from being generated with
// parameters using their Mutable container types.
// See https://github.com/OpenAPITools/openapi-generator/pull/11154#discussion_r793094727
param.dataType = getNonMutableContainerTypeIfNeeded(param.dataType));
// This is necessary in case 'modelMutable' is enabled,
// to prevent Spring Request handlers from being generated with
// parameters using their Mutable container types.
// See https://github.com/OpenAPITools/openapi-generator/pull/11154#discussion_r793094727
param.dataType = getNonMutableContainerTypeIfNeeded(param.dataType));
}
doDataTypeAssignment(operation.returnType, new DataTypeAssigner() {

View File

@ -37,7 +37,7 @@ public class KotlinVertxServerCodegen extends AbstractKotlinCodegen {
public static final String PROJECT_NAME = "projectName";
final Logger LOGGER = LoggerFactory.getLogger(KotlinVertxServerCodegen.class);
final Logger LOGGER = LoggerFactory.getLogger(KotlinVertxServerCodegen.class);
public CodegenType getTag() {
return CodegenType.SERVER;

View File

@ -1228,5 +1228,7 @@ public class KtormSchemaCodegen extends AbstractKotlinCodegen {
}
@Override
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.KTORM; }
public GeneratorLanguage generatorLanguage() {
return GeneratorLanguage.KTORM;
}
}

View File

@ -1,8 +1,7 @@
{{!
format: email
}}{{#isEmail}}
@get:Email
{{/isEmail}}{{!
@get:Email{{/isEmail}}{{!
pattern set
}}{{#pattern}}
@get:Pattern(regexp="{{{.}}}"){{/pattern}}{{!

View File

@ -1,6 +1,4 @@
{{!
format: email
}}{{#isEmail}}@Email {{/isEmail}}{{!
{{#isEmail}}@Email {{/isEmail}}{{!
pattern set
}}{{#pattern}}@Pattern(regexp="{{{.}}}") {{/pattern}}{{!
minLength && maxLength set

View File

@ -6,6 +6,7 @@ import java.util.Objects
{{#useBeanValidation}}
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

19
pom.xml
View File

@ -1184,7 +1184,6 @@
<module>samples/server/petstore/jaxrs-resteasy/eap-java8</module>
<module>samples/server/petstore/jaxrs-resteasy/joda</module>
<module>samples/server/petstore/jaxrs-resteasy/default-value</module>
<!--<module>samples/server/petstore/kotlin-server/ktor</module>-->
<module>samples/client/petstore/spring-cloud</module>
<module>samples/openapi3/client/petstore/spring-cloud</module>
<module>samples/client/petstore/spring-cloud-date-time</module>
@ -1336,24 +1335,6 @@
<!--<module>samples/client/petstore/elixir</module>-->
<module>samples/client/petstore/erlang-client</module>
<module>samples/client/petstore/erlang-proper</module>
<module>samples/client/petstore/kotlin</module>
<module>samples/client/petstore/kotlin-gson</module>
<module>samples/client/petstore/kotlin-jackson</module>
<module>samples/client/petstore/kotlin-json-request-string</module>
<module>samples/client/petstore/kotlin-jvm-okhttp4-coroutines</module>
<module>samples/client/petstore/kotlin-moshi-codegen</module>
<module>samples/client/petstore/kotlin-multiplatform</module>
<module>samples/client/petstore/kotlin-nonpublic</module>
<module>samples/client/petstore/kotlin-nullable</module>
<module>samples/client/petstore/kotlin-okhttp3</module>
<module>samples/client/petstore/kotlin-retrofit2</module>
<module>samples/client/petstore/kotlin-retrofit2-rx3</module>
<module>samples/client/petstore/kotlin-string</module>
<module>samples/client/petstore/kotlin-threetenbp</module>
<module>samples/client/petstore/kotlin-uppercase-enum</module>
<!-- servers -->
<module>samples/server/petstore/kotlin-springboot</module>
<!--<module>samples/server/petstore/kotlin/vertx</module>-->
<!--<module>samples/server/petstore/erlang-server</module>-->
</modules>
</profile>

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonValue
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -7,6 +7,7 @@ import org.openapitools.model.Category
import org.openapitools.model.Tag
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonValue
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -7,6 +7,7 @@ import org.openapitools.model.Category
import org.openapitools.model.Tag
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonValue
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -7,6 +7,7 @@ import org.openapitools.model.Category
import org.openapitools.model.Tag
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonValue
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -7,6 +7,7 @@ import org.openapitools.model.Category
import org.openapitools.model.Tag
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull

View File

@ -4,6 +4,7 @@ import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Email
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull