7223 Commits

Author SHA1 Message Date
Jim Schubert
60ceded171
[ci][cli] Moving ensures script to config-based batch generation of samples (#6509)
* Ensure CLI-level generator settings are available in additional properties

* Initial conversion to yaml configs

Configs prefix with 1- need to be manually evaluated.

* Add "other" configs not in ensure-up-to-date

* Add other/openapi3 files

* Cleanup all generation scripts

* Clean up: add missed configs and fix some openapi 3 diffs

* Move generate-samples script, error on batch failures

* Temporarily disable elm which requires skip validation of spec

* CI updates (todo: run all generators through appveyor or move to github workflows)

* Add success count to batch generation command output

* [samples] Regenerate

* Remove bin/windows

* Generate swift5 samples in bitrise

* Expand user input glob pattern

* Regenerate samples

* Update PR template

* Support config based generateAliasAsModel

* [samples] Regenerate

* [rust] Generate as alias for all samples configs

* [csharp] Move test staged file changes to in-directory

* Include "live" test files and ignore test cache files from samples.ci

* Remove concept of samples.ci staging

Generators support .openapi-generator-ignore, allowing maintainers to
explicitly ignore the regeneration of files which have been modified.

Note that the tooling does not overwrite test files whenever those files
exist, and it's not entirely necessary to add test files to the ignore
file.

* Re-add meta generator scripts

* Modify ensure-up-to-date to log stdout, so script does not look like it hangs on slower machines

* [csharp] Regenerate sample

* Set generateAliasAsModel CodegenConfigurator#toContext

This ensures the property (which is effectively a thread-local) gets set
as expected if the caller resets GlobalSettings as is done in the
GenerateBatch command.

* [rust] Regenerate samples

* Re-enable elm

* [java] Support OffsetDateTime example, fail ensures script on any generation error

* [samples] Regenerate

* Fix jersey2-java8 ignore file

* Fix elm spec validation

* Force UTC in sample generation to avoid timezone conflicts during generation (user vs ci)

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-06-09 18:28:58 +08:00
William Cheng
c176bdcb3e
[rust][reqwest] fix broken export (#6586)
* fix broken export

* add tests
2020-06-09 15:56:56 +08:00
Michael Kreis
7baa72eefa
add use-site target field for JsonProperty annotation in kotlin data classes (#6186) 2020-06-07 19:23:15 -04:00
Jim Schubert
835dab4b50
Fix typescript generator for parameter collectionFormat for pipes ssv (#6553)
Co-authored-by: David Biesack <David.Biesack@apiture.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Vikrant Balyan <vvb@users.noreply.github.com>
Co-authored-by: Michele Albano <michele.albano@gmail.com>
Co-authored-by: Esteban Gehring <esteban.gehring@bithost.ch>
2020-06-05 19:32:32 -04:00
Bruno Coelho
8da06b038a
[Swift] fix GET request with array parameter (#6549)
* [Swift] fix get request with array paramters

* iOS - update pet projects
2020-06-05 11:39:08 +08:00
Alexey Volkov
6f6c8ede79
[Python] Fixed docstrings in api.mustache (#6391)
* [Python] Fixed docstrings

Fixes https://github.com/swagger-api/swagger-codegen/issues/9630

* Updated generated files

* Fixed python-experimental

* Updated generated files

* Fully fixed the format of the docstrings

* Updated generated files

* Updated generated files in openapi3
2020-06-04 08:46:35 -07:00
Jiri Kuncar
e708cdc83e
[BUG][python] Support named arrays (#6493)
* [python] Support named arrays

* Fix named array type

* Use ModelSimple

* Reset samples

* Regenerated

* Animal farm test

* Array of enums

* Clean-up

* Clean-up

* Clean-up

* Fix array type generation

* simplify

* array model is not alias

* Array model has one value field

* ensure up-to-date

* ./bin/utils/ensure-up-to-date --batch

* Solve issue with missing import for array model

* regenerate
2020-06-04 07:50:53 -07:00
Bruno Coelho
ae790ea74e
[kotlin][client] remove tabs usage (#6526)
* [kotlin] remove tabs

* [kotlin][client] update pet projects
2020-06-04 21:29:08 +08:00
William Cheng
176c439a6d
[PS] automatically derive discriminator mapping for oneOf/anyOf (#6542)
* infer mapping based on oneOf/anyOf schemas

* update files
2020-06-04 21:13:42 +08:00
Samuel Kahn
0f627e70fb
[C++][Ue4] various bus fixes (#6539)
* Fixed compilation on linux and UE4.23

* Added string and enum type definition support

* Better handling or variable names, should avoid conflicts with reserved keywords or empty variable names in edge cases

* Updated samples
2020-06-04 20:37:39 +08:00
William Cheng
859e7f7228
update pester to 5.x (#6536) 2020-06-04 15:05:08 +08:00
William Cheng
5cf4ee1de8
add additional properties support to powershell client generator (#6528) 2020-06-04 11:37:56 +08:00
William Cheng
a6bf956df5
[Go][Experimental] Support additionalProperties (#6525)
* support additonal properties in go

* support additonal properties marshal in go exp

* update go samples
2020-06-04 11:33:21 +08:00
Dennis Melzer
e2e3405689
Register OAuth2ClientContext as bean (#6172)
* Register OAuth2ClientContext as bean

#6171

* Add tab

#6171

* Modify tests

#6171

* Add import for test

#6171

* Modify spring cloud async test

#6171
2020-06-03 15:36:19 +08:00
Justin Van Dort
8fc7ec8458
Typescript-rxjs: print param name (#6368)
* Prints out the parameter name in throwIfNullOrUndefined

* Fixed misspelling

Co-authored-by: Justin Van Dort <justinvandort@gmail.com>
Co-authored-by: Esteban Gehring <esteban.gehring@bithost.ch>
2020-06-02 12:46:30 +02:00
William Cheng
c1cf63e81c
[PowerShell] Add useOneOfDiscriminatorLookup option (#6516)
* add useOneOfDiscriminatorLookup option

* update doc
2020-06-02 14:07:05 +08:00
Justin Black
d8c422398e
[python-experimental] Quicken package loading (#6437)
* apis and models contains all apis and models, omits loading them in the package namespace

* Runs git add -a and commits it

* Fixes test_outer_enum.py

* Fixes test_fruit.py

* Updates test_fruit and test_mammal

* Fixes test_parent_pet

* Updates test_discard_unknown_properties.py

* Updates test_deserialization.py

* Updates v2 docs md files for apis + the readme

* Fixes v2 tests

* v2 doc updates

* Updates v3 docs

* Reverts python_doc_auth_partial.mustache

* Adds sys to v3 tests

* Adds FILES update

Co-authored-by: Justin Black <justinblack@justins-air.lan>
2020-06-01 00:25:37 -07:00
William Cheng
15be875275
[Java][Jersey2] add petstore integration tests (#6508)
* add tests to jersey2 client

* remove import
2020-06-01 11:08:15 +08:00
Samuel Kahn
e3eb3c2f7d
UE4 client generator fixes (#6438)
* Added the possibility for a codegen to set the location of the generated model files, similarly to API files.

* Removed std::shared_ptr from the generated types. Types in UE4Codegen are handled as POD structs, not shared pointers.

* Fixed handling of body parameters as per the specification, the single body object is written directly as the payload.

* Fixed handling of files and binaries, if a field is both isFile and isBinary, file will take precedence.

* Updated cpp-ue4 client samples

* Fixed handling of enums in models

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-06-01 00:13:12 +08:00
Sebastien Rosset
54e2574013
[Java][Jersey2] Fix typo and script, Log enhancements, HTTP signature, deserialization (#6476)
* Mustache template should use invokerPackage tag to generate import

* fix typo, fix script issue, add log statement for troubleshooting

* Add java jersey2 samples with OpenAPI doc that has HTTP signature security scheme

* Add sample for Java jersey2 and HTTP signature scheme

* Add unit test for oneOf schema deserialization

* Add unit test for oneOf schema deserialization

* Add log statements

* Add profile for jersey2

* Temporarily disable unit test

* Temporarily disable unit test

* fix typo in pom.xml

* fix duplicate jersey2 samples

* fix duplicate jersey2 samples

* fix duplicate artifact id

* fix duplicate jersey2 samples

* run samples scripts
2020-05-31 22:45:01 +08:00
Jim Schubert
7e5f720f20
Remove deprecations 5.0 (#6060)
* [breaking] Enforce vendor extension naming convention

* [breaking] Rename system properties to global properties

* [docs] Update site with global properties list and usage explanation

* Use proper vendor extension casing in all templates

* Set remaining vendor extensions to convention of lower kebab-cased with x- prefix

* [samples] Regenerate

* Update modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java

Before we were adding hasPathParams twice, once with !op.pathParams.isEmpty(), and then again with hasPathParams. This was probably caused by a mistaken merge.

This is causing the difference in samples

Co-authored-by: Richard Whitehouse <richard.whitehouse@metaswitch.com>

* [Samples] Regenerated!

* Fix -D conversion to additional-properties, missed in bat files

* JERSEY2 option changed

* [samples] Regenerate

* [scala][finch] Fix remaining vendor extensions format to conventino

* [scala] The -D option was replaced with --global-property

* [samples] Regenerate

* Fix -DskipFormModel usage which has been moved to --global-property skipFormModel=true

* [samples] Regenerate

Co-authored-by: Richard Whitehouse <richard.whitehouse@metaswitch.com>
2020-05-31 19:14:31 +08:00
William Cheng
1efeb92f6b
Migrate Perl samples to use OAS v3 spec (#6490)
* update perl samples to use oas3

* test perl in travis ci

* fix uri query

* fix comment

* fix bearer token

* fix add pet

* update body to pet
2020-05-30 17:00:22 +08:00
Jim Schubert
a47e522fae
[core] Refactor templating management (#6357)
* [core] Refactor templating management

This refactors template management to get logic out of DefaultGenerator
and to provide a cleaner API to template search and read/compile.

Deprecates MockDefaultGenerator, which is not a mock and causes
in-memory retention of file contents. Maintainers should prefer
executing a "dryRun" with new DefaultGenerator(true) or do true
mock/spies if evaluating template intermediaries is truly necessary.
Tests may read written files with lower overhead than the in-process
retention of those bytes.

This attempts to maintain some compatibility with existing templating
adapter interfaces. Any breaking change here would be unintentional but
minimal effort to retarget the new interface.

* Tests for dry run file outputs

* Update API usage in Meta, test TemplateManager

* Wait on lastModified, lookup by filename in SpringCodegenTest

* Test DefaultGenerator + ignore file

* Move config.processOpenAPI in DefaultGenerator

* Fix wrong use of libraries templateDirector (java)

The samples scripts for Java incorrectly referenced the libraries
directories directly rather than the upper-level Java directory. This
was incorrect usage of template directories, because the generator
expects to be given the "language" directory and perform a lookup for
missing templates in the order:

* user defined libraries directory
* user defined language root
* embedded libraries directory
* embedded language root
* _common directory

This is incorrect in our samples scripts because a user or maintainer
has the expectation that any template change to files at the Java/ root
should also be honored on generation if the script specifies a custom
template directory.

* Fix handlebars extension usage, clean up Meta tasks

HandlebarseEngineAdapter previously didn't handle files without
extensions in the same was as the MustacheEngineAdapter. This now allows
for files without extension (or dotfiles) to lookup in the same
location.

Meta tasks are cleaned up to use template manager only, rather than
attempting to create an "empty" generator to use the previous templating
specific methods.

* Update kotlin-multiplatform gradle wrapper

* Rename GraphQL .gitignore template

The .gitignore file is unable to load via classpath resource from the
graphql node server resource directory (for unknown reasons). Before
this change, the missing template would fail silently.

A .gitignore file may exist in other directories and load as expected.
Added a default .gitignore to _common as a fallback so as not to break
any custom generators which may also be failing silently.

* Log entire stacktrace in go sdk built by gradle in AppVeyor

* Rename PHP .gitignore to gitignore

Java resources may not load .gitignore, this follows suit with other
generators and uses "gitignore" (some use "gitignore.mustache").

* [php] Rename .gitignore templates to gitignore

* Use same classpath lookup in common locator

* [rust] Properly escape empty triple-braces

* [samples] Regenerate
2020-05-30 00:19:03 -04:00
William Cheng
74584eb734
migrate apex samples to use oas3 spec (#6488) 2020-05-30 11:17:19 +08:00
Jose Camara
3bf28be4bb
[REQ][typescript-axios] useSingleRequestParameter should mark parameter optional if all properties are optional (#6477)
* Include map for `AnyType` in `typescript`

* Exclude `any` from the list of types extracted from `anyOf`, `allOf`, `oneOf`

Exclude if there are other meaningful types

* Include new scripts and `yaml` to test the new case

* Execute the new sample for `typescript-axios`

* Filter out only `AnyType` instead of all `any` types

* Renamed and modified samples

- Included more examples using `oneOf, `allOf`, `anyOf`
- Includede examples when types that are translated to `any` are involved (`file`)

* Changes in mustache file

Set default value to empty object when the `requestParameter` doesn't have any required param

* New schema with operations without required params

* Generate the sample
2020-05-29 08:14:16 +02:00
William Cheng
bde0d77c8f
[Rust][reqwest] add async support (#6464)
* fix rust sync client

* update doc
2020-05-29 00:45:51 +08:00
Sebastien Rosset
f7f41410e7
[codegen][python-experimental] Composed schema with additionalProperties (#6290)
* Mustache template should use invokerPackage tag to generate import

* Add a unit test for allOf and additionalProperties

* Fix getAdditionalProperties

* Add code comments

* Add code comments

* set nullable for additionalproperties

* add variants of additionalProperties

* Add more unit tests

* Handle additionalProperties for composed schemas

* improve code comments

* Add code comments

* Add code comments

* Add code comments

* Add code comments

* Add code comments

* Add assertions in unit tests

* Add new property to support the 'additionalProperties' keyword with composed schemas

* run sample scripts

* fix unit tests to handle additionalProperties

* Handle additional properties and composed schema

* Handle additional properties and composed schema

* Add support for additionalProperties and composed schema

* Format java code

* Add more unit tests for Python

* Handle reference in additionalProperty keyword

* Handle reference in additionalProperty keyword

* Add use case for additionalProperties and reference

* run sample scripts

* resolve schema reference

* Add OpenAPI argument

* Add OpenAPI argument

* Add OpenAPI argument

* Add OpenAPI argument

* Add OpenAPI argument

* Handle additional property keyword with reference

* Handle additional property keyword with reference

* Handle additional property keyword with reference

* Handle additional property keyword with reference

* add additionalproperties attribute with boolean values

* Run sample scripts

* handle additional properties

* Handle additionalProperties boolean values

* Run sample scripts

* fix javadoc issues

* fix javadoc issues

* Add Locale to String.toLowerCase

* execute sample scripts

* handle additional properties

* Add code comments

* Handle imports of referenced models in additional properties

* Handle isNullable class

* handle nullable type

* improve documentation, run sample scripts

* improve documentation, run sample scripts

* execute sample scripts

* execute sample scripts

* Execute sample scripts

* Run samples scripts

* set legacyAdditionalPropertiesBehavior to true by default, except python

* create separate yaml file to avoid having lots of changes in the pr

* create separate yaml file to avoid having lots of changes in the pr

* create separate yaml file to avoid having lots of changes in the pr

* create separate yaml file to avoid having lots of changes in the pr

* create separate yaml file to avoid having lots of changes in the pr

* create separate yaml file to avoid having lots of changes in the pr

* Change name of CLI option

* Generate doc

* Add TODO statement

* add code comments

* run samples scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* refactor cli option for additional properties

* refactor cli option for additional properties

* run samples scripts

* run sample scripts

* run sample scripts

* run sample scripts

* run sample scripts

* Add yaml comments

* small refactor

* small refactor

* run sample scripts

* run sample scripts

* fix unit tests

* Set disallowAdditionalPropertiesIfNotPresent flag

* reduced size of test yaml file

* simplify code and add imports directly

* rename some of the properties used in tests

* Handle more scenarios for nullable types

* add code comments

* Adds *args input to __init__ method to fix test testFruitNullValue

* Resolve merge issues

* run samples scripts

* run doc generator

* fix merge conflicts

Co-authored-by: Justin Black <justin.a.black@gmail.com>
2020-05-29 00:40:48 +08:00
William Cheng
07647b1a31
[Java] Decommission Retrofit 1.x support (#6447)
* decommission retrofit 1.x support

* remove retrofit 1.x from pom.xml
2020-05-28 21:43:38 +08:00
Sebastien Rosset
b87c927fc2
[Java][jersey2] Fix RuntimeException when HTTP signature parameters are not configured (#6457)
* Mustache template should use invokerPackage tag to generate import

* fix runtime exception when HttpSignatureAuth is not set

* fix runtime exception when HttpSignatureAuth is not set
2020-05-28 21:35:16 +08:00
Esteban Gehring
ec39005ae5
[typescript-angular] drop support of angular below 6.0.0 (#6360)
* typescript-angular: drop support for angular below 6.0.0

* typescript-angular: re-generate samples

* typescript-angular: re-generate docs
2020-05-28 11:28:11 +02:00
Justin Black
a017f3a892
python-experimental updates ancestor + adds descendant discriminator tests (#6417)
* Updates comments in new method

* Adds missing line in model_utils.py

* Removes biology examples, adds ParentPet ancestor example + test, adds Pig schemas

* Updates comment and var names in get_discriminator_class, adds testMammal test

* Updates comment
2020-05-27 20:33:43 -07:00
Rhuan
dc48cfdf74
Fix ruby deprecation error (#6450)
* Update obsolete config in rubocop.

* Update generated petstore clients
2020-05-28 09:33:06 +08:00
William Cheng
ae9d4ee222
[Java][Feign] decommission 9.x support (#6445)
* decommission feign 9.x

* update ci
2020-05-28 09:30:41 +08:00
William Cheng
e3faeac0f5
fix struct export in rust reqwest (#6453) 2020-05-28 09:30:00 +08:00
William Cheng
105efd3c68
[Rust][reqwest] add tests to CI (#6454)
* add tests to rust reqwest petstore client

* add rust reqwest tests to ci
2020-05-28 09:29:42 +08:00
William Cheng
301901bbbc update groovy petstore samples 2020-05-27 16:27:34 +08:00
William Cheng
ddcda1ee50
Migrate Groovy samples to oas3 (#6435)
* migrate groovy samples to oas3

* update samples
2020-05-27 10:59:53 +08:00
Jim Schubert
e6ba9451e8 [samples] Renerate Kotlin coroutines 2020-05-26 21:51:32 -04:00
Bruno Coelho
fac233b3a3
[kotlin][client] add support for coroutines with OkHttp (#6362)
* [kotlin][client] add support for coroutines with OkHttp

* [kotlin] fix petstore project
2020-05-26 23:04:52 +08:00
William Cheng
0a5b02eee5
update package-json.lock (#6430) 2020-05-26 22:26:44 +08:00
William Cheng
0572030e79
[Java][jersey2] minor improvement to jersey2 tests (#6418)
* minor improvement to jersey2 test, remove script/bat

* remove tests for java7 jersey2

* remove log from abstrct java class

* undo change to jaxrs path
2020-05-26 10:26:25 +08:00
William Cheng
c73cafec6b
ps minor style change (#6424) 2020-05-26 10:17:02 +08:00
William Cheng
d49de5b577
[JS] mark ES5 as deprecated (#6408)
* mark js es5 deprecated, remove samples, migrate samples to use oas3

* update test in pom.xml

* update js samples

* delete js es5 samples

* update js petstore

* remove openapi3 js petstore

* fix tests

* skip test/model/AdditionalPropertiesArray.spec.js

* fix test

* update doc
2020-05-26 09:55:00 +08:00
William Cheng
8bbce3397d add new file in ts axios samples 2020-05-26 00:13:41 +08:00
William Cheng
6abc4fdab2
Migrate all scala generators to use OAS3 (#6407)
* migrate all scala generators to use oas3

* add back pom.xml for scala-sttp

* skip form model in scalaz

* fix scala lagom tests

* add new files

* skip form models in scala finch petstore

* update samples
2020-05-25 23:09:34 +08:00
William Cheng
db4c4917e2
migrate ruby samples to oas3 (#6414) 2020-05-25 23:02:30 +08:00
William Cheng
f4897ea4a4
[PS] check if JSON properties is defined (#6419)
* check if json properties not defined

* add new files
2020-05-25 21:06:59 +08:00
William Cheng
c000eaef73
Add C++ UE4 client generator (#6399)
* Added new language: UE4 C++ client

* rename generator

* add copyright

* update doc

* fix with Locale.ROOT

* add new file

* minor improvements

* remove postProcessModels

Co-authored-by: Samuel Kahn <samuel@kahncode.com>
2020-05-25 18:33:48 +08:00
Jose Camara
4dbb5c9e0d
typescript-axios anytype is not defined (#6335)
* Include map for `AnyType` in `typescript`

* Exclude `any` from the list of types extracted from `anyOf`, `allOf`, `oneOf`

Exclude if there are other meaningful types

* Include new scripts and `yaml` to test the new case

* Execute the new sample for `typescript-axios`

* Filter out only `AnyType` instead of all `any` types

* Renamed and modified samples

- Included more examples using `oneOf, `allOf`, `anyOf`
- Includede examples when types that are translated to `any` are involved (`file`)
2020-05-25 10:21:58 +02:00
Slavek Kabrda
205514c455
[Java][jersey2] Make (de)serialization work for oneOf models, add convenience and comparison methods (#6323) 2020-05-25 15:17:52 +08:00