Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kotlin-client][kotlin-server] feature: allow creation of kotlin data classes that implement java.io.Serializable #3997

Merged
merged 5 commits into from
Oct 1, 2019
Merged

[kotlin-client][kotlin-server] feature: allow creation of kotlin data classes that implement java.io.Serializable #3997

merged 5 commits into from
Oct 1, 2019

Conversation

janweinschenker
Copy link
Contributor

@janweinschenker janweinschenker commented Sep 30, 2019

…rializable, by adding the config option serializableModel=(true|false)

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language. @jimschubert (2017/09) ❤️, @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04)

Description of the PR

I added a new configOption "serializableModel=(true|false)" to org.openapitools.codegen.languages.AbstractKotlinCodegen and to the files

  • kotlin-server/data_class.mustache
  • kotlin-client/data_class.mustache

in order to allow to generate kotlin data classes that implement the interface "java.io.Serializable". This will come in handy if data classes are generated with the intention to store data in databases or in distributed caches (i.e. hazelcast)

…rializable, by adding the config option serializableModel=(true|false)
@janweinschenker janweinschenker changed the title feat: allow creation of kotlin data classes that implement java.io.Se… [kotlin-client][kotlin-server] feature: allow creation of kotlin data classes that implement java.io.Serializable Sep 30, 2019
@wing328
Copy link
Member

wing328 commented Oct 1, 2019

FYI. I've added the new option via 15e433e and update the doc, samples, etc.

@wing328 wing328 merged commit baa53cb into OpenAPITools:master Oct 1, 2019
Jesse0Michael pushed a commit to Jesse0Michael/openapi-generator that referenced this pull request Oct 3, 2019
… classes that implement java.io.Serializable (OpenAPITools#3997)

* feat: allow creation of kotlin data classes that implement java.io.Serializable, by adding the config option serializableModel=(true|false)

* docs: add markdown docu for new configOption serializableModel

* fix: do not use parcelize in script

* update kotlin samples

* add the option, update the doc
@wing328
Copy link
Member

wing328 commented Oct 4, 2019

@janweinschenker thanks for the PR, which has been included in the v4.1.3 release: https://twitter.com/oas_generator/status/1180123829626003456

@janweinschenker
Copy link
Contributor Author

You’re welcome! Thx for accepting it.

@nbabb
Copy link

nbabb commented Nov 16, 2020

I've tried adding serializableModel like below, but it doesn't seem to cause the generated model objects to implement Serializable in 4.3.1 or 5.0.0-beta2. Any clues? Thanks.

openApiGenerate {
    verbose.set(false)
    validateSpec.set(true)
    generatorName.set("kotlin-spring")
    inputSpec.set("${rootDir}/yaml/endpoints.yaml")
    outputDir.set("${buildDir}/api-generated")
    modelPackage.set("com.my.model")
    apiPackage.set("com.my.controller")
    modelNameSuffix.set("Resource")
    configOptions.set(mapOf(
            "serializableModel" to "true",
            "enumPropertyNaming" to "UPPERCASE"
    ))
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants