Permalink
Please
sign in to comment.
Browse files
Add mutable model option to kotlin generators (#4115)
* Add mutable model option to kotlin generators fix #3803 * doc * Change template name to modelMutable * Samples
- Loading branch information
Showing
with
1,743 additions
and 49 deletions.
- +2 −1 bin/kotlin-springboot-petstore-all.sh
- +35 −0 bin/kotlin-springboot-petstore-server-model-mutable.sh
- +1 −1 bin/kotlin-vertx-server-petstore.sh
- +1 −0 docs/generators/kotlin-server.md
- +1 −0 docs/generators/kotlin-spring.md
- +1 −0 docs/generators/kotlin-vertx.md
- +1 −0 docs/generators/kotlin.md
- +5 −0 ...les/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-client/data_class_opt_var.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-client/data_class_req_var.mustache
- +1 −0 modules/openapi-generator/src/main/resources/kotlin-client/modelMutable.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-server/data_class_opt_var.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-server/data_class_req_var.mustache
- +1 −0 modules/openapi-generator/src/main/resources/kotlin-server/modelMutable.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-spring/dataClassOptVar.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-spring/dataClassReqVar.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-spring/interfaceOptVar.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-spring/interfaceReqVar.mustache
- +1 −0 modules/openapi-generator/src/main/resources/kotlin-spring/modelMutable.mustache
- +2 −2 modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_opt_var.mustache
- +1 −1 modules/openapi-generator/src/main/resources/kotlin-vertx-server/data_class_req_var.mustache
- +1 −0 modules/openapi-generator/src/main/resources/kotlin-vertx-server/modelMutable.mustache
- +24 −0 modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java
- +18 −35 modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java
- +72 −0 modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/KotlinModelCodegenTest.java
- +23 −0 samples/server/petstore/kotlin-springboot-modelMutable/.openapi-generator-ignore
- +1 −0 samples/server/petstore/kotlin-springboot-modelMutable/.openapi-generator/VERSION
- +21 −0 samples/server/petstore/kotlin-springboot-modelMutable/README.md
- +54 −0 samples/server/petstore/kotlin-springboot-modelMutable/build.gradle.kts
- +153 −0 samples/server/petstore/kotlin-springboot-modelMutable/pom.xml
- +15 −0 samples/server/petstore/kotlin-springboot-modelMutable/settings.gradle
- +14 −0 ...es/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/Application.kt
- +29 −0 ...server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/Exceptions.kt
- +184 −0 ...les/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/PetApi.kt
- +22 −0 ...ver/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/PetApiService.kt
- +40 −0 ...petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/PetApiServiceImpl.kt
- +107 −0 ...s/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApi.kt
- +13 −0 ...r/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiService.kt
- +23 −0 ...tstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/StoreApiServiceImpl.kt
- +161 −0 ...es/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/UserApi.kt
- +21 −0 ...er/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/UserApiService.kt
- +39 −0 ...etstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/api/UserApiServiceImpl.kt
- +29 −0 ...server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/Category.kt
- +33 −0 ...etstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
- +60 −0 ...es/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/Order.kt
- +64 −0 samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/Pet.kt
- +29 −0 samples/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/Tag.kt
- +53 −0 ...les/server/petstore/kotlin-springboot-modelMutable/src/main/kotlin/org/openapitools/model/User.kt
- +10 −0 samples/server/petstore/kotlin-springboot-modelMutable/src/main/resources/application.yaml
- +148 −0 ...server/petstore/kotlin-springboot-modelMutable/src/test/kotlin/org/openapitools/api/PetApiTest.kt
- +77 −0 ...rver/petstore/kotlin-springboot-modelMutable/src/test/kotlin/org/openapitools/api/StoreApiTest.kt
- +143 −0 ...erver/petstore/kotlin-springboot-modelMutable/src/test/kotlin/org/openapitools/api/UserApiTest.kt
@@ -1,4 +1,5 @@ | ||
#!/bin/sh | ||
|
||
./bin/kotlin-springboot-petstore-server.sh | ||
./bin/kotlin-springboot-petstore-server-reactive.sh | ||
./bin/kotlin-springboot-petstore-server-reactive.sh | ||
./bin/kotlin-springboot-petstore-server-model-mutable.sh |
@@ -0,0 +1,35 @@ | ||
#!/bin/sh | ||
|
||
SCRIPT="$0" | ||
echo "# START SCRIPT: $SCRIPT" | ||
|
||
while [ -h "$SCRIPT" ] ; do | ||
ls=$(ls -ld "$SCRIPT") | ||
link=$(expr "$ls" : '.*-> \(.*\)$') | ||
if expr "$link" : '/.*' > /dev/null; then | ||
SCRIPT="$link" | ||
else | ||
SCRIPT=$(dirname "$SCRIPT")/"$link" | ||
fi | ||
done | ||
|
||
if [ ! -d "${APP_DIR}" ]; then | ||
APP_DIR=$(dirname "$SCRIPT")/.. | ||
APP_DIR=$(cd "${APP_DIR}"; pwd) | ||
fi | ||
|
||
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar" | ||
|
||
if [ ! -f "$executable" ] | ||
then | ||
mvn clean package | ||
fi | ||
|
||
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties" | ||
ags="$@ generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -t modules/openapi-generator/src/main/resources/kotlin-spring -g kotlin-spring -o samples/server/petstore/kotlin-springboot-modelMutable --additional-properties=library=spring-boot,beanValidations=true,swaggerAnnotations=true,serviceImplementation=true,serializableModel=true,modelMutable=true" | ||
|
||
echo "Cleaning previously generated files if any from samples/server/petstore/kotlin-springboot" | ||
rm -rf samples/server/petstore/kotlin-springboot-modelMutable | ||
|
||
echo "Generating Kotling Spring Boot server..." | ||
java $JAVA_OPTS -jar $executable $ags |
@@ -0,0 +1 @@ | ||
{{#modelMutable}}var{{/modelMutable}}{{^modelMutable}}val{{/modelMutable}} |
@@ -1,4 +1,4 @@ | ||
{{#description}} | ||
/* {{{description}}} */ | ||
{{/description}} | ||
val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} | ||
{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} |
@@ -1,4 +1,4 @@ | ||
{{#description}} | ||
/* {{{description}}} */ | ||
{{/description}} | ||
val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} | ||
{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} |
@@ -0,0 +1 @@ | ||
{{#modelMutable}}var{{/modelMutable}}{{^modelMutable}}val{{/modelMutable}} |
@@ -1,4 +1,4 @@ | ||
{{#useBeanValidation}}{{#required}} | ||
{{^isReadOnly}}@get:NotNull{{/isReadOnly}} {{/required}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swaggerAnnotations}} | ||
@ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swaggerAnnotations}} | ||
@JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} | ||
@JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} |
@@ -1,4 +1,4 @@ | ||
{{#useBeanValidation}}{{#required}} | ||
{{^isReadOnly}}@get:NotNull{{/isReadOnly}} {{/required}}{{>beanValidationModel}}{{/useBeanValidation}}{{#swaggerAnnotations}} | ||
@ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swaggerAnnotations}} | ||
@JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isReadOnly}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}{{/isReadOnly}} | ||
@JsonProperty("{{{baseName}}}"){{#isInherited}} override{{/isInherited}} {{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isReadOnly}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}{{/isReadOnly}} |
@@ -1,3 +1,3 @@ | ||
{{#swaggerAnnotations}} | ||
@ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swaggerAnnotations}} | ||
val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}{{/discriminator}} | ||
{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? {{^discriminator}}= {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}{{/discriminator}} |
@@ -1,3 +1,3 @@ | ||
{{#swaggerAnnotations}} | ||
@ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}{{#isReadOnly}}readOnly = {{{isReadOnly}}}, {{/isReadOnly}}value = "{{{description}}}"){{/swaggerAnnotations}} | ||
val {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} | ||
{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} |
@@ -0,0 +1 @@ | ||
{{#modelMutable}}var{{/modelMutable}}{{^modelMutable}}val{{/modelMutable}} |
@@ -1,4 +1,4 @@ | ||
{{#description}} | ||
/* {{{description}}} */ | ||
{{/description}} | ||
var {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} | ||
{{>modelMutable}} {{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}} |
@@ -1,4 +1,4 @@ | ||
{{#description}} | ||
/* {{{description}}} */ | ||
{{/description}} | ||
@SerializedName("{{{name}}}") private var _{{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? | ||
@SerializedName("{{{name}}}") private {{>modelMutable}} _{{{name}}}: {{#isEnum}}{{classname}}.{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? |
@@ -0,0 +1 @@ | ||
{{#modelMutable}}var{{/modelMutable}}{{^modelMutable}}val{{/modelMutable}} |

Oops, something went wrong.
0 comments on commit
2dc0220