Compare commits

...

1798 Commits

Author SHA1 Message Date
Jim Schubert 9563e8e3b6 [docs] Creating a new generator 2019-01-09 12:09:14 -05:00
Jim Schubert cddb722b30 Copy current contributing/code of conduct to website 2019-01-06 23:11:53 -05:00
Jim Schubert 3ed68a0515 [docs] Migrate FAQ, release summary from wiki
FAQ has been split into multiple smaller documents to better categorize
and allow users to find what they're looking for (in docs folder or in
new website).

Release summary information (versioning strategy and cadence) has been
migrated from the Wiki and clarified a bit.

Also adds copy button for all code snippets in website.
2019-01-06 22:45:32 -05:00
Jim Schubert 009e2f3ea7 travis configuration, and baseUrl mods to image URLs 2019-01-03 23:39:39 -05:00
Jim Schubert 148041812e Move users to yaml file for easy edit. 2019-01-03 22:17:58 -05:00
Jim Schubert d173d778cb Cleanup templating page(s). 2019-01-03 21:51:02 -05:00
Jim Schubert e335cfcf11 Add vendor extension docs 2019-01-03 12:13:46 -05:00
Jim Schubert 1978db5ab7 Merge branch 'master' into docusaurus
* master: (26 commits)
  Delete unused method (#1744)
  Use JsonNullable wrapper on nullable/x-nullable fields (#1762)
  Add an option to use reflection in equals, hashCode (Java client) (#1767)
  [Slim] Encode path to support non-latin characters (#1687)
  [elm] Add support for sending headers (#1704)
  Add test case for InlineModelResolver: inline array response (#1778)
  fix group parameter logic (#1779)
  Add test case for InlineModelResolver: inline array request body (#1777)
  Add test case for InlineModelResolver: inline array schema (#1772)
  Fix type inference error (#1773)
  skip default value for contaier in spring (#1725)
  [Slim] Add PHP CodeSniffer config template (#1764)
  Use CompareNetObject for object comparison in C# client (refactor) (#1765)
  Add test case for InlineModelResolver (#1771)
  Add online gen tests (#1759)
  Resolve inline models before preprocess (#1761)
  better handling of allOf (composition) (#1757)
  Fix UUID support (#1746)
  Use appInfo.version for podspec (#1760)
  [Swift 4] Add `createURLRequest` method (#1727)
  ...
2018-12-30 21:33:14 -05:00
Jim Schubert e57f8f02fd Updating templating and customization docs 2018-12-30 21:14:07 -05:00
Akihito Nakano 5730f6224a Delete unused method (#1744)
* Delete unused method

* Delete unused property "typeMapping"

* Delete unused "import" declaration
2018-12-31 10:10:07 +08:00
Christophe Bornet 0fca90133c Use JsonNullable wrapper on nullable/x-nullable fields (#1762)
* Use JsonNullable wrapper on nullable/x-nullable fields

Fix #1250

* update samples
2018-12-31 10:04:26 +08:00
William Cheng 2c051f265c Add an option to use reflection in equals, hashCode (Java client) (#1767)
* add option to use reflection in equals, hashcode (java)

* add model test template to java client only

* update pestore samples

* update java samples

* update doc

* update usage, remove unused file
2018-12-31 10:03:05 +08:00
Yuriy Belenko e8ac630ca5 [Slim] Encode path to support non-latin characters (#1687)
* [Slim] Add encodePath method

* [Slim] Add tests for encodePath method

* [Slim] Use unescaped path in router

Both variables basePathWithoutHost and path are already urlEncoded in
codegen itself. Builtin html encoding in mustache is redundant. We can
use these raw codegen values with no fear.

* [Slim] Refresh samples
2018-12-31 10:02:45 +08:00
Erik Timmers a0e5b74b2b [elm] Add support for sending headers (#1704) 2018-12-31 09:58:45 +08:00
Jim Schubert 78faa74bd7 Include new custom template documentation 2018-12-30 16:22:42 -05:00
Akihito Nakano 321416e960 Add test case for InlineModelResolver: inline array response (#1778)
* Add test case : inline array response

* Add test case : inline array response with title

* Delete legacy test cases
2018-12-30 17:53:36 +09:00
William Cheng 2e727f6dc7 fix group parameter logic (#1779) 2018-12-30 16:50:21 +08:00
Jim Schubert 185313e08e Improve "Getting Started" type docs 2018-12-30 00:38:05 -05:00
Akihito Nakano 7cee999543 Add test case for InlineModelResolver: inline array request body (#1777)
* Add test case : inline array request body

* Delete legacy test case

* Tweak code format

* Delete unused import
2018-12-30 12:12:50 +09:00
Akihito Nakano 77b5cea518 Add test case for InlineModelResolver: inline array schema (#1772)
* Add test case

* Delete legacy test case

* Add a test case: inline array schema

* Delete legacy test case

* Fix test yaml
2018-12-30 10:32:02 +09:00
Akihito Nakano 6a4f3385d8 Fix type inference error (#1773)
* Fix type inference error

* Update samples

bin/openapi3/kotlin-client-petstore.sh
bin/kotlin-client-petstore.sh

* Update samples
2018-12-29 12:14:34 -05:00
Jim Schubert 193b09693c Include NPM try it out section 2018-12-29 10:03:47 -05:00
Jim Schubert c4de50f845 Remove feature callout until it is completed 2018-12-29 09:41:19 -05:00
Jim Schubert c69af94397 Add Font Awesome attribution footer 2018-12-29 09:40:38 -05:00
Jim Schubert 37ce585e27 Include generator indexes in ensure-up-to-date (docusaurus site and /generators/README) 2018-12-29 09:01:39 -05:00
Jim Schubert fb49fa7c8e Change pinned users to represent global presence rather than alphabetical order pinning 2018-12-29 08:58:02 -05:00
William Cheng e821a58fd1 skip default value for contaier in spring (#1725) 2018-12-29 18:50:10 +08:00
Yuriy Belenko 5400a7e445 [Slim] Add PHP CodeSniffer config template (#1764)
* [Slim] Add PHP_CodeSniffer config template

* [Slim] Update doc

* [Slim] Add local configs to gitignore

PHPUnit and PHP_CodeSniffer provides the same developing pattern when
user overrides global config with local one. In local config he can
set environment variables. Official doc recommends to not commit local
config files.

* [Slim] Remove phpcsStandard CLI option

Now user have full freedom to override config file. This option is not
used and not necessary anymore.

* [Slim] Refresh samples
2018-12-29 15:58:15 +09:00
William Cheng 1db105b6f9 Use CompareNetObject for object comparison in C# client (refactor) (#1765)
* add pet, array of array test, use CompareNetObject for comparision

* add an option, should trigger ci failure

* update doc

* use useCompareNetObjects in csharp-refactor petstore

* fix project template
2018-12-29 14:45:49 +08:00
Akihito Nakano 06a67ce6e4 Add test case for InlineModelResolver (#1771)
* Add a test case of resolving inline request body

* Delete legacy test case

* Add a test case of resolve inline request body with required

* Delete legacy test case
2018-12-29 14:38:46 +09:00
Jim Schubert c81c9b4ad2 Remove error about default local being used by String.format 2018-12-28 17:11:28 -05:00
Jim Schubert 6aeb534242 Iniital docusaurus based site 2018-12-28 16:53:24 -05:00
Christophe Bornet 5952bec6bf Add online gen tests (#1759) 2018-12-28 14:18:43 +08:00
Akihito Nakano 5f2d79b669 Resolve inline models before preprocess (#1761) 2018-12-28 11:13:30 +08:00
William Cheng 177deb918a better handling of allOf (composition) (#1757) 2018-12-27 16:01:18 +08:00
Akihito Nakano 5d98fc6beb Fix UUID support (#1746)
* Add custom type adapter to deserialize UUID

* Update samples

./bin/kotlin-client-threetenbp.sh
./bin/kotlin-client-string.sh
./bin/kotlin-client-petstore.sh
2018-12-27 08:59:57 +09:00
Daiki Matsudate 292d987f15 Use appInfo.version for podspec (#1760) 2018-12-27 00:19:29 +08:00
Daiki Matsudate c2273a651a [Swift 4] Add createURLRequest method (#1727)
* add create URL Request method

* add comment
2018-12-27 00:19:11 +08:00
William Cheng 902a4b4099 remove self-reference import (#1758) 2018-12-26 18:11:26 +08:00
Daiki Matsudate c13e089c85 [swift4] Use RequestBuilder directly for RxSwift and PromiseKit (#1718)
* remove default implementation

* avoid insert blank lines
2018-12-26 18:01:26 +08:00
William Cheng c62a1f11ee maven dep version update (#1754) 2018-12-26 10:53:53 +08:00
Akihito Nakano aa1cfd81fe Minor fixes for InlineModelResolver (#1756)
* Delete unused methods

* Improve access modifiers declaration

* InlineModelResolver#flatten can be package-private

* Delete unused import declaration

* Sort properties
2018-12-26 10:53:39 +08:00
William Cheng e4f80dcc0e various fix for free-form object (#1751) 2018-12-26 10:38:07 +08:00
William Cheng 120c0a05f0 Restore Ruby tests after parser update (#1753)
* uncomment ruby test after parser update

* remove comment
2018-12-26 10:36:58 +08:00
zigen 7595baef00 Fix composed oneof type 1749 (#1750)
* add test to check that DefaultCodegen generates composed oneof schema properly

* fix composed-oneof type generation bug (#1749)
2018-12-24 17:46:42 +08:00
William Cheng 0dee995ebb Fix discriminator name not following variable naming convention (#1742)
* fix discrimintator name not following variable naming convention

* fix test

* update samples

* use discriminator name directly in php

* single quote array index
2018-12-24 10:17:43 +08:00
tanmen aed2c882da add nullable support to typescript-axios (#1743) 2018-12-24 00:59:13 +08:00
Jim Schubert 92badd8d49 [kotlin-spring] Allow DateTime to be remapped to others (LocalDateTIme) (#1740) 2018-12-24 00:34:47 +08:00
Yuriy Belenko 72dcee9d86 [Slim] Abstract API controllers (#1483)
* [Slim] Add abstract prefix to API controllers

* [Slim] Add userClassname property to codegen

* [Slim] Add src folder to Composer autoload

* [Slim] Change template to produce abstract controllers

* [Slim] Update API tests template

* [Slim] Add implementation note

* [Slim] Remove deprecated AbstractApiController

* [Slim] Refresh samples
2018-12-23 23:51:26 +08:00
Akihito Nakano f1831533d4 [Java] Update dependencies (#1735)
* Update retrofit2

refs:
https://nvd.nist.gov/vuln/detail/CVE-2018-1000850
https://nvd.nist.gov/vuln/detail/CVE-2018-1000844

* Update samples

./bin/java-petstore-all.sh

* Implement okhttp3.Call#timeout

refs https://github.com/square/okhttp/pull/4363

* Update samples

./bin/java-petstore-all.sh

* Update Play26CallFactory

* Fix indent
2018-12-23 19:03:50 +08:00
Akihito Nakano 05107032d1 Fix missing closing parenthesis (#1739)
* Add a script to generate kotlin client samples from OAS3

* Generate kotlin client

* Fix missing closing parenthesis

* Update samples

* Add build folder to gitignore
2018-12-23 09:54:51 +09:00
William Cheng 2ccfdc8e5d Add C# client (refactor) to Appveyor CI (#1738)
* add c# client (refactor) to CI

* fix typo
2018-12-23 08:08:05 +08:00
Jim Schubert 13f5064ea4 Update auto-labeler.yml (#1741)
Change wording about reviewing the labels, so it doesn't sound like the user should apply labels (they can't).
2018-12-23 08:07:11 +08:00
William Cheng 667275fb25 Fix C# client warnings (#1737)
* fix csharp warnings

* fix incorrect line break removal
2018-12-23 08:06:55 +08:00
Jérémie Bresson a7dfc650b6 Swagger parser update: 2.0.8-OpenAPITools.org-1 (#1721)
* Update Swagger-Parser Version

* Update samples

* surpress javadoc warning

* fix TS tests

* Set version to 2.0.8-OpenAPITools.org-1
2018-12-22 18:12:08 +08:00
Steven Masala 43abd61144 Typescript nullable (#1730)
* fix name sanitation when using kebab case filenaming

* remove whitespaces

* nullable

* remove test comment
2018-12-22 16:49:44 +08:00
William Cheng 2a11f55267 Re-enable the rust reqwest client test 2018-12-22 16:30:19 +08:00
William Cheng 77edec0c65 Revert "[Rust] Support formParams and fix list-params." (#1732)
* Revert "Disable rust-reqwest petstore test"

This reverts commit 9e1cce2e7b.

* Revert "Fix various CI issues (#1722)"

This reverts commit 77270a0118.

* Revert "[Rust] Support formParams and fix list-params. (#1678)"

This reverts commit 4a494b45d3.
2018-12-22 16:28:55 +08:00
William Cheng 9e1cce2e7b Disable rust-reqwest petstore test 2018-12-21 10:52:58 +08:00
William Cheng 77270a0118 Fix various CI issues (#1722)
* fix shippable failure

* fix warning in javadoc, test ruby in shippable

* update mvn command

* move ruby test to circleci

* remove additional option
2018-12-21 10:16:31 +08:00
Marco Farrugia 4a494b45d3 [Rust] Support formParams and fix list-params. (#1678)
* [Rust] Support formParams and fix list-params.

Form params were previously unsupported, and list-params would produce code that didn't compile.

* update rust samples
2018-12-21 10:08:00 +08:00
Jim Schubert 10ecc0e52f [csharp-refactor] Minor csharp refactor changes (#1723)
* [csharp-refactor] Minor changes to JSON mime usage

🐎 This maeks the regex static to reduce GC overhead for active clients.
This also removes the lowercase call on the mimetype before evaluating,
as the regex already uses the inline modifier for case insensitivity.

* [csharp-refactor] Regenerate sample
2018-12-21 09:57:38 +08:00
Tomasz Prus 89a0ffa66c feat: [python/asyncio] use ssl argument instead of ssl_context (deprecated from aiohttp>=3.0.0) (#1724) 2018-12-21 09:52:27 +08:00
Jérémie Bresson d38b9e588b [core] support for 'x-enum-varnames' for enums in arrays (#1703) 2018-12-20 16:30:34 +01:00
William Cheng b6e80e86b2 Add nullable support to JAXRS-CXF parameters (#1679)
* add nullable support to jaxrs cxf parameters

* remove end of file line break

* fix default value for list

* update samples
2018-12-20 16:07:45 +08:00
William Cheng f188fa08e5 fix enum and map of neum (regression) (#1706) 2018-12-20 16:07:22 +08:00
William Cheng 93c13074ff various fixes to csharp refactor client (#1711) 2018-12-20 16:06:29 +08:00
Daiki Matsudate 9ff8a24895 fix description (#1710) 2018-12-20 15:55:29 +08:00
gndrm 98ae7a816c Introduced GeneratorProperties as a thread-safe clone of System Properties (#1598)
* Introduced GeneratorProperties as a thread-safe clone of System Properties

* Removed unnecessary SmartBear copyright
2018-12-19 21:46:05 +08:00
Jim Schubert 2025d128b3 Creating regex for our generators which will allow the bot to au… (#1639)
* WIP: creating regex for our generators which will allow the bot to automatically label issues and PRs

* Include additional WIP regex

* Remainder of implemented generators

* Add tests for regex in auto labeling
2018-12-17 17:56:00 +08:00
William Cheng 81cf611aa4 add nullable support to perl api parameter (#1690) 2018-12-17 17:11:23 +08:00
William Cheng d7d994620c Add multiple inheritance support to Perl client (#1681)
* add multiple inheritance support to perl client

* remove allof test from fake petstore
2018-12-17 15:28:20 +08:00
William Cheng b6a23986b3 fix java instantiated lists (#1683) 2018-12-17 14:42:04 +08:00
Joe Elliott 33fbd9c78b [Swift] Updates for Swift 4.2 (#1443)
* [Swift] Update Alamofire version and update tests and Swift version to 4.2 for default and RxSwift variants

* Update promiseKit for Swift 4.0

* Update project files.

* Merge branch 'master' of https://github.com/OpenAPITools/openapi-generator into OpenAPITools-master

# Conflicts:
#	samples/client/petstore/swift4/default/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj

* Merge in latest master

* Remove typo in bash file
2018-12-17 15:41:06 +09:00
Yuriy Belenko 3896821d5e [Slim] Add phplint cache to gitignore (#1686)
* [Slim] Add phplint cache to gitignore

* [Slim] Refresh samples
2018-12-17 14:21:39 +08:00
William Cheng fb15a4baf3 [core] Update parser and core to latest version (#1569)
* Update swagger-parser to 2.0.7
* Update swagger-core to 2.0.6
2018-12-17 06:56:46 +01:00
William Cheng c05dc24e6a Mark swift3 generator as deprecated (#1675)
* mark swift3 as deprecated

* update windows batch scripts
2018-12-16 19:20:37 +08:00
David Cloutier 06150767f4 Proposed fix for issues #1654. fix isSerializable for java jaxrs-cxf (#1656)
* Update model.mustache

fix serializable import for cxf-cdi

* Update pojo.mustache

add implements to the pojo if isSerializable is true

* Update model.mustache

add import statement to fix compile issue when {{#serializableModel}} is true

* Update pojo.mustache

remove extra space to prevent unecessary diffs in petstore examples: diff --git a/samples/server/petstore/jaxrs-cxf/src/gen/java/org/openapitools/model/*
2018-12-15 17:04:45 +08:00
Dec12 | Fujigon 7609398150 Fix the bug header bean validation is not performed (#1661)
* update template

* update template

* update samples
2018-12-15 16:37:25 +08:00
meganemura 82fcde1d91 Improve model class of ruby-client (#1670)
* Add Model.build_from_hash

* Use Model.build_from_hash instead of Model.new.build_from_hash

* Update sample for ruby-client

* Update sample for openapi3 ruby-client
2018-12-15 16:24:03 +08:00
Nicolas Ochem cacce1f707 fix typo in README (#1677)
Fix typo in README
2018-12-15 16:23:48 +08:00
William Cheng 8c599ebf12 Add support for multiple inheritance (#1664)
* add all parent names

* clean up supportsInheritance

* fix npe

* fix allVars, fix test cases

* add more tests, remove comments

* update docker m2 cache dir, add more tests, fix mandatory

* update samples

* regenerate js spec files

* add logic to detect self reference

* add isSelfReference flag to codegen property

* add ruby tests for cat model

* remove debugging info

* fix JS allvars not have x-js-doctype

* update samples

* update js samples
2018-12-15 00:24:36 +08:00
William Cheng 587bd56655 add mavencentral to build.gradle (#1674) 2018-12-15 00:22:11 +08:00
Jim Schubert 1f95b54cef Include mavenCentral in java build.gradle (#1653)
the android dep is currently missing from jcenter. This adds
mavenCentral as an additional repository to the default java generator's
build.gradle.
2018-12-14 21:23:06 +08:00
ccozzolino 95c744381b [JAVA][Server] Fixed issue #1525: Fix model class field initializations (Regression since 3.3.1) (#1549)
* Fixed issue #1525. Adjust class field declarations with proper initializations.

* Adjusted templates to add default only when it is exists.
2018-12-13 01:11:47 +08:00
Jean-François Côté 0b029088f4 Add Stingray to company using openspi-generator 2018-12-10 09:48:28 -05:00
William Cheng 66cff2b05a fix alias to free form object & map (#1638) 2018-12-10 22:46:41 +08:00
feihongmeilian 489c404783 Add instructions for erlang-server (#1643) 2018-12-10 17:45:19 +08:00
Denis Korenevskiy a27224e50d [php] bugfix: Array and Map inner schema definition can be missing. (#1586) 2018-12-10 17:43:44 +08:00
William Cheng 98aa5f8db2 add erlang-proper to shippable CI (#1642) 2018-12-10 17:43:00 +08:00
Juan Facorro 87bc9d436f Introduce optional weight function for commands and other improvements (#1618)
* Generator erlang-proper

Used to generate PropEr generators for property-based testing

* Rearrange *_statem.erl functions and remove *_statem.hrl

* Optional weight function

* Optional argument to override generated values

* Export function with arity 1

* Move syntactic sugar to header file

* Only provide body when its allowed

* The weight function should not depend on the state
2018-12-10 11:41:12 +08:00
Jim Schubert 5b91d40a8a Update issue templates (#1636)
This updates issue templates to support auto-labeling, and multiple issue formats.
2018-12-10 11:30:55 +08:00
Akihito Nakano f19794464b Delete --lang option (#1592)
* Delete --lang option

* Fix -l

* Fix -l flag (windows)

* Add migration guide

* Change to -g

* Remove lang option

* Change to -g
2018-12-09 19:26:51 +09:00
Akihito Nakano 7e3e9dba11 Replace Class.newInstance() with Constructor.newInstance() (#1635) 2018-12-08 22:31:57 +08:00
John Bush c4f0521e10 Fix escaped regex values in Python client (#1517). (#1539)
* Fix escaped regex values in Python client (#1517).

* Override PythonClientCodegen toRegularExpression() method to correct
  issue with backslashes being escaped. This issue was a result of
  calling escapeText() in the parent DefaultCodegen class.

* Only escape unescaped forward slashes in PythonClientCodegen.

* Override addRegularExpressionDelimiter in PythonClientCodegen.java
  such that only unescaped forward slashes in the pattern get escaped.
* Adds a new test resource .yaml file for specifically testing this
  issue.

* Check for regular expression modifiers in PythonClientCodegen.

* Adds check in postProcessPattern() in PythonClientCodegen.java to
  check if regular expression has modifiers defined. If so, it throws an
  exception as modifiers are not currently supported in the Python
  client.

* PythonClientCodegen warns that regex modifiers are not supported.

* Changes behavior in PythonClientCodegen.java to no longer throw an
  IllegalArgumentException in the case that a pattern contains
  modifiers. A warning message will be logged instead stating that
  modifiers are not currently supported by the codegen class.

* Remove warning for PythonClientCodegen regex modifier support.

* Removes warning message from PythonClientCodegen.java stating that
  regular expression modifiers are not currently supported. Further
  code review and testing revealed that this feature is already
  supported and working.

* Add updated Python client sample files.
2018-12-08 11:32:55 +08:00
Phil Adams 2d39f14882 Fix NPE in ModelUtils.isFreeFormObject() (#1625)
Fixes #1696

An object schema containing no properties that also has additionalProperties
set to an object schema with no properties will cause
ModelUtils.isFreeFormObject to throw an NPE.
This PR adds additional checking to avoid the NPE.
2018-12-07 23:16:58 +08:00
William Cheng 2f4bea6967 remove isNotContainer (#1629) 2018-12-07 23:10:35 +08:00
Akihito Nakano b84ec60306 Add ASKUL (#1631)
* Add ASKUL

* Update link
2018-12-07 23:05:26 +08:00
Benjamin Gill 2a4fe5bc0e @metaswitch is now using openapi-generator (#1632) 2018-12-07 22:23:53 +09:00
Tomek Cejner 922532da6a [core] Prevent NPE when enpoint did not define responses (#1617) 2018-12-07 11:57:16 +01:00
William Cheng 774013c7e1 Better OpenAPI spec v3 support: allOf, anyOf, oneOf (#1360)
* add oneOf support to Ruby

* add anyOf support to ruby client

* add discriminator support to ruby client

* fix typo

* update samples, fix NPE

* better format in ruby generator

* fix test cases, disable mapping test

* fix update script, update samples

* add test, fix mapping

* update exit code

* reenabled discriminator test

* remove duplicated properties

* add test for duplicated properties

* update samples, add new spec

* fix ruby test cases

* fix hasMore after removing duplicates

* refactor method, comment out haskell client test

* fix hasMore and update samples

* fix parent detection

* fix discriminator check

* [haskell-http-client] need to use {{vars}}{{required}} instead of {{requiredVars}}

* remove deprecated methods in default codegen (#1031)

* regenerate samples

* remove commented code
2018-12-07 00:30:20 +08:00
Erik Timmers c0634ac213 [elm] Enable setting Http request trackers (#1609) 2018-12-06 23:41:44 +08:00
William Cheng 92d60b684a update samples 2018-12-06 18:58:21 +08:00
Jaumard d40cbf9dbd add default timeout to calls (#1596)
add properties to send or not null values
update deps
2018-12-06 18:34:01 +08:00
William Cheng d57009d14d Merge branch 'master' of https://github.com/OpenAPITools/openapi-generator 2018-12-06 17:22:19 +08:00
Atsushi Hanaoka ced6e0502e [typescript] Avoid strictNullChecks errors for apiKeys (#1611)
* [typescript] Avoid strictNullChecks errors for apiKeys

fix #1607

* Run ./bin/{LANG}-petstore.sh

- ./bin/typescript-angular-petstore-all.sh
- ./bin/typescript-inversify-petstore.sh

* Run ./bin/security/{LANG}-petstore.sh

- ./bin/security/typescript-angular.sh
- ./bin/security/typescript-angular2.sh
- ./bin/security/typescript-inversify.sh

* [typescript] Fix parameter name sanitization

* Fix invalid consumes of petstore-security-test.yaml

* Run ./bin/security/typescript-*.sh
2018-12-06 17:10:45 +08:00
William Cheng 314b4cc54f remove deprecated methods in default codegen (#1031) 2018-12-06 16:17:32 +08:00
William Cheng 21b2b20c2d Merge remote-tracking branch 'origin/4.0.x' 2018-12-06 12:21:14 +08:00
Prateek Malhotra 1e023f3b6e [Typescript][Fetch] Fix bugs with new typescript-fetch generator (#1545)
* [Typescript][Fetch] Always initialize queryParameters

* [Typescript][Fetch] Resolve date and date-time formats to parameter type Date

* [Typescript][Fetch] Update models template

- Add `readonly` modifier to readOnly parameters.
- Omit readOnly parameters from requests when serializing models
- Use allVars in models template when serializing/deserializing requests

* [Typescript][Fetch] Omit time component when parameter format: date

* [Typescript][Fetch] Add moduleResolution: node option to tsconfig.json

* [Typescript][Fetch] Added non-model enums
2018-12-06 12:20:34 +08:00
Hemant Zope df19c13347 [C] Resolve some issues from #1473 (#1497)
* change folder structure for external and added list as primitive type

* modified gitignore for C generator

* change include statement as per directory structure

* added projectname variable for using in cmakelists

* modified cmakefile:compile files irrespective of testfiles and add support for make install

* updated readme with how to compile and how to use

* CMakeLists change curl to 7.58.0

* fix indentation

* add remove as reserved word
2018-12-06 11:39:30 +08:00
William Cheng 32d228c33a Add GraphQL Server owner (renepardon) to the README (#1620) 2018-12-06 10:37:46 +08:00
William Cheng fcd37a6006 re-enable haskell client test (#1621) 2018-12-06 10:37:25 +08:00
William Cheng 4be605bcb7 GraphQL Server (#1603)
* Add GraphQL express/apollo server generator

* add basic resolvers; adjust parameters/input types

* small adjustments and improvements

* adjust logger config for GraphQL generators

* remove MaxPermSize form bash script as it will be removed from later Java versions; add isNullable utility helper method; Adjust TODOs for graphql implementation

* re-created samples for graphql config and server generators

* re-added templates for graphql config generator

* add graphql-config-petstore bash script

* add isNullable utility method

* fix javadoc issues

* adjust licence headers

* rename Generator to Codegen for GraphQL classes

* renaming, minor enhancement to graphql generator

* add graphql server samples

* add windows batch files, rename directory
2018-12-05 18:20:53 +08:00
William Cheng 01ac429954 fix TS version check (#1616) 2018-12-05 18:06:55 +08:00
Philipp Kainz 10ea00066a [typescript-angular] Angular 7 compatibility of dependencies and package generator (#1613)
* added Angular v7 compatibility version support

* fix logic error

* updated petstore samples

* fixed failing tests and added Angular 7 client test app
2018-12-05 15:15:51 +08:00
Mark Thebridge 4930f75dc7 Generic JSON body support in rust-server (#1523)
* Ensure that generic JSON bodies are correctly autogenerated

Generates valid Rust for an arbitrary JSON response body of type `object` with no other schema.
2018-12-04 16:51:59 +00:00
William Cheng 8795bff35e Merge remote-tracking branch 'origin/4.0.x' 2018-12-04 23:26:52 +08:00
Fabrizio Ferrai 6976a8c775 Upgrade haskell-servant generator to latest LTS (#1469)
* [Haskell Servant] Upgrade to lts-12

- Upgrade Servant to the latest version
- Add Maybe for optional values
- Add UUID, UTCTime and Day types
- Fix the URL configuration so that it has one param with all data
- Add Data and ToSchema instances to models
- Switch to TLS http manager so it can connect to https urls
- Add nicer API to call the endpoints
- Add Nix support

* [Haskell Servant] Upgrade Petstore

* [Haskell Servant] Delete old swagger-petstore samples

* [Haskell Servant] Use generics for ToForm and FromForm instances

* [Haskell Servant] Generate ToSchema instance only if it's safe to do
2018-12-04 19:03:08 +08:00
Rubén Martínez 110d057384 [csharp] Fixed issue #1524: useDateTimeOffset not working in openapi generator 3.3.3 (#1544)
* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.

* Fixed issue #1524 that caused the `useDateTimeOffset` additional property for the `csharp` generator not to work.
2018-12-04 18:59:15 +08:00
Erik Timmers d75392e056 [elm] Enable setting base path for each request (#1538) 2018-12-04 18:36:55 +08:00
Juan Eugenio Abadie e84c59f4cc [cpp rest-sdk] Add status code to response handler (#1541)
* Add status code parameter to the response handler

* Update PetStore
2018-12-04 18:35:39 +08:00
Kiran-Sivakumar 0a33ad465f [Java][okhttp-gson] Fix bug when performing OAuth token retry (#1576)
* Fix access token retry bug

* Update petstore samples

* Remove newline

* Import Pair and List in RetryingOAuth template

* Update petstore samples

* Update petstore samples
2018-12-04 18:33:10 +08:00
Denis Korenevskiy 8ee1553654 Replace <tt> tags with <code> to make new jacadoc work. (#1585)
Replace <tt> tags with <code> to make new javadoc work.
2018-12-04 18:16:23 +08:00
Christophe Bornet 001f89f1d9 Add tests to online generator (#1591) 2018-12-04 18:14:50 +08:00
William Cheng cd61442387 Improve checkout script on NPMJS wrapper (#1595)
* improve checkout on npmjs wrapper

* update readme
2018-12-04 11:14:14 +08:00
Rubén Martínez e3ab059530 [csharp] Fix #1531 with non-nullable enums on operation parameters not compiling (#1543)
* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.

* Fixed issue #1531. Now in C# operation parameters are post-processed to correctly mark them as enumerations. The api.mustache C# template now marks parameters as nullable when they're non-required enums.

* #1531 Added fix for enum, non-required parameters to the interface of the auto-generated C# Apis.

* Fixed error with the development of ticket #1531, which duplicated nullable question marks for primitive types.
2018-12-03 17:28:08 +08:00
William Cheng dfa7e616c0 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-12-01 19:18:27 +08:00
William Cheng 2353d71d4b skip stack, dark installation due to travis issue 2018-12-01 01:04:00 +08:00
William Cheng 2f4dc9a049 Prepare 3.3.4 release (#1583)
* update release version

* update doc for 3.3.4 release

* comment out stack installation due to error in travis
2018-12-01 01:00:06 +08:00
Christophe Bornet 54b5093381 Improve online gen resolution of host for the download link (#1580)
Fix #1517
2018-11-30 22:04:17 +08:00
William Cheng cf2ddb8b8c Fix header parameters display in the documentation (#1579)
* fix header parameters display in html

* fix cwiki header, remove test header parameter
2018-11-30 20:57:52 +08:00
William Cheng 8f8d3547f6 Update JS client dependency (#1578)
* update js dep

* fix missing comma

* remove unused test files in JS

* remove StringBooleanMap.spec.js

* remove StringBooleanMap.spec.js
2018-11-30 18:47:32 +08:00
William Cheng b226f52d13 Merge remote-tracking branch 'origin' into 4.0.x 2018-11-30 10:16:16 +08:00
William Cheng eae958f293 Add "b<>com" to the list of companies using OpenAPI Generator (#1573) 2018-11-30 09:22:01 +08:00
sunn 308515bbc1 [cpp-qt5] client response headers and validation of properties for client and server (#1508)
* Add validation of required properties
Add Header extraction for client
* Remove some todos
* Add Test for Store API
Improve some checks for serialization
2018-11-29 11:00:37 +01:00
Michael Ramstein 6930433def [elixir] Typespec - allow null on optional struct-attributes (#1514)
* Typespec - allow null on optional parameters

* Run Petstore for elixir

* considers 'nullable' in model template, fixes 'isRequired'
2018-11-29 15:58:32 +08:00
William Cheng c537557a91 comment out haskell client build in travis 2018-11-29 11:14:00 +08:00
Akihito Nakano f7c857cc39 [Spring] Add an option to return success code (#1197)
* Returns status code which defined at Response Object

* Tweak indent

Remove the spacer "{{#async}} ... {{/async}}" "{{^async}} ... {{/async}}"

* Update samples^

* Fix broken indentation

* Update samples

* Revert methodBody.mustache

* Revert "Fix broken indentation"
  * This reverts commit 95b6a00f8b.
* Revert "Tweak indent"
  * This reverts commit ba2cedc897.
* Revert "Returns status code which defined at Response Object"
  * This reverts commit f676a89e23.

* Example contains status code

* Update samples

./bin/spring-all-pestore.sh

* Fix syntax error

* Update samples

* Run bin/utils/ensure-up-to-date

* Make the changes an option `returnSuccessCode`

* Run bin/spring-all-pestore.sh to update samples

* Run ./bin/utils/export_docs_generators.sh
2018-11-29 11:51:25 +09:00
Simas Abramovas 777bf1f3aa Kotlin collection type (#1564)
* Allow specifying type

* Add test

* Update docs

* Don't modify types if the default option is chosen
2018-11-29 10:33:55 +08:00
William Cheng 41185d3c6f Merge branch 'master' of https://github.com/openapitools/openapi-generator 2018-11-28 22:33:54 +08:00
William Cheng 1d4e24b203 comment out c test due to timeout in travis 2018-11-28 22:17:42 +08:00
William Cheng c63f58f1ef [Elixir] fix ":body" handling (#1504)
* Fix swagger-api/swagger-codegen/issues/8138 swagger-api/swagger-codegen#8138

When JSON payload needs to be in the body (`"in": "body"`), it must not generate a multi-part body, but embed directly in HTTP body.

* update elixir samples

* update elixir client samples

* remove double quote
2018-11-28 21:35:50 +08:00
Kiran-Sivakumar 9df70798b3 [Java][okhttp-gson] Add option to employ builders for API requests (#1341)
* Generate APIs that use the builder pattern

* Add option to use builders for API requests

* Fix template spacing

* Add new sample-generation script and generated samples

* Update docs

* Add new sample-generation script for Windows

* Replace config option with vendor extension

* Remove useBuildersForApiRequests config option

* Remove builders sample-generation scripts

* Replace config option with vendor extension in api_test template

* Remove okhttp-gson-requestBuilders sample

* Rename x-builders-for-api-requests to x-group-parameters

* Add modified api_doc.mustache under okhttp-gson resources

* Add modified README.mustache under okhttp-gson resources

* Update petstore samples

* Fix FakeApiTest.java in petstore samples

* Add whitespace to rerun checks

* Remove whitespace to rerun tests

* Fix FakeApiTest.java in parcelable petstore sample

* Update versions in samples

* Update versions in samples
2018-11-28 17:53:36 +08:00
Akihito Nakano 3efe56752e Improve error message when the spec is not found (#1495)
* Improve error message when spec not found

* Add test yaml

* Fix invalid yaml file path

* Fix typo
2018-11-28 16:50:52 +08:00
rasmusfaber d8dde6855f Use checksum to decided if input spec has changed. (#1502) 2018-11-28 16:43:00 +08:00
meganemura ebf67e683c Fix regexp in ruby-client (#1521)
* Fix regexp in ruby-client

* Remove tests for unknown regexp patterns
2018-11-28 16:40:58 +08:00
feihongmeilian 5b4a19849e Upgrade the erlang-server dependency from cowboy1.x to cowboy2.x (#1364)
* Upgrade the erlang-server dependency from cowboy1.x to cowboy2.x

* Update erlang-server sample

* Fix a bug for erlang-server test
2018-11-28 11:50:08 +08:00
William Cheng 9b99b6b6bf better hanlding of string type with different format (#1558) 2018-11-28 11:21:54 +08:00
William Cheng 33016f2790 Update NPM installation instruction (#1556)
* Update NPM installation instruction

* further revise the doc
2018-11-28 00:27:35 +08:00
William Cheng 963173b357 Add link to conference presentation (#1554) 2018-11-27 23:59:23 +08:00
Michael Ramstein d31fa4f7c4 Typespec: Fixes issue with formated primitivs (#1534) 2018-11-27 21:34:54 +08:00
Michael Ramstein 247bd68880 Decodes list with primitvs (#1536) 2018-11-27 17:00:10 +08:00
Michael Ramstein 4eae430cca [elixir] Fixes BadMapError for header parameters (#1537)
* Adds :headers as expected param mapping

* Gen Petstore
2018-11-27 16:59:16 +08:00
William Cheng 51a3a22928 Add online services to the documentation (#1550)
* update online service

* update readme with online services

* minor wording change

* revise wordings

* add links to linode logo
2018-11-27 15:51:23 +08:00
Erik Timmers 172448fa28 Add support for UUIDs (#1516)
And fix naming for `decode` functions.
2018-11-27 13:47:06 +08:00
William Cheng 46a4ffe64c Skip model generation if it's a top-level map or array (#1296)
* update samples

* remove string boolean map spec

* add logic to skip array alias being generated as model

* fix alias to array

* remove unused ruby files

* remove unused ruby (oas3) files

* unalias response schema

* fix NPE when no model defined

* fix ruby openapi3 script

* update samples

* add global openapi, schemas for unaliasing

* minor code cleanup/refactoring using globalSchemas

* Revert "minor code cleanup/refactoring using globalSchemas"

This reverts commit 20a2bbc6fc.
2018-11-26 22:01:53 +08:00
Yuichi Okada ce0253892c [PHP client] Fix README.md template for php (#1540)
* Fix README.md template for php

* update php openapi3 samples
2018-11-26 13:41:27 +08:00
Akihito Nakano 34abedeb8a [PHP] Bump minimum required version to PHP7.1 (#1491)
* Bump minimum required version to PHP7.1

ref: http://php.net/supported-versions.php

* Bump phpunit

* Update [api|model]_test.mustache

* Update samples

bin/openapi3/php-petstore.sh

* Update namespace of PHPUnit ("tests" folder)

* `setExpectedException` is deleted in PHPUnit 7.4

* Update namespace of "Assert" class

* The attribute 'name' is required

* Add anotation to exclude the test from risky testcheck

* Update samples (samples/client/petstore/php)

* Apply updates to "test" in openapi2 folder (samples/client/petstore/php)

https://github.com/OpenAPITools/openapi-generator/pull/1491/commits/b3495ecbfe94401b10e914a686631671684041ff
https://github.com/OpenAPITools/openapi-generator/pull/1491/commits/15e00ae89d4e4ca4f21f421225cb691552bfef46
https://github.com/OpenAPITools/openapi-generator/pull/1491/commits/2fc6917d13ff44769b9535b34e27b3a3d511d489
https://github.com/OpenAPITools/openapi-generator/pull/1491/commits/0d016c00ed511aa2dd81dd4f575931274a47ad39

* Install php7.1

* Switch to php7

* Update samples (security)

bin/security/php-petstore.sh
2018-11-26 08:59:22 +07:00
William Cheng 2146081ffb update elm petstore samples 2018-11-24 19:12:22 +08:00
William Cheng 7db12aa4af Merge remote-tracking branch 'origin' into 4.0.x 2018-11-24 17:48:17 +08:00
William Cheng bf2932d41c fix array of enum class in JS (#1484) 2018-11-24 17:04:59 +08:00
William Cheng f8ada391c4 Fix boolean value handling in HTTP request body (#1515)
* fix boolean http body handling

* fix typo in parameter name
2018-11-24 16:42:32 +08:00
Christian Schneider 0ba9278308 #1506 Bump Zone.js to remove warnings when using angular >=6. (#1522)
* 1506 allow zonejs 0.7.x and 0.8.x to support a wider range of angular versions

* #1506 Removed zone.js as peer since it comes with angular itself

* #1506 Removed zone.js as peer since it comes with angular itself
2018-11-24 16:42:09 +08:00
Erik Timmers e91d6d735d [elm] Add support for nested Lists & Dicts (#1528)
And rename Union Types to Custom Types and Aliases to Records.
2018-11-23 16:03:07 +01:00
Erik Timmers 5f1362daad Update Elm for elm/http 2.0.0 (#1510) 2018-11-23 16:02:55 +01:00
Juan Eugenio Abadie dd33434064 [cpp rest-sdk] Reponse headers handler (#1511)
* Add support to set a Response headers handler
* Update PetStore
* Fix missing names
* Update PetStore
2018-11-23 11:38:40 +01:00
William Cheng cf04ba30db Fix the function name starting with numbers (#1513)
* update elixir samples

* fix function name starting with numbers

* add new files
2018-11-23 17:32:51 +08:00
William Cheng 5aa1da7c2e Add utility methods for free-form objects (isFreeFormObject) (#1338)
* add utility methods for models

* add isFreeFormObject tag

* add object mapping for elixir client

* minor fix to free form object check
2018-11-22 18:46:09 +08:00
Jon Schoning 9be5b99266 [haskell-http-client] fix typename generation bug for array params; update deps
- fix build for example-app + tests-integration in Samples (due to change in Category)

  - upgrade stack to 12.18

  - fix typename generation bug for array params
2018-11-20 18:38:07 -06:00
Alwin Garside 792f95eb09 [PHP] Use appDescription in composer.mustache (#1485)
* Use appDescription in composer.mustache

* Update petstore files

* More updated php petstore files

* Yet another updated php petstore file

* Use "{{{appDescription}}}" instead of "{{appDescription}}"
2018-11-20 10:30:14 +09:00
William Cheng 2b58f6737a fix typo in java client docstring (#1494) 2018-11-19 21:14:03 +08:00
William Cheng 363b095721 better warning, default value (#1492) 2018-11-19 20:55:29 +08:00
meganemura b9949e1a8e Generate a ruby-client sample for OpenAPI 2.0 (#1482)
* Move output directory for bin/openapi3/ruby-client-petstore.sh

$ git mv sample/client/petstore/ruby sample/openapi3/client/petstore/ruby-client

* $ bin/ruby-client-petstore.sh

* Run bin/ruby-client-petstore.sh in bin/utils/ensure-up-to-date
2018-11-19 17:02:19 +08:00
William Cheng f58bd6d839 fix NPE for scala gatling generator (#1479) 2018-11-19 11:06:16 +08:00
William Cheng 0e693cd9a8 Fix NPE with cpp-restsdk client generator (#1477)
* fix_cpprest_npe

* fix_code_format
2018-11-19 11:05:44 +08:00
William Cheng 65a86eee3b Merge remote-tracking branch 'origin/master' into 4.0.x 2018-11-18 18:54:29 +08:00
PLACE 334415dec2 Typescript fetch fork (#569)
* added my fork from https://github.com/Place1/swagger-codegen-typescript-browser

* ran bin/typescript-fetch-petstore-all.sh

* use FormData.append rather than .set for IE11 compat

* reverted change to licenseInfo.mustache

* reverted some comments

* added package.json and tsconfig.json back to the generator

* added support for blob (application/octet-stream) responses

* models and apis are now in folders

* added support for modelPropertyNaming based on the spec

* bug fix

* updated samples

* Restore pom.xml for typescript project

* Restore samples/client/petstore/typescript-fetch/tests/default/package.json
≈

* added support for response type Date conversion

* updated samples

* Rework pom in "samples.ci"

* Restore "samples/client/petstore/typescript-fetch/tests/default"

* updated configuration class to use property getters to allow clients to implement configuration values as getters

* added {{datatype}}ToJSON functions to handle serialization and naming conversions

* fixed missing import

* fixed compilation error. updated samples

* 1 character change to get CI to run again

* updated samples

* added support for array type request body

* updated tests

* support for optional request bodies

* updated models json converters to handle undefined inputs (to simplify usage in optional contexts like optional request bodies)

* updated samples

* updated tests

* changed to typescript version 2.4

* updated samples

* support for optional properties being null, undefined or omitted

* updated samples

* bug fix

* bug fix

* updated samples

* ran npm install in test project

* patch to get tests running

* added support for retrieving raw response. added support for binary request bodies. added support for blob data type for files/binary.
2018-11-18 13:24:24 +08:00
Ludovic Montel 7f8ff35245 fix #1272 Fix wrong PHP Symfony typehint (#1453)
A model with an array property used to have the wrong PHP typehint in
the setter: the array item object type instead of "array"
2018-11-18 12:38:44 +08:00
Arshad Kazmi 2c418e1b71 Fixed scripts list url in README.md (#1481) 2018-11-18 10:20:32 +09:00
William Cheng 941b3ea015 fix NPE in the C# Nancy generator (#1478) 2018-11-17 10:11:14 -05:00
William Cheng c656194f22 Add C template creator to project's README (#1476) 2018-11-17 18:42:40 +08:00
Steven Masala 5b57eae5de add TUI InfoTec GmbH as company (#1472) 2018-11-17 11:38:13 +08:00
William Cheng edc05df774 Add C client generator (#516)
* add c generator (1st commit)

* udpate c model template

* more fixes

* Add string replace function for C generator (#908)

* Add string replace function for C generator

* Fixed replacement for variable only

* Fixed problem for different datatypes of paramName

* store return value of modified path

* set str_replace variable to be same as original variable.

* [C] Fixed coding style issues

* add uncrustify support

* update petstore sampmles

* add Locale.ROOT

* added test-api-client.c to include test cases for strReplace function

* added header and body mustache and made changes to ClibcurlClientCodegen.java accordingly

* [C] renamed functions in apiKey.c.mustache according to apiKey.h.mustache

* [C] changes in import statement

* renamed apiKey.h to keyValuePair.h and made necessary changes in the codes

* changed apiKey.c according to keyValuePair.h

* fixed import statement in model

* added code for generating struct in model-header.mustache

* added typedef struct for model-headers

* updated sample/client/petstore/C

* fix locale

* [C] Function addition and modification of major structs (#1020)

* added readme file

* fixed parameters in api headers functions

* made changes to add readme file and typemapping of array to list

* fixed header import statement in apiheader files

* modified struct of model type in model header

* updated sample

* modified README file

* updated sample

* parse from json function added

* modified struct and create function

* added include for model

* modified parsefromjson function

* modified struct and create function for more datatypes

* added mapping for date-time and modified model import return statement

* modified function parameters

* modified include statement

* fix function in api body

* updated sample

* clean up files

* regenerate c petstore

* fix error message when setting uncrustify

* add version to uncrustify usage

* added uncrustify rules in  mustache (#1021)

* added uncrustify rules in  mustache

* updated sample

* updated same with crustify

* updated sample with uncrusitfy 0.67

* modified readme about uncrustify requirements

* fixed mistakes in readme mustache and sample readme

* fix file import, unformat c petstore

* fix import in test files

* fix model with complexType

* fix free string, format the code using uncrustify

* modified sample

* Modified sample to check

* return type issue figured,more to do to fix it

* minor fixes to make complete code compile

* Compiling sample code. Store has issue with map.

* comment out test file generation which is not req.

* commented operation name

* fixed various issues responsible for code not compiling

* test mustache temporary for testing

* updated sample add,del,getbyid works, formparam yet to do

* few minor changes and added fuction to add different header and content type in apiClient

* added code to upload image

* added function to test upload image

* fixes for fileupload and various other small things

* fixed issue due to xml produces

* updated sample:working sample add,del,find,uploading:tocheck ,

* added free functions for variable where memory is allocated

* rename imagecontainer struct to filestruct

* fix issues with if functions for all list types

* fixed issue with primitive return type in header file

* updated sample w/ free functions

* update c samples

* remove corrupted file

* update samples

* test cases for APIs

* added function to generate test cases from new mustache

* mustache files for manual written test cases

* added default content type to application/json

* fixed issue with primitive return type

* fixed issue with bool type

* added file apiKey.c

* updated sample tested

* update c environment variable (#1090)

* add mapping for map (#1103)

* minor update

* revert list paramter check to NULL

* modified return type for primitive(map - list_t)in mustache

* removed apiClient_free as it was two times

* updated sample

* fixed issue of path parameter when string less than parameter len

* fixed issue for form paramters upload

* added checks to avoid seg faults

* updated sample

* added check for null value in form parameter

* modified size of mallocs to dynamic

* updated sample

* Add C Petstore to Travis CI (#1136)

* setup CI for C petstore

* update bash script permission

* unit petapi test

* fixed memory leak in strReplace and apiClient Functions

* modified return value for status generation

* added enum defination and functions to convert and back from string

* added function for enum and made changes to free memory at necessary places

* added datatype handling for enum

* fixes regarding memory allocation and free

* updated mustache of test files

* updated sample

* renamed manually written test files

* manual test file for pet

* cleaned common api test file for time being

* renamed test files

* added renamed test files to build test bash

* added file null pointer check

* modified uncrusitfy rules

* minor update to c templates (#1161)

* [C] Fixed enum function declaration  (#1178)

* fixed enum function declaration in model headers

* fixed enum declaration in header files for sample

* disable curl verbose mode and add response code variable

* added response code variable in apiClient struct

* modified apiClient header and source file

* added response and removed commented code api-body mustache

* removed commented code from model-body mustache

* removed unnecessary print statements from test mustache

* updated sample

* fixed spaces issue

* Better format in C templates (#1224)

* better format in the c template

* minor format fix

* [C] changed base url from static to dynamic (#1225)

* changed basePath from static to dynamic

* removed unnecessary header declaration

* updated sample

* [C] added curl version check in CMakeList.txt (#1248)

* added curl version check in CMakeList.txt

* Updated README for latest curl version

* [C] Major changes to keyValuePair function (#1282)

* removed static declaration

* changed static declaration

* added difference for string and non string

* added more code for different function for string and non string

* fix issue with param name

* change value in keyPairValue to void

* fixed issue of difference in function name cases

* added support for non char parameters in api

* fix issue of map return data

* modified manual-StoreAPI map return data handling

* fix minor mistake

* added support for map and changed code to support value of keyvaluepair as char and other

* updated sample

* fixed api header declarations

* change map declaration in header

* resolved issues realted to map data handling

* fix minor issues

* add N at start if enum variable starts with number

* override toParamName method

* changed paramters to paramName from baseName

* change variables in apibody from baseName to paramName

* Skip test file generation (#1459)

* skip test file generation

* skip overwriting CMakeLists.txt
2018-11-17 01:32:18 +08:00
William Cheng 6ab6896a13 comment out dart2 test, update rust server samples (#1471) 2018-11-17 01:27:07 +08:00
Benjamin Gill 32b8d7fee7 [rust-server] Always derive Debug (#1404)
* Add test for file response

* Always derive Debug

Now that we're using a byte array, we can guarantee that deriving Debug will always work
2018-11-16 12:28:05 +00:00
Shengpeng Liu dc3a3dd15a Fix openapi_types generation error (#1256) 2018-11-15 21:38:45 +08:00
William Cheng 736e8348b6 update documentation for a generator 2018-11-15 18:32:12 +08:00
William Cheng 2bcf5b2263 Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-11-15 17:49:44 +08:00
William Cheng a87a544bf5 Merge remote-tracking branch 'origin/master' into 3.4.x 2018-11-15 17:11:01 +08:00
William Cheng 8d9542207a Prepare 3.3.4 snapshot (#1450)
* change version to 3.3.4-snapshot

* updat readme

* update samples
2018-11-15 16:21:15 +08:00
William Cheng 31d9928734 Revert "force deployment"
This reverts commit e5c0d227ab.
2018-11-15 12:25:14 +08:00
William Cheng e5c0d227ab force deployment 2018-11-15 11:39:14 +08:00
James Addyman 653601bef2 Fix #1424 [SWIFT4] Date Encoding Issues (#1442)
Ensure the same date format string is used throughout the generated code (use the one set in Configuration.swift).

Ensure the same date formatter options are used when encoding dates as well as decoding dates. If a consumer has set their own date formatter on CodableHelper, use that when encoding dates too.

Adds DateFormatTests to the SWIFT4 unit tests.

Updates the SWIFT4 petstore samples
2018-11-15 11:20:39 +09:00
William Cheng 7564d629e7 prepare 3.3.3 release (#1447) 2018-11-14 23:56:58 +08:00
William Cheng f647b2f24b Add file post-processing to C++ client, server generators (#1440)
* add file post processing to cpp generators

* use clang to auto format cpp-restsdk code

* restore cpp-restsdk samples without clang format
2018-11-14 16:43:14 +08:00
William Cheng 0165b0fb33 test all generators with fake petstore spec 2.0, 3.0 (#1439) 2018-11-14 15:55:09 +08:00
Jim Schubert df1819daa9 C# template refactor (#737)
* [csharp] Refactor to support third-party customization more easily

* [csharp] Regenerate OpenAPIClient sample

* create new csharp-refactor client gen

* update samples

* fix Locale.ROOT

* fix import

* remove outdated files, update samples
2018-11-14 14:41:42 +08:00
William Cheng 3c28946f1e [Android] Fix compilation errors when there's no model defined (#1438)
* remove model import when there is no model

* fix android http client no model issu due to import
2018-11-14 14:02:05 +08:00
TNM Technologies 22902e72a1 fix(#1423): [JAVA] generating Map with jaxrs-reasteasy does not import (#1426)
* fix(#1423): [JAVA] generating Map with jaxrs-reasteasy does not import
the hashmap

https://github.com/OpenAPITools/openapi-generator/issues/1423

* fix(#1423): fix ensure-up-to-date issues for jaxrs-resteasy joda
samples

https://github.com/OpenAPITools/openapi-generator/issues/1423
2018-11-14 10:18:53 +08:00
William Cheng efde4a8eb8 Fix issue with C# generator when the model name is "File" (#1428)
* fix get schema type in abstract c# class

* update c# petstore sample
2018-11-14 09:43:31 +08:00
Akihito Nakano c8837ea414 Change entrypoint to docker-entrypoint.sh (#1413)
Run entrypoint script
2018-11-13 17:24:04 +09:00
William Cheng 7c3a2a5c07 Fix run-in-docker by disabling useSystemClassLoader (#1418)
* test run-in-docker in travis

* fix command path

* correct batch mode arg

* disable useSystemClassLoader
2018-11-12 22:07:46 +08:00
William Cheng 7e3149e675 fix npe when paramName is null (#1416) 2018-11-12 22:06:58 +08:00
meganemura 9db62f459a Fix return_type parameter examples in ruby-client (#1399)
* Fix return_type parameter examples

* $ bin/openapi3/ruby-client-petstore.sh
2018-11-12 14:26:05 +08:00
William Cheng c7349c7f88 Add top level x-group-parameters support (#1405)
* add top level x-group-parameters support

* update petstore samples
2018-11-12 14:25:32 +08:00
William Cheng 69a766882d Add tip about running online openapi-generator via Docker (#1415)
Add tip about running online openapi-generator via Docker
2018-11-12 11:37:30 +08:00
William Cheng 7ce38aae38 Remove duplicated imports (#1414)
* remove duplicated imports

* fix model import in java

* update generator docs

* fix model import for retrofit2 client
2018-11-11 21:33:28 +08:00
sunn fd46b4e566 Sanitize Model Import (#1411) 2018-11-10 21:07:49 +01:00
James Addyman 5711985ac3 Fix swift4 1406 (#1407)
* Fix warnings produced when using Swift 4.2

* Update Petstore client for Swift 4
2018-11-10 13:59:58 +09:00
William Cheng 7c6beb9692 update generator doc 2018-11-10 00:28:08 +08:00
sunn 8ba4b3a276 Sanitize names in case number is present (#1409) 2018-11-09 16:53:30 +01:00
Simas Abramovas f802e63f9f Add parcelizeModels cli option (#1289)
* Add parcelizeModels cli option

* Add info log to clarify the parcelization requirements.

* Update docs
2018-11-09 23:51:27 +08:00
sunn 0ed02c8e91 Fixes double prefixing during model import (#1398) 2018-11-09 16:49:47 +01:00
Eivind Bergstøl 93e2fc6355 Fixes an issue where code generator for Java produces not compileable (#1357)
code if the yml-definition does not have any type definitions. This
is normal if the api only uses simple datatypes (Int, String) for
inout/output.
2018-11-09 23:48:26 +08:00
William Cheng 60bc19e830 Add file post-processing to PHP generators (#1402)
* add file post processing to php

* restore php petstore client
2018-11-09 23:45:21 +08:00
William Cheng d59230fd27 change python pool_thread default to 1 (#1403) 2018-11-09 23:44:47 +08:00
Benjamin Gill 4742f0086b [rust-server] Re-instate ApiRequestParser (#1388)
* Re-instate ApiRequestParser

It turns out I was over-eager when removing file support and accidentally deleted some code that should have been kept. See https://github.com/OpenAPITools/openapi-generator/pull/547/files#diff-684007b298ee5998fa30732c261ea2fcL469.

* Don't do html escaping of parameters
2018-11-09 11:23:59 +00:00
William Cheng 1522855915 update python petstore samples 2018-11-08 21:47:16 +08:00
sunn 75b1403c1e [cpp-qt5] improvements for server and client (#1284)
- Remove pointer usage in generated models
- Use const reference wherever possible
- Reuse same super class for Qt5 client and server
- Support primitive return types for Qt5 client
- Add const reference to API calls
2018-11-08 14:18:57 +01:00
William Cheng a023a0d0ca update petstore samples 2018-11-08 18:32:48 +08:00
William Cheng e6c97a1bc1 Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-11-08 18:18:12 +08:00
William Cheng a186efed35 Merge remote-tracking branch 'origin/master' into 3.4.x 2018-11-08 18:17:29 +08:00
William Cheng 3969afb2ff Add file post-processing to Kotlin generators (#1400)
* add post processing to kotlin file

* restore kotlin samples
2018-11-08 17:40:39 +08:00
William Cheng 2ef499faf3 [python] Avoid creating unused ThreadPools (#1387)
* Avoid creating unused ThreadPools

Instead, create ApiClient.pool on first request for .pool property.

avoids spawning n-cpus threads (the default for ThreadPool) at instantiation of every ApiClient

* update doc

* set pool_thread to None
2018-11-08 17:39:20 +08:00
William Cheng 34945427d4 fix java exception in apex codegen (#1395) 2018-11-07 22:32:22 +08:00
Benjamin Gill 5849dbaaca Add tests for inline objects (#1331)
I think these tests cover all the problems with rust-server and inline objects I know about. This should show us when we've fixed the problem.

Also fixes a CI failure.
2018-11-07 11:07:53 +00:00
Steven Masala 73162cbcca fix name sanitation when using kebab case filenaming (#1314)
* fix name sanitation when using kebab case filenaming

* remove whitespaces
2018-11-07 15:52:51 +08:00
Guy Gershoni 0e2e1bf715 Added tests and fix for issue #1392. Fix regex generated in Ruby client. (#1393)
* Added tests and fix for issue #1392. Param validation with regex not recognizing \d correctly in Ruby client.

* Added generated files to pass ./bin/utils/ensure-up-to-date which is run by circleci
2018-11-07 12:08:23 +08:00
William Cheng f21640f6a1 update spring samples 2018-11-07 11:46:17 +08:00
Konstantin Pavlov 301208a785 JavaSpring: pojo: fix javadoc comment (#1384) 2018-11-07 11:26:56 +08:00
William Cheng 4245cf42dd update generator doc 2018-11-07 01:02:44 +08:00
Christophe Bornet 2184a8a9b4 [Flask] Upgrade to flask-connexion 2.0.0 (#1382)
Fix #323
2018-11-06 18:37:50 +08:00
Benjamin Gill 30bfebfa16 Rust server html (#1329)
Builds on #1180 by @colelawrence. This addition to the rust-server generator enables the use of text/html responses as plaintext.

I've added an html endpoint to the sample to demonstrate that this works (and fixed the problem that that uncovered).
2018-11-05 16:14:23 +00:00
Martin Fidczuk 303b469fae Allow package version to be passed on CLI (Rust fix) (#1286)
This MR allows package version to be specified in Rust in the generate argument list, with the argument `-DpackageVersion=<package_version>`. If this argument is present then the version in the resulting Cargo.toml file will be the passed value. If this argument is not present then the version in the OpenAPI definition file will be used, as per current behavior.
2018-11-05 16:12:43 +00:00
William Cheng c95b1f4545 fix incorrect patternin aspnetcore (#1371) 2018-11-05 10:21:55 +08:00
William Cheng fbc3ff8766 Add a link to an article about openapi-generator (#1370) 2018-11-05 08:17:22 +08:00
Nathan Broadbent 63b1c233c9 Fix issue with Ruby client where strings from example properties are not wrapped with quotes (#987) 2018-11-04 17:10:35 +08:00
andreas-eternach eb5a8cc752 feat: OpenApi-generation from within eclipse (#509) (#1332)
* feat: OpenApi-generation from within eclipse (#509)

* Added life-cycle-mapping for recognition by M2E
* Make BuildContext injectable by M2E in oder to detect if json-source
has been modified and a regeneration is required.

* core: fix indentation problems, remove commented code
2018-11-04 17:07:33 +08:00
Benoît Courtine 293d29ab3b Fixes bug #1339. Array and Map inner schema can be missing. In this case, it must default to String. (#1363) 2018-11-03 22:19:19 +08:00
Kiran-Sivakumar 078b04deac [Java][okhttp-gson] Add new ApiClient constructors for access token retry (#1319)
* Add new ApiClient constructors for access token retry

* Update samples

* Update security samples
2018-11-03 22:10:16 +08:00
Kay Schecker 7eb9cda1e0 Added hint for npm package wrapper to README (#1350)
* Added hint for npm package wrapper to README

* Added manual how to use and install NPM package globally
2018-11-03 22:06:11 +08:00
Vasili Puchko ac6fd3f79f Update gradle plugin's Readme.md (#1356)
Add a note about use of `systemProperties` since some options are confusing and hard to guess how to use correctly. The only source I was able to find how to configure it in the way I need was a comment to issue https://github.com/OpenAPITools/openapi-generator/issues/551#issuecomment-411686091
2018-11-03 21:58:43 +08:00
sunn f8f3a08282 [cpp-pistache]Add support for map (#1359)
* Add support for map
* Add support for nested maps
* Simplify Array and Map Helper
* Use const reference wherever possible
2018-11-03 14:09:31 +01:00
William Cheng 36991a4e14 Improve ensure-up-to-date script (#1362)
* improve ensure-up-to-date script

* trigger build failure

* use exit 1 instead

* fix build failure

* update samples
2018-11-02 15:38:34 +08:00
Juan Eugenio Abadie ecff8b5d00 [cpp rest-sdk]Fix precision (#1293)
* Convert floating point numbers to string with higher precision
* Update PetStore
2018-11-01 20:25:38 +01:00
Ysawa 521f5fafa3 Fix defaultValue for String schama in Dart (#1342) 2018-11-01 17:50:01 +08:00
William Cheng 02e85cc417 Prepare v3.3.3-SNAPSHOT (#1355)
* prepare 3.3.3-snapshot

* update petstore samples
2018-11-01 10:42:26 +08:00
William Cheng 0cc9b69b6f 3.3.2 release (#1353)
* prepare 3.3.2 release

* update script to remove outdated reference
2018-10-31 20:48:14 +08:00
Dennis Kieselhorst 30474c7867 update CXF and Jackson to latest version (#1343) 2018-10-31 16:45:51 +08:00
William Cheng d06ddfbcaa various update in readme (#1351) 2018-10-31 16:35:39 +08:00
William Cheng 165c0f2310 update erlang technical committee, template creator (#1344) 2018-10-31 00:09:30 +08:00
William Cheng aced89ff8b Add group parameter support to PHP client (#1337)
* add group parameter support to php template

* more update for group parameter

* fix call to protect function

* fix missing $

* update based on feedback

* create fake endpoint to test group parameters

* sync fake petstore spec v2, v3

* fix php doc for group parameters

* update petstore samples

* update fake petstore spec v2

* update petstore samples

* fix spec and update samples
2018-10-29 15:42:32 +08:00
Juan Eugenio Abadie d80f3a6197 [cpp rest-sdk] Constness (#1295)
* Improve method signatures to use const when the value won't change

* Update PetStore

* Change setters for non-primitive types to receive const reference parameters

* Update PetStore
2018-10-28 08:01:52 +01:00
micw523 107467497c Fix W605 Warning and reenable flake8 (#1334) 2018-10-28 11:16:54 +08:00
Adam Shannon d61a14cab9 fix maven repo for openapi-generator-cli (#1333) 2018-10-28 11:16:08 +08:00
William Cheng d7d5e712e2 test jdk10, fix javadoc issue (#1335) 2018-10-27 18:54:16 +08:00
Juan Facorro fc0a0d2cda Generator erlang-proper (#1102)
* Generator erlang-proper

Used to generate PropEr generators for property-based testing

* Fix binary/2 implementation. Add behaviour attribute.

* Remove line from copyright notice

* Avoid escpaing HTML and remove suffix from variable name

* Update samples

* Include querystring parameters

* We use export_all, don't consider warnings as errors

* List command sequence on failure

* Use hasConsumes instead

* Add nowarn_export_all, re-add warning_as_errors
2018-10-27 16:54:35 +08:00
Dennis Kieselhorst a6b0a8b4b7 removed unused import to fix build (#1326) 2018-10-27 15:01:59 +08:00
topce 0a45890709 Fix angular 7 compile problem (#1297)
* fix wrong formParams type

* run typescript-angular-petstore-all.bat

* more typesafe fix

* fix formatting

* run typescript-angular-petstore-all.bat

* fix compile  problem with previous versions of angular

* generate code

* fix compile problem add <any>

* try Johannes Hoppe solution

* generate files
2018-10-27 14:27:52 +08:00
William Cheng ceffdde2c0 update samples 2018-10-26 23:27:06 +08:00
William Cheng 71ecee02e9 Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-10-26 23:13:28 +08:00
William Cheng ed2f6ea72e Merge branch '3.4.x' of https://github.com/openapitools/openapi-generator into 3.4.x 2018-10-26 22:30:19 +08:00
William Cheng ef98971746 update samples 2018-10-26 21:43:38 +08:00
William Cheng 3482a0a993 Merge remote-tracking branch 'origin/master' into 3.4.x 2018-10-26 21:04:25 +08:00
William Cheng 6b41260755 update documentation 2018-10-26 21:03:17 +08:00
William Cheng 4a47acce19 Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-10-26 18:41:58 +08:00
William Cheng 9422dea149 Merge remote-tracking branch 'origin/master' into 3.4.x 2018-10-26 18:40:37 +08:00
William Cheng 3b53ac435f fix duplicate call in JS (#1270) 2018-10-26 18:28:37 +08:00
Erik Timmers 1b115bb4f7 [elm] Add flag to prefix custom type variants (#1288) 2018-10-26 18:20:36 +08:00
Yuriy Belenko 30062afc7c [Slim] Migration to PHP7 (#1263)
* [Slim] Add PHP 7.0 to requirements

* [Slim] Migrate to PHPUnit 6

* [Slim] Update user guide

* [Slim] Refresh samples
2018-10-26 18:15:41 +08:00
John Wang ed8433a849 [Golang][client] fix response decode error handling (#1291)
* handle and return API response decode error

* ensure-up-to-date

* refactor go/api.mustache for easier readability

* disable error reporting for TestPlaceOrder with invalid RFC 3339 `+0000` UTC offset present in Petstore test server
2018-10-26 18:10:59 +08:00
Benoît Courtine f4eb96933a [Rust] Client library choice between hyper and reqwest (#1258)
* Port of PR https://github.com/swagger-api/swagger-codegen/pull/8804.

* Correction of conflict with PR #528 (missing template file).

* Add rust-reqwest samples to Circle CI tests.

* Add integration test pom.xml file with launcher to trigger cargo execution.

* Deduplicate Maven project name.

* Fix "api_key" header for Petstore.

* Better API key management.

* Fix query param for lists of objects other than strings (numbers, etc.).

* Update to reqwest 0.9, and refactor of header management (using reqwest transition feature).

* Merge scripts generating rust-hyper and rust-reqwest samples.

* Consistent full stops.

* Use raw variables in all Rust mustache templates.

* Replace production build in CI with a quick simple check.

* Update samples.

* Finish Reqwest 0.9 migration (removing "hyper 0.11" transition feature).

* Configuration implements Default trait.

* API template reorganized: HashMap is not required anymore.

* Revert "Merge scripts generating rust-hyper and rust-reqwest samples."

This reverts commit 970f996566.

* Remove deprecated "-XX:MaxPermSize" java arg.
2018-10-26 10:24:14 +01:00
William Cheng eb4dfe0fc1 update documentation 2018-10-25 12:29:54 +08:00
Fabrizio Ferrai bbfaa90242 [Clojure] Fix tests: stop dashizing props names (#1310)
* [Clojure] Fix tests: stop dashizing props names

* [Clojure] Remove jdk7 tests
2018-10-25 12:19:52 +08:00
Yuen-Kuei Hsueh d4a5cd05cc [Java][Spring] Add bean vaildation for email datatype (#1115) 2018-10-25 11:50:12 +08:00
William Cheng 196f1228e5 update python samples and comment out flake test (#1308) 2018-10-24 21:02:23 +08:00
feihongmeilian 24ea88495b For erlang-server. add two options: packageName and openAPISpecName (#1303)
* Implement the ability to read packageName and openAPISpecName from a json file

* Replace '{{openAPISpecName}}' with '{{{openAPISpecName}}}'

* Update erlang-petstore-server
2018-10-24 16:29:53 +08:00
William Cheng 76aedca6b2 Update test spec to use "localhost" instead (#1300)
* update test spec to use localhost intead

* add new files
2018-10-24 13:56:39 +08:00
William Cheng 3d7a019524 update samples and reenable ensure-up-to-date (#1304) 2018-10-24 13:56:24 +08:00
Nate Jensen b36b4611de fix #1276 by adding colon (#1301) 2018-10-24 11:50:17 +08:00
Thibault Duperron 0aec7728f9 [Java][jaxrs-resteasy] add @Valid when bean validation is enabled (#1237) 2018-10-23 23:58:03 +08:00
mwoodland 258de8909d Add support for using Spring HATEOAS to add links in the spring gener… (#1130)
* Add support for using Spring HATEOAS to add links in the spring generator.

* Ensure that Spring HATEOAS links appear last in the JSON serialisation of objects.

* A couple of changes following code review:
1. Make sure the @JsonPropertyOrder annotation is only used when the jackson library is being used since it's a part of the jackson library.
2. Make sure to include the Spring HATEOAS dependency in the pom file for the spring-cloud and spring-mvc generators when the hateoas option is enabled.

* Don't order the json properties since there's no requirement for the links to be last.

* Remove unnecessary import.
2018-10-23 22:56:03 +08:00
William Cheng 4a0bc8f177 Merge branch 'Rizzen-ctor-without-parameters' 2018-10-23 21:50:43 +08:00
William Cheng 1418860c3a Merge branch 'ctor-without-parameters' of https://github.com/Rizzen/openapi-generator into Rizzen-ctor-without-parameters 2018-10-23 21:12:03 +08:00
William Cheng 8455dfe75d update petstore samples 2018-10-23 18:21:25 +08:00
William Cheng 0001682a08 Add file post-processing support for Java generators (#1052)
* add clang format support for java

* rename java env variable

* fix export command
2018-10-23 16:59:32 +08:00
Erik Timmers e782001eb9 [elm] Add support for additionalProperties (#1262)
Fixes #1140.
2018-10-23 16:58:33 +08:00
john lilley e06665f368 Set isModel property (#1275)
* Set isModel property

* Replace tab characters
2018-10-23 16:52:36 +08:00
Dec12 | Fujigon bb056ccf3d [General] fix InlineModelResolver's logic and use openapi-generator's InlineModelResolver, so that nested "required" works correctly (#1200)
* fix InlineModelResolver's logis and use openapi-generator's InlineModelResolver, so that nested "required" works correctly

* add "required" to nested model schema

* update ensure-up-to-date to include openapi v3's jaxrs

* change test required field

* fix sample shell script, hide timestamp

* fix NPE

* move test case to petstore-with-fake-endpoints-models-for-testing.yaml

* fix jaxrs-jersey (oas3) example generate shell script to use petstore-with-fake-endpoints-models-for-testing.yaml

* add default value

* re-generate samples
2018-10-23 16:51:55 +08:00
Sebastian Rühl 51d2e4bd4c [TypeScript] typescript-axios: Added possibility to add custom axios instance. (#1274)
* typescript-axios: Added possibility to add custom axios instance.
This comes in handy if you want to use mocks in tests.

* typescript-axios: aligned to fetch API for custom instance
2018-10-23 16:42:10 +08:00
William Cheng 111a3626b2 update scala akka dependencies (#1294) 2018-10-23 16:34:27 +08:00
William Cheng 8507916d56 Update migrated generators in the migration guide (#1283) 2018-10-22 22:11:50 +08:00
William Cheng a55533c178 Add "servers" support to Ruby API client (#1280)
* update ruby samples with OAS3 spec

* add server support to ruby api client

* minor format change

* minor format fix, skip form models

* better exception and add test for invaid value

* remove exception test code
2018-10-22 12:52:52 +08:00
raghuraman1 2b88a1d26f Boolean conversion for maven plugin (#1252)
* saving the fixes.
Used commons-configuration2 for
org.apache.commons.configuration2.PropertiesConfiguration.
It makes the configuration easier to read amongst other benefits

* removing tabs

* updating and simplifying based on sugegstion from William. This should
now fix across all generators

* upgraded pom

* added some javadocs for the new method
2018-10-21 22:24:17 +08:00
moreginger 33a1ac4397 Don't generate unused ApiException class for java/webclient. (#1165) 2018-10-21 22:01:47 +08:00
William Cheng f1d4ae230e Remove outdated comment (#1268) 2018-10-21 21:39:26 +08:00
sunn 0853b2d31d Add ref support inside fromProperty (#1235) 2018-10-20 13:52:46 +02:00
sunn e32b70d579 Allow all apis under a single endpoint to be hosted in one server (#1230) 2018-10-20 13:50:09 +02:00
Akihito Nakano 27fd224828 [CLI] Fix help command (#1279)
* Bump up airline

* Since airline 0.8, "ParserUtil.createInstance" requires CommandFactory
2018-10-20 15:06:55 +08:00
William Cheng 0326558f9a update spring core version (#1265) 2018-10-19 00:21:40 +08:00
William Cheng 147e193b31 minor doc revision (#1242) 2018-10-18 22:53:47 +08:00
Jérémie Bresson 16f1fc0739 Consider callbacks in unused schemas (#1232) 2018-10-18 14:58:28 +02:00
William Cheng c1afba7194 Fix jackson-databind security issue (#1259)
* fix jackson databind security issue

* fix java jersey 1 dependency

* fix java webclient dep
2018-10-18 16:29:38 +08:00
William Cheng dcde12ac07 Add "tomplus" to Python technical committee (#1264) 2018-10-18 11:29:52 +08:00
tca-ms eccab2c025 Better context errors (#1198)
Update to version 2 of the `swagger` crate, which contains changes intended to make it easier to debug errors involving middleware and contexts. Crates making use of the autogenerated libraries to also update their swagger dependency to version 2. See [here](https://github.com/Metaswitch/swagger-rs/blob/2.0.0/CHANGELOG.md) for details.
2018-10-17 17:14:43 +01:00
William Cheng 40e90b5883 Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-10-17 00:06:12 +08:00
William Cheng a3dc5ecc20 Merge remote-tracking branch 'origin/master' into 3.4.x 2018-10-17 00:05:47 +08:00
William Cheng 649d5a97b4 remove unused pom for circleci 2018-10-16 23:53:06 +08:00
William Cheng 83c55ec016 Merge remote-tracking branch 'origin/3.3.x' into 4.0.x 2018-10-16 23:42:29 +08:00
William Cheng d8957af76b Update generator option (#1236)
* update generator option

* update kotlin option usage

* update lua option

* update wording for lua option
2018-10-16 23:05:14 +08:00
William Cheng ebc2700a92 update gradle download link (#1254) 2018-10-16 23:04:50 +08:00
William Cheng e42cac636a update clojure petstore samples 2018-10-16 18:06:05 +08:00
William Cheng cfbc72f444 Merge branch '4.0.x' of https://github.com/openapitools/openapi-generator into 4.0.x 2018-10-16 16:16:28 +08:00
William Cheng 9e3c7781bb Merge remote-tracking branch 'origin/3.4.x' into 4.0.x 2018-10-16 16:08:11 +08:00
William Cheng 257a97b6cd update petstore samples 2018-10-16 13:19:40 +08:00
William Cheng ffd72767af Prepare 3.3.2 snapshot version (#1249)
* release_version_update

* update readme

* restore felix version

* update petstore samples
2018-10-16 10:53:12 +08:00
William Cheng 0136aeefbc Prepare 3.3.1 patch release (#1247)
* release_version_update

* comment out ensure up to date

* release_version_update_docs

* update release table
2018-10-15 23:18:24 +08:00
William Cheng 0b6e63b427 add file post processing to csharp generator (#1238) 2018-10-15 15:25:19 +08:00
Jim Schubert 6817b4348f [cli] config-help writes doc-compat output (#1239)
This updates config-help to have more control over how the output is
written for the user. We dump config-help output for per-generator
documentation, and this cleans up some cross-platform compatibility
issues that might arise from tweaking the output for clarity in the
target file.

Previously, we'd pipe config-help output to sed, then insert the
generator name, which we then redirected to an output file. The sed
syntax had to include a trailing newline so our tabbed configs would
automatically become code tags in markdown. Inserting newlines into sed
replacement strings doesn't work the same across platforms, mostly
because of Apple's customizations to GNU programs.

This commit moves the generator name and newline insertion into the
command itself. It also includes a new --output option, allowing the
user to specify the output location of the config-help.

Currently, we only dump in plain-text, and it is only coincidental that
our plaintext output results in a desirable Markdown output. If
tabbed lines did not automatically convert to a code style block, some
generators like C# would end up with broken text (`List<T>` would become
just `List`, for example).

I had previously discussed extending config-help to output to other
formats like asciidoc. This commit does not introduce any steps toward
that end.
2018-10-15 15:21:13 +08:00
William Cheng df98126354 Add an option to enable file post-processing (#1241)
* add option to enable post process file

* fix typo
2018-10-15 15:02:51 +08:00
Rubén Martínez ded765bcb9 [C#] Fixed issue #1126 with invalid generation of C# children models in allOf clauses (#1127)
* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.

* Fixed issue #1126. DefaultCodegen now sets the hasChildren property of CodegenModel when children models are added to the model. Changed the modelGeneric.mustache template to decide whether to include a base validation model (for children to inherit) based on the hasChildren property, and not the discriminator property.

* Run the ./bin/utils/ensure-up-to-date script after fixing the issue #1126

* Reverted modification in go samples, performed by ./bin/utils/ensure-up-to-date, that are failing in CI.

This partially reverts commit 2168df0f82.
2018-10-15 13:13:05 +08:00
Dec12 | Fujigon 12a702ee07 fix gradle build error on java9+ (#1240) 2018-10-15 11:09:38 +08:00
Dec12 | Fujigon fbd4411b22 fix export_generator shell script (#1223)
* fix export_generator shell script

* fix script with bash

* use bash instead of sh
2018-10-14 21:11:59 +08:00
Christophe Bornet 34409bc0d8 Update spring-cloud generator to use openfeign (#1191) 2018-10-14 12:23:50 +08:00
Marcus Weaver 8909641667 Ctor without parameters 2018-10-13 23:26:44 +03:00
Nico König 9c736731f2 fix: fix return type for api interface (#1218) 2018-10-12 17:48:06 +08:00
Tomasz Prus 71aa421179 fix: python/asyncio no-ssl-verify affects verification of server certs only (#1211)
Bug fix: python/asyncio no-ssl-verify affects verification of server certs
2018-10-12 17:05:01 +08:00
William Cheng 11b7fb4f7b rename JS environment variable (#1214) 2018-10-12 17:03:50 +08:00
Andrew ccf9611ad7 Add x-go-custom-tag to go-server generator (#1146)
* Add x-go-custom-tag to go-server generator

* update model templates to include x-go-custom-tag
2018-10-12 17:00:02 +08:00
William Cheng dd8dd48a62 Revert "Various improvements (#1213)" (#1220)
This reverts commit 448680e764.
2018-10-11 20:11:51 +08:00
William Cheng 448680e764 Various improvements (#1213)
* update readme

* fix logger warning
2018-10-11 15:41:00 +08:00
William Cheng 32c1d9eea4 Verify updatePetWithForm in Go client (#1212)
* verify updatePetWithForm in go client

* update wording
2018-10-11 15:40:43 +08:00
Rubén Martínez 529a638d11 [C#] Fix issue #1088 with generation of enum classes referenced from other objects (#1089)
* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.

* Fixed the #1088 issue by removing the update of enumeration properties while processing objects that reference them. Launched the ./bin/csharp-petstore-all.sh script.
2018-10-10 21:38:48 -04:00
Matthias Ramsauer 6acf45a108 x-www-form-urlencoded-body-fix (#1187)
* [go] x-www-form-urlencoded-body-fix

* [go] run scripts in bin and bin/security
2018-10-10 12:24:15 +08:00
Akihito Nakano 68a8f2976c [Spring] Fix character conversion error (#1195)
* Fix character conversion error

ref https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html
> To send character data, use the PrintWriter object returned by getWriter()

* Update samples

* Update spring-stubs
2018-10-09 18:29:58 +09:00
osharav 1a61456f71 Re-enabling typescript node test (#1190)
Explicitly adding node.js 8 type definitions before ClientResponse interface was removed due to deprecation.
2018-10-09 17:14:36 +08:00
William Cheng 56c4751e74 Add JDK 9 support (#1188)
* update jmockit version

* list jvm

* test jdk9 in appveyor

* use latest version of gradle

* update to jdk9

* use openjdk9

* use default java version in appveyor

* use jdk8 docker image

* consolidate bash, ios pom into parent pom

* consolidate circlecii pom into parent pom

* remove circleci pom.xml
2018-10-09 10:25:28 +08:00
mwoodland 8c0e130481 Allow specifying/overriding the parent in the pom file for Java and S… (#1132)
* Allow specifying/overriding the parent in the pom file for Java and Spring generators.

* Don't add extra whitespace to the pom file when the parent isn't overridden.

* Remove accidentally added white space.
2018-10-09 08:34:29 +08:00
Christophe Bornet 5ac33a49f1 [Flask] Upgrade to flask connexion 2.0.0rc3 (#1192) 2018-10-09 07:44:27 +08:00
William Cheng 22049db8c1 fix enum value, update dart petstore samples (#1193) 2018-10-09 07:08:04 +08:00
Kiran-Sivakumar 7d58f308d9 [Java][okhttp-gson] Fix bug when specifying grant-type (flow) for OAuth token retry (#1183)
* Fix bug when specifying grant-type for OAuth token retry

* Update samples

* Update security samples
2018-10-08 17:39:10 +08:00
stkrwork 52a112d90f [C++][Restbed] Fix default value for Restbed (#1186)
* Start working on fixing default value in Restbed Server Api Template

* fix default value in DefaultCodegen

* Revert "fix default value in DefaultCodegen"

This reverts commit ce690069d2.

* fix default value in cpprest

* update cpp restbed samples
2018-10-08 01:54:06 +08:00
William Cheng e85c527f33 Update maven plugin version (#1184)
* update plugin version

* update version in CI pom

* use maven 3.2.5
2018-10-07 11:41:31 +08:00
William Cheng 999f472e4b Refactor default and example values in Java generators (#1045)
* fix default, example for java okhttp

* update java feign samples

* update samples, doc

* add new doc for dart-jaguar

* update model template

* update jaxrs spec model

* update resteasy sample

* update java samples
2018-10-07 03:56:16 +08:00
Akihito Nakano a1d242595e Improve "allOf" support (#1169)
* Add test case which reproduces issue340

* Take the first $ref we find in the allOf-List
2018-10-05 23:28:35 +08:00
William Cheng aa31e42ce7 improve go code format without gofmt (#1173) 2018-10-05 23:27:33 +08:00
raghuraman1 b0dfcf29b3 JAVA Spring <async>false</async> Pushing the improved fix (#1179)
* Pushing the improved fix

* reverting the unrelated change

* saving the revertal properly
2018-10-05 21:56:22 +08:00
mknoszlig 9939702f31 update outdated Vagrantfile. (#1156) 2018-10-05 12:45:59 +08:00
William Cheng b4d835f683 rename perl environment variable (#1172) 2018-10-04 23:54:10 +08:00
William Cheng 06d31cfedb Better format for Ruby tests (#1166)
* better format for ruby test

* update ruby petstore
2018-10-04 23:53:46 +08:00
Steven Masala 3e3b03f93b FIX: remove special quotation marks from filename generation. (#1157)
* remove left|right point double angle quotation marks

* move to DefaultCodeGen and update TypeScriptAngularClientCodegen to reflect new clean function so that the filename AND imports are added correctly

* rename to a more accurate name :)

* shippable fixes

* shippable javadoc fix

* replaced cleanModelFilename with sanitzeName

* remove DefaultCodegen changes
2018-10-04 23:52:00 +08:00
William Cheng 55f26d31d3 Update README with 3.4.x (#1162)
* update README with 3.4.x

* fix div
2018-10-03 23:53:50 +08:00
William Cheng 5490bb8e9c update petstore 2018-10-03 18:36:12 +08:00
William Cheng 0f7557ca9d update version 2018-10-03 18:29:29 +08:00
Steven Masala 1916025a53 Fix: allow colons in TS interface property names (#1152)
* Allow colons in interface property names: https://github.com/OpenAPITools/openapi-generator/issues/1080

* replace tabs with spaces

* add docs

* add example in doc

* update docs

* update docs

* remove language specific docs in DefaultCodegen

* Delete addPet-BodyParams.csv

* remove toPropertyName and update toVarName instead for TS
2018-10-03 15:56:58 +08:00
William Cheng 4e8844273b Prepare 3.3.1-SNAPSHOT (#1154)
* update version

* update petstore samples
2018-10-02 09:40:27 +08:00
William Cheng e22c7c1c8a 3.3.0 release (#1153)
* update using release_version_update

* comment out ensure up to date script

* update using release_version_update_docs

* remove current master
2018-10-01 23:56:52 +08:00
William Cheng 2b87b309ad Rename environment variable for Go to post-process file (#1091)
* renmae Go post process file env variable

* add back samples/client/petstore/c/libcurl.licence

* keep go samples up-to-date

* update go petstore samples

* update go samples without formatting
2018-10-01 21:24:32 +08:00
Erik Timmers dcc0b5e772 [elm] Fix Byte encoder/decoder names (#1151) 2018-10-01 21:20:41 +08:00
William Cheng 3a5ec0a69d Minor enhancements to the MySQL generator (#1148)
* minor enhancements to the mysql generator

* add ybelenko to the README
2018-10-01 16:46:33 +05:00
William Cheng 5357791337 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-10-01 16:38:26 +08:00
Yuriy Belenko e4b5f50515 MySQL Schema Generator #955 (#1055)
* [Mysql Schema] Add new generator

* [Mysql Schema] Fix default definition

* [Mysql Schema] Add defaultDatabaseName option

* [Mysql Schema] Add jsonDataTypeEnabled option

* [Mysql Schema] Add samples
2018-10-01 15:59:18 +08:00
William Cheng 755dfe53de Better handling of different types in Elm generator (#1100)
* better handling of different types in elm generator

* [elm] Fix toString for special cases
2018-10-01 15:27:10 +08:00
kemokemo 2040050e55 [Golang][go-gin-server] Fixed issue 1122 with workaround (#1141)
[Golang][go-gin-server] Fix path parameter naming
2018-10-01 15:25:14 +08:00
William Cheng cbc84254c3 rename scala post proessing env variable (#1143) 2018-09-29 21:39:37 +08:00
Antonio Bellezza 8b47984e3c [Scala-Akka] Generate default values for optional model fields (#1119)
* Generate default values for optional model fields in scala-akka

Fix #1118

* Updated akka-client petstore with defaults for optional model fields

* update petstore sample with scalafmt
2018-09-29 21:21:06 +08:00
Erik Timmers 345b7ec7e5 [elm] Major refactoring; add discriminator support (#1104)
* Use the same name for all exposed encoder & decoders;
* Improve imports (limit exposures);
* Add support for OAS3 discriminators;
* Distinct between 0.18 & latest mustache files.
2018-09-29 12:13:04 +02:00
William Cheng cbddb08468 Add post processing to files generated by Haskell generators (#968)
* add hfmt support (without updating the sample)

* update haskell httpclient samples with hfmt

* add code format option to haskell servant, minor bug fixes

* update code samples with hfmt

* update samples using stylish-haskell

* rename env variable

* update haskell samples with stylish-haskell

* regenerate haskell samples without stylish-haskell

* regenerate haskell servant sample

* update example-app & tests-integration for OAS2 code
2018-09-29 17:21:03 +08:00
William Cheng f1f7bdd23f Add nullable support to Python client (#1073)
* add nullable support to python client

* update PR template
2018-09-29 17:01:13 +08:00
Anand Shah 3a71e59e00 fix optional import (#1083) 2018-09-29 16:57:28 +08:00
William Cheng da8cf01dfa comment out ts node test (#1142) 2018-09-29 16:38:52 +08:00
William Cheng e0cbf46041 Add post processing to files generated by TS generators (#1063)
* add file post proess to TS generators

* update ts node petstore with prettier

* update base on feedback
2018-09-29 16:35:24 +08:00
Yuen-Kuei Hsueh 8e57e0d44f fix top-level enum class checking (#1120) 2018-09-28 22:04:41 +08:00
William Cheng bd71e629a3 Add a link to an article about openap-generator (#1121) 2018-09-26 20:41:12 +08:00
Adam Drakeford 5aad02ed90 Fix for optional and default types (#1107) 2018-09-26 11:48:15 +01:00
William Cheng 70e6e119d1 update dependency (#1116) 2018-09-26 17:30:30 +08:00
William Cheng 4775c630aa Add myworkout to the company list (#1111) 2018-09-26 11:53:55 +08:00
William Cheng cd8bf10b74 rename dart env variable for post processing file (#1101) 2018-09-25 17:23:02 +08:00
Jaumard df61cd9cb3 fix model generator for snake case open api definition (#1076) 2018-09-25 17:22:19 +08:00
William Cheng e3b26372cd Rename Env variable for Elm post process file (#1094) 2018-09-25 09:29:12 +02:00
William Cheng 8fb3b707a1 Add post processing to files generated by Python generators (#1072)
* add post process file to python generators

* update python samples with yapf

* revert sample change
2018-09-22 11:50:17 +08:00
kemokemo 14de289fc1 [Go] Add a generator for the gin framework (#1048)
* copy from go-server and add go-gin-server generator

* change the templates for the gin

* fix warnings of the golint tool

* fix the path of script

* add samples

* delete unnecessary comments (#1048)

* make the help message more appropriate (#1048)

* fix the link address format (#1048)

* minor improvement
2018-09-22 00:45:32 +08:00
herojan abb2690ef5 Kotlin spring server codegen improvements (#1070)
* If required and readonly, a field should be optional. This is to allow people to get and easily put back.

* Use list instead of array, use String instead of kotlin.String etc

* Update samples

* code review: fix annotation formatting

* code review: revert change to use listOf
2018-09-21 16:14:50 +01:00
William Cheng ed1277348d add logic to handle uuid in elm generator (#1075) 2018-09-21 21:56:44 +08:00
Elliot Lee bde97b44b9 Update Usage instructions in README (#1071)
Fix #1040
2018-09-21 12:13:23 +08:00
Christophe Bornet 6dc618fa3f Fix flask connexion support (#1066)
Use the dev-2.0 git branch of flask connexion to fix the generator.
This is not ideal but better than a generator not working at all.

Fix #323
2018-09-20 19:48:28 +08:00
Benjamin Gill c0a6eaab85 Trim trailing '/' from basePathWithoutHost (#967)
* Trim trailing '/' from basePathWithoutHost

Given that the normal use is {{{basePathWithoutHost}}}{{{path}}}.

* Trim trailing '/' from contextPath
2018-09-20 19:33:31 +08:00
William Cheng 29e9f5bda0 add nullable to Ruby client (#1059) 2018-09-20 19:31:47 +08:00
William Cheng cc6efe01c7 Add file post processing to Ruby generators (#1062)
* add post processing for Ruby file

* move ruby file post process to abstract ruby class

* remove line break
2018-09-20 19:31:31 +08:00
Stephane Carrez 3cacbcb965 #1043 - [Ada] Operation security scopes are ignored when generating the server (#1044)
* [Ada] Operation security scopes are ignored when generating the server (#1043)
- Update fromOperation() to keep the operation required scopes for each auth
  method and store that information in the x-scopes vendor extensions attribute
- Update postProcessOperationsWithModels() to process the operation required
  scopes and build a list of authMethods which only contain the required scopes
  for the operation and store these authMethods in the x-auth-scopes attribute.
- Update postProcessAuthMethod() to handle the logic of filtering and building
  the operation authMethod (new instances are created because we must not
  modify the global authMethod definitions)
- Update the Ada server templates to use the x-auth-scopes instead of authMethods
  Add a URL prefix parameter for the Ada server instantiation

* Fix the Ada server template to use the x-auth-scopes for operation scopes
2018-09-20 19:31:11 +08:00
Kiran-Sivakumar 0e045bee1b [okhttp-gson] Add support for OAuth access token retry (#1058)
* Add support for access token retry in okhttp-gson lib

* Update expected number of generated files in test

* Update samples

* Update security samples

* Fix default user-agent and update samples
2018-09-20 19:29:59 +08:00
William Cheng 1b2f3fbfb6 Fix alias to map response (#1067)
* fix response reference to map

* update samples

* add null check for openapi
2018-09-20 19:29:33 +08:00
William Cheng 340466066c Add file post-processing to Swift 3.x, 4.x generators (#1069)
* update all swift samples

* format swift code with swiftformat

* minor format fix

* rename environment variable
2018-09-20 20:29:25 +09:00
Thomas Hansen ca9a4a2ff3 PR: Fix error when giving an array as parameter to an endpoint body r… (#1037)
* PR: Fix error when giving an array as parameter to an endpoint body request

* PR #1037 - Fix issue with array as parameter to operation

* update samples

* PHP - ObjectSerializer::sanitizeForSerialization(): manage \stdClass objects properly

* update samples

* bug fix: missing "use" clause

* update samples

* Changes after @ackintosh review

* update samples
2018-09-19 19:58:56 +09:00
Brian Mooney b7edad5cd0 Issue 1025: Kotlin generator doesn't support inheritance (#1026)
* allVars is duplicating child preoperties when models are inherited. Filter out these duplicates in the KotlinSpringServerCodegen
  * isInherited property was not being populated in the CodegenModel, re-parse the models in the KotlinSpringServerCodegen class and populate the property here
  * Add template support for Kotlin models which require inheritance from a base class to support oneOf declarations in the api yaml
  * Change optional for parameters to use Kotlins nullable
  * Update petstore api with Optional -> Nullable
2018-09-19 11:26:47 +01:00
William Cheng 78fae0ea49 Add nicokoenig to template creator list and TS tech committee (#1056) 2018-09-18 22:47:06 +08:00
Nico König 3027514242 feature: add scaffold for typescript axios template (#892)
* feature: add generator for typescript/axios

* feature: add sample scripts and sample code

* fix: set request body in data property

* feature: add samples and tests for typescript axios client

* test: add tests for typescript axios client
2018-09-18 14:23:52 +08:00
William Cheng 24b234bdbb Minor improvement to Dart generators (#1042) 2018-09-17 23:18:52 +08:00
manhhavu 9e1dfc0837 [Swift4] Use CodeableHelper's dateformatter in encode() if configured (#984) 2018-09-17 14:27:47 +08:00
Dec12 | Fujigon 5c794a01f8 [Java][Jersey] add @Valid when bean validation is enabled (#1019)
* fix template to add @Valid to POJO fields regarding nest, in java-jersey

* regenerate with for scr in `ls ./bin/*jersey*.sh`; do sh $scr; done

* re-generate with ./bin/openapi3/jaxrs-jersey-petstore.sh

* update api template for jersey1

* re-generate samples

* re-generate samples
2018-09-16 22:36:20 +08:00
Jérémie Bresson 27e343ffef [all] Add leading slash in path if missing (#1034)
* [all] Add leading slash in path if missing

* Fix unit Tests
2018-09-16 16:09:16 +08:00
Vladislav Cheparin 5fc76ba834 [Java][Retrofit2] The part name is not added to the annotation (#1029)
* fixed retrofit2/formParams.mustache

* added play26 to retrofit2-all.sh

* fixed samples
2018-09-16 16:00:38 +08:00
William Cheng b909656418 fix postProcessFile log message (#1028) 2018-09-15 18:29:30 +08:00
Jérémie Bresson fe0f2cfad6 [JaxRS-Spec] Fixes in generated pom (#1035)
* build-helper-maven-plugin to add src/gen/java as source folder
* update javax.ws.rs-api to 2.1.1
* add jackson as dependency
2018-09-14 16:59:49 +02:00
William Cheng 04bbd3b0e6 update dart tech committe and template creator (#1038) 2018-09-14 20:49:13 +08:00
ircecho 58e43ceeec [DART2] Maps could not be deserialized in dart 2 (#1007)
* fix[dart2]: due to stronger type checking in dart 2, maps could not be deserialized

* rebuild dart2 petstore
2018-09-14 18:40:37 +08:00
William Cheng fc35bb17d0 Add option to enable scalafmt for code formatting (#1032)
* add option to enable scalafmt for code formatting

* fix typo
2018-09-14 16:58:27 +08:00
Juan Eugenio Abadie 48e66ed627 Avod use of an empty key value (#991) 2018-09-14 00:56:34 +08:00
William Cheng c9625f3fd5 update petstore samples 2018-09-13 22:51:16 +08:00
William Cheng 94eb1c3c63 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-09-13 22:46:21 +08:00
William Cheng 29322da2f6 Dart (Jaguar) client generator (#998)
* generator for dart jaguar

* migrate to openapi-generator

* fix locale issue

* add auth generation for dart jaguar

* fix generation of jaguar api with auth (#1009)

* update deps (#1016)

* add CI tests for dart jaguar

* update dart jaguar bin script

* trigger build failure

* Revert "trigger build failure"

This reverts commit a7d8bfd47a.
2018-09-13 21:39:57 +08:00
Akihito Nakano 9a19a064af Add a CLI option to control logging level (#1000)
* Add CLI option to control logging level

* Update the property name
2018-09-13 21:54:45 +09:00
William Cheng 95302efdfc Add option to set Feign version (#1005)
* Add option to set Feign version

* add java feign 9x to CI

* update usage for Play

* fix duplicated artifactId
2018-09-13 10:32:09 +08:00
William Cheng 096ac567ce Revert "[C++][Restbed] Fix default values for Restbed Server generator" (#1027)
* Revert "[gradle plugin] Support Gradle 4.10 (#1011)"

This reverts commit 131cf94fe4.

* Revert "[C++][Restbed] Fix default values for Restbed Server generator (#761)"

This reverts commit f29ba97e8b.
2018-09-13 09:21:39 +08:00
Jim Schubert 131cf94fe4 [gradle plugin] Support Gradle 4.10 (#1011)
* Support Gradle 4.10

Gradle 4.10 is bundled with Kotlin 1.60 and Kotlin DSL 1.0-rc1. The new
Kotlin DSL isn't binary compatible with the `tasks` registration used in
this plugin.

Updating to Kotlin DSL 1.0-rc1 with no other changes would require users
to update to Gradle 4.10.

As a workaround, I've modified the tasks registration being done in
OpenApiGeneratorPlugin.kt, so rather than using the Kotlin DSL's invoke,
it creates tasks manually against the TasksContainer. This works locally
with Gradle 4.7+ for all scenarios in the sample (samples/local-spec).
There may be edge cases that I'm unaware of, and we may want to consider
defining the minimum supported Gradle version of 4.10 in the next major
version of openapi-generator-gradle-plugin if we experience those cases.

* Uncomment snapshots repo (commented it during local testing)

* update pom.xml for exec gradle plugin
2018-09-12 19:19:45 -04:00
stkrwork f29ba97e8b [C++][Restbed] Fix default values for Restbed Server generator (#761)
* Start working on fixing default value in Restbed Server Api Template

* fix default value in DefaultCodegen
2018-09-13 01:13:02 +02:00
Sean Farrow 59ad12183f Update the Asp.Net core server generator to support Asp.net Core 2.1 (#1008)
* Update the .net core sdk to v2.1 and update the asp.net packages used.

* Upgrade the SwashBuckle Asp.Net Core package to v3.0.0.

* Update the AppSettings json file and add a file used in development.
Also, remove the web.config file.

* Update the program template to use the web host builder class.

* Update the startup class to use the Asp.Net 2.1 paradigms.

* Update the launch settings json file.

* Update the controller template to derive from the ControllerBase class as aposed to Controller.

* Add the SwashBuckle annotations package.

* Add the SwashBuckle.AspNetCore.Annotations namespace to the controller template.

* Update the Startup template to add comments to the Configuration property and an env parameter to the Configure method.

* Update the startup class so we don't need to inject the hosting environment.

* Update the program class to have hte recommended CreateWebHostBuilder method from asp.net core 2.1.

* Update the asp.net core pet store sample server.

* add back aspnetcore 2.0 template via option

* remove web.config for aspnet core 2.1
2018-09-12 18:42:16 +08:00
sunn 3d4c3c545b [c++ pistache server] Support basic query handling (#943)
Support basic query handling

Add  helpers for primitive de-serialization
Remove warnings due to unneeded commas
Deserialize basic types in queries
Add dependencies chain for external libraries
Fixes wrong parameter passed to API
2018-09-12 09:53:01 +02:00
sunn 3cfcf77c88 Improvements for qt5 server (#942)
Remove beta tag
Supported nested containers
Move repetitive code to inline function
Fix docker file
Fix CMakeLists.txt when building external project
2018-09-12 09:52:00 +02:00
Adam Drakeford 1ae3403f6d [KOTLIN] [SPRING] Minor bug fixes to generator (#1001) 2018-09-11 21:41:12 -04:00
Juan Eugenio Abadie 2d99836e90 [C++] [cpp-rest-sdk] Check for null values (#990)
* Check whether a value is present but null

* Update Petstore sample
2018-09-11 00:15:44 +08:00
ircecho 6a1e560540 fix[dart2]: improved error reporting (#1006)
* fix[dart]: improved error reporting

* rebuilt dart2 petstore

* rebuilt dart2 petstore with dartfmt
2018-09-11 00:14:50 +08:00
Even André Fiskvik f80fa08a01 [Swift4] Fix default value for enums (#652) (#656)
This fixes an issue that makes the swift 4 api client fail to compile when using enums with a default value.
The fix changes the toDefaultValue method to check if the property is of enum type, and then returns a properly formatted value.
Looking into the code, I wonder why toEnumDefaultValue is not being used here, which seems to be the case for the java implementation.
2018-09-10 00:18:49 +08:00
Jakob Schmutz 7596fb7119 fix circular import issue in python flask (#946)
* fix circular import issue in python flask

This is very similar change to 3678eaff87
All it intends to do is fix the problem of cirular imports (which was
already fixed for python) in the python flask server.

* removal of type hints in quotes
2018-09-09 23:23:06 +08:00
Ilya Hrankoŭski aa29219f8c [Java][Feign] Add support for Feign 10 (#977) (#988) 2018-09-09 18:11:59 +08:00
Christophe Bornet 825404a1df [Spring] Fix reactive + delegatePattern option (#978) 2018-09-08 15:51:05 +02:00
William Cheng 47b3210cb2 Add js-beautify support to JS generator (#961)
* add js-beautify support to JS generator

* replace tab with space

* update samples without JS_BEAUTIFY_PATH
2018-09-08 18:06:27 +08:00
Akihito Nakano 1ead8bcca5 [PHP] Drop support for PHP5.5 on php-client (#993)
* Drop suport for PHP5.5 on php-client

* Update samples

bin/php-petstore.sh
bin/openapi3/php-petstore.sh

* Update security samples

bin/security/php-petstore.sh
2018-09-07 17:39:33 +09:00
Akihito Nakano 4a9b0a91aa [PHP]Generated lumen code can contain dots in routes (#985)
* Update README

* Remove the codes checking dots contained in path

* Update samples
2018-09-07 17:37:35 +09:00
Nathan Broadbent a0f8c5e468 Ignore modules/openapi-generator-gradle-plugin/bin/ (#983) 2018-09-07 15:42:08 +08:00
Jérémie Bresson abe741f989 Set swagger-parser and swagger-core to version 2.0.4 (#787) 2018-09-06 20:33:37 +02:00
Yann Milin c5463232d3 [PHP] Fix deserialize ApiException as a Model (#757)
* [PHP] Fix deserialize for default responses. Update samples

* [PHP] Update sample files

* Fix the distination ("-o") of petstore-security-test

* Clean up "petstore-security-test" folder

* Update petstore-security-test sample files

* Update petstore OpenAPI3 sample files
2018-09-07 00:52:59 +09:00
Matt Melling a8cbae4dc8 [PHP] Upgrade php-cs-fixer to 2.12, enables PHP >= 7.2 support (#769)
* upgrade php-cs-fixer to 2.12

* ran petstore-security-test for php

* updating openapi3 php petstore example
2018-09-06 20:48:00 +09:00
Esteban Marin b9e9f54dab [Typescript] add missing type mapping (#973)
* #957: add missing type mapping

* #957: generate samples
2018-09-06 18:21:05 +08:00
Nathan Broadbent 5d259952b3 Added pry-byebug to debug Ruby client (#979) 2018-09-06 18:19:31 +08:00
William Cheng e29f263941 Add perltidy to format Perl code (#970)
* add perl tidy without updating petstore samples

* incldue pl file, update samples

* use no backup option, perltidy on test.pl
2018-09-06 14:46:02 +08:00
William Cheng 39c734fc25 Better code format for Java (okhttp-gson) client (#971)
* better code format for java okhttp client

* update java petstore samples
2018-09-06 14:24:14 +08:00
Elan Thangamani 3abeb82685 Service Virtualization Feature enhancement (#196)
* Open Virtualan API Implementation

* Menu change

* Delete .swagger-codegen-ignore

* Delete jsonbeautifier.html

* Supporting files for Virtual service setup

* CRLF removed

* Unwanted new lines are removed

* Build issues resolved

* Build issue resolved

* Removed Logger statement

* Logger removed

* Updated

* Codegen virtual services samples for petstore.yaml

* - Code Revamp and Clean up
- Maven plugin related changes
- Samples added

* Tab space removed..

* Annotation based Service virtualization

* Open API code generator changes

* Virtualan samples added with Sprint boot app.

* Build issue resolved

* Removed unwanted files

* Updated with version 3.0.3 SNAPSHOT

* Reverted the options for virtual service in global and not needed now.

* virtualan-plugin integration with open api tool.

* Updated the all review comments and removed all tab spaces.

* Updated the ReadMe generator section.

* New line removed to fix the build issue.

* Spring boot virtualan included in the spring build script

* Included in the spring-all-petstore script
2018-09-05 16:38:06 +08:00
William Cheng 26591f5d7f Use elm-format to format Elm API client (#959)
* add elm-format support

* update elm petstore samples

* add trenneman to elm tech comm

* replace dart class with elm class

* revise elm format arguments

* update petstore samples
2018-09-05 08:04:27 +08:00
Nathan Broadbent 5d52bd51bf Generate a Gemfile.lock for the Ruby client, to keep versions consistent when running automated tests (#966) 2018-09-05 07:59:16 +08:00
Remi Patriarche 7a18a1a7b6 [typescript-angular] Add fileNaming configuration property (#767)
* resolve #727

* remove commented code
2018-09-05 07:57:11 +08:00
Jérémie Bresson 66022a1f22 Update swagger-parser to v2.0.3-OpenAPITools.org-1 (#951)
* Update swagger-parser to v2.0.3-OpenAPITools.org-1
* Run bin/rust-server-petstore.sh
2018-09-04 15:46:46 +02:00
delenius 9d89387d83 Fix cookie support in Node.js client (#895) 2018-09-04 16:31:33 +08:00
Marco f7b807f980 [Java][Webclient ]Avoid double encoding on query params (#924)
* call build() with encoded = true

* Regenerate client
2018-09-04 15:58:14 +08:00
Erik Timmers b24b6df448 [elm] Add support for Elm 0.19 (#937)
* [elm] Add support for Elm 0.19

* add elm 0.18 samples, update cli option

* fix elm 0.18 compile test

* [elm] 0.19 fixes & improvements
2018-09-04 14:24:43 +08:00
Benjamin Gill 9b38618f68 [rust-server] Restore support for nullable (#936)
* Restore support for nullable in rust-server

Accounts for changes in https://github.com/OpenAPITools/openapi-generator/pull/930. Adds a nullable field to the sample to reduce the risk of this regressing again in future.

* Add test for required nullable field
2018-09-03 13:17:27 +01:00
William Cheng cabc1af823 Add swipesight to techcomm & his company to readme 2018-09-03 17:43:25 +08:00
Yuriy Belenko 8a034ce063 [PHP] Add interface/abstract/trait helpers (#906)
* [PHP] Enhance interfaces, abstracts and traits

It would be helpful to set prefix/suffix for all interfaces, abstracts
and traits in one place. Defaults are set to follow "PSR Naming Conventions".
If user will ask we can add prefix/suffix generator options in future.
I don't see modelPrefix generator option, so I assume it's not important now.

Ref: https://www.php-fig.org/bylaws/psr-naming-conventions/

* [Slim] Refactor to use new helpers

* [Slim] Refresh samples
2018-09-02 18:21:53 +05:00
William Cheng cc53774180 better process handling in Go postProcessFile (#950) 2018-09-02 18:01:34 +08:00
William Cheng d9400caf69 Set Dart2 as default, better format Dart code with dartfmt (#949)
* change dart default to v2

* add dart2 author

* add dartfmt to postProcess file in dart generator

* add dartfmt to format dart code
2018-09-02 17:59:42 +08:00
William Cheng a2acfe3be0 add default value to swift3,4 podspec (#921) 2018-09-02 15:51:36 +08:00
Christophe Bornet 026c26075d Use better return types for the reactive option (#913) 2018-09-02 15:49:49 +08:00
Yimin Lin 8ccb7135d3 [Dart 2] Fix petstore tests (#954)
* properly initialized models in tests

* Revert "move dart2 test to the end"

This reverts commit 7d2edf4713.
2018-09-02 15:43:23 +08:00
William Cheng d4c0de2876 update ruby petstore client Gemfile (#948) 2018-09-01 22:35:24 +08:00
William Cheng e5244e8c3d Add postProcessFile, implement in Go generators to run gofmt (#929)
* add postProcessFile, implement in Go generators to run gofmt

* minor fix to docstring

* update parallel job to 3
2018-09-01 21:02:28 +08:00
Yimin Lin d327c5be46 [Dart 2] Add support for Dart 2 (#754)
* Add an option for Dart2

* add dart2 samples, update travis

* fix dart installation

* Upper constraints on the SDK version

* Update dependencies

* supportDart2 option can now be passed through --additional-properties

* Update petstore tests

* Update dart2-petstore.sh

* Running tests on Dart VM

* Fixed JSON deserialization bugs

* Fixed missing initialization of postBody

* Run bin/dart2-petstore.sh to regenerate libraries

* Update pom.xml

* Added SDK version constraints in pubspec.mustache

* Run bin/dart2-petstore.sh to regenerate libraries

* move dart2 test to the end
2018-09-01 01:49:18 +08:00
Jérémie Bresson 31149a5a69 Publish documentation for the generators (#932) 2018-08-31 16:00:27 +02:00
Matthieu Berthomé 6bc3c70115 [PYTHON] Api doc python with multiple authentications (#928)
* [PYTHON] better code snippet for API usage with authentication

* update python samples
2018-08-31 21:35:37 +08:00
William Cheng 5ad471cc6e add back overtrue/phplint to php slim 2018-08-31 20:34:06 +08:00
Jeremie Bresson dd35acdb92 Remove version in the copied jar
Modification introduced on "master" was dropped in "3.3.x" with merge
commit 3b2951b305
2018-08-31 10:26:10 +02:00
Christophe Bornet aceec7a5a2 Merge pull request #939 from cbornet/linux_release_scripts
Make release script cross-compatible between Mac and Linux
2018-08-31 09:18:07 +02:00
Jérémie Bresson f95dfbef75 Move "ensure-up-to-date" execution to CircleCI (#944) 2018-08-31 09:16:41 +02:00
Jérémie Bresson baa70e51fe Merge 3.3.x into master (#938)
Merge 3.3.x into master
2018-08-30 17:04:08 +02:00
William Cheng e7c05f16db update samples, re-enable ensure-up-to-date 2018-08-30 20:25:56 +08:00
cbornet fd83b2d491 Make release script cross-compatible between Mac and Linux 2018-08-30 13:57:52 +02:00
William Cheng f664938d8e add back phplint tool: e75b115 2018-08-30 19:57:22 +08:00
William Cheng 9e45fbb13b Merge branch '3.3.x' of https://github.com/openapitools/openapi-generator into 3.3.x 2018-08-30 19:48:01 +08:00
William Cheng 3b2951b305 Merge remote-tracking branch 'origin/master' into 3.3.x 2018-08-30 19:39:09 +08:00
William Cheng 5745f6df70 Prepare 3.2.3 release (#935)
* update release version, disabled ensure up to date script

* update release table

* update stable version to 3.2.3

* update samples/meta-codegen/lib/pom.xml and release_version_update.sh
2018-08-30 19:08:03 +08:00
Matthieu Berthomé d49fb1c777 StringUtils functions (#859)
* extract StringUtils

* extract escape function

* fixup! extract escape function

* forbiddenapis fix

* fix merge issue

* put string utils methods as deprecated, call with FQDN to call the org.openapitools.codegen.utils.StringUtils static methods

* javadoc fix
2018-08-30 15:56:04 +08:00
Jérémie Bresson f4d7403ed6 [Java][JAXRS] improve generated readme (#920)
* [Java][JAXRS] improve readmes

* Update samples

* Update jersey readme

* Update jersey examples
2018-08-30 14:05:34 +08:00
Jérémie Bresson f987306a15 Remove x-nullable extension support (#930) 2018-08-30 07:54:34 +02:00
osjupiter 62abd51a02 [all] add "x-enum-varnames" extension to control enum varname (#917)
* add "x-enum-varnames" extension to control the naming of the enum parameter name
* allow to set different size from target enum
2018-08-30 07:23:19 +02:00
William Cheng b8db2af4bb Update swagger annotation version in Java clients (#915)
* update swagger annotation version in java client

* add java retrofit2 play 2.6 to java petstore all bin script

* remove empty line in pom.xml
2018-08-29 16:43:41 +08:00
Jérémie Bresson 8e1e05e86c [CLI] Improvements for meta and list command (#799) 2018-08-29 06:56:37 +02:00
William Cheng 09a62d7fef Minor improvements to Kotlin Spring Boot generator (#918)
* minor improvement to kotlin sprinbboot generator

* add dr4ke616 to tech comm, add zalando to company list
2018-08-29 11:34:58 +08:00
Jim Schubert 2544ace262 [docker] Fixes hub dockerfile for online project (#914)
An update was made in #876 to remove version from the generated artifact
for openapi-generator-online. The change is missing the -online suffix.
My original glob pattern put the * in the wrong place for
maintainability.
2018-08-28 18:08:51 -04:00
William Cheng a1205f6109 add https://www.boxever.com/ to the company list (#916) 2018-08-29 00:42:40 +08:00
lukoyanov 4558e49c7e [Java] Retrofit2 Play! Framework 2.6.x support (#901)
* added play framework 2.6 support

* generated petstore sample

* generated petstore sample #2

* generated petstore sample #3

* Revert "generated petstore sample #3"

* generated petstore sample #4

* fixed circleci configs

* one more time samples regen
2018-08-28 22:48:05 +08:00
Jack O'Sullivan 5926ee5f1f Add callback model (#861)
* Add callback model (#372)

This adds a new `CodegenCallback` class, a list of which is now present in
`CodegenOperation`. `CodegenOperation` now also includes a
`isCallbackRequest` boolean since `fromCallback()` (the method added to
`DefaultCodegen` to process operations which contain OpenAPI callbacks)
uses CodegenOperation as the model for a callback request.

A `CodegenOperation` which represents a callback request will have a
`null` operation id.

A test is included for this new model.

* Generate callback request `operationId`

* Add license to `CodegenCallback`
2018-08-28 21:10:13 +08:00
Adam Drakeford 8689227b3e [KOTLIN] Spring Boot Server Generator (#820)
* Kotlin Spring initial bootstrap

* Basic configuration construction for Kotlin Spring

* Wired up with comand line client

* Initial kotlin spring boot application generated using gradle kotlin-dsl

* Added basic support for generating models

* Basic controllers generated without endpoints generated

* Basic spring boot app generated with models and controllers

* Added fix for type mapping in AbstractKotlinCodegen. Originally it was mapping list o kotlin.Array instead of kotlin.collections.List

* Fixed return type mapping

* Sorted bash springboot petstore generator script

* Implemented toVarName in AbstractKotlinCodegen to better handle some edgecases

* Checking for reserved words or numerical starting class names in AbstractKotlinCodegen

* Implemented toOperationId in AbstractKotlinCodegen

* Fixed types that were not correctly being mapped to primitives (byte / arrayOf / mapOf)

* Escaping dollar symbols in function names

* Added support for outter enum classes

* Added basic support for generating services

* Removed option for generated config package. Added option to enable/disable generated global exception handler

* Added configuration option to generate gradle. Generated maven pom.xml file as default

* Fixed up bash scripts for generating test sample code

* Added configurable option for Swagger Annotations

* Added configurable option for generating service interfaces and service implementations

* Added README generation

* Enable optional bean validation

* Added kotlin spring sample to CircleCI pom.xml

* Removed kotlin spring boot from .gitignore

* Minor fixes from PR comments for user submission (#1)

* Minor fixes from PR comments for user submission

* Puts braces around conditional block bodies with one-liner bodies.
* Modifies README.mustache to use artifact id and version supplied by
user (or default configuration)
* Targets templates under resource directory explicitly to prevent the
need to rebuild for evaluation of  template-only changes.

* [kotlin-spring] Remove comments referencing sbt in bash scripts

* List of changes based upon code review:
* Additional comments around how we set the title based off the open api spec
* Fixed missing `beanValidationCore` template
* Put the lambdas into the lambda object as other generators do (Ktor, C#, cpp)
* Bump swagger-annotations version to latest pre-2.0 version (1.5.21)
* Set kotlin version to 1.2.60
* Updated README to set port based on template
* Added more additional properties to build bash scripts
* Removed `defaultBasePath.mustache` in place of using {{contextPath}} directly
* Log warning for when `serviceImplementation` is set t o true

* Updated samples

* Generating ConstraintViolation Exception Handler, as Springboot doesnt correctly catch the error and return bad request. Handling other exceptions a litle better

* Small fix for date time mappings (plus sample re-gen)

* Minor fix in README template, where port was using wrong variable

* Fix missing jackson-dataformat-xml dependency

* Fix build - needed to re-run kotlin-server-petstore.sh

* Fixes after merge with master

* Revert "Small fix for date time mappings (plus sample re-gen)"

This reverts commit 4152dc78b4813da71c675272ca90fb31a333aea1.

* Moved type mappings to Kotlin Spring generator

* Regenerated samples

* Regenerated samples
2018-08-27 23:54:53 +08:00
William Cheng 5cd5143b80 Add test case to detect stack overflow error (#904)
* add test case to detect stackoverflow errors

* use bash insted of sh
2018-08-27 20:46:50 +08:00
Jeremie Bresson 1ea0a1e856 Revert "[CI] Change the way gradle uploadArchives works (#902)"
This reverts commit e3bd47921c.
2018-08-27 10:51:51 +02:00
William Cheng b505795bf7 use JsonIgnoreProperties to fix recursion (#903) 2018-08-27 16:14:35 +08:00
Jérémie Bresson e3bd47921c [CI] Change the way gradle uploadArchives works (#902) 2018-08-27 09:06:54 +02:00
Yuriy Belenko e75b115244 [Slim] Add PHPLint tool to check syntax (#898)
* [Slim] Add phplint package to dependencies

There is no phplint package for PHP 5.5.0 version, so I have to increase
required PHP version to 5.5.9.

* [Slim] Update main doc

* [Slim] Refresh samples
2018-08-26 15:42:59 +05:00
Yuriy Belenko 15cec0ae09 [Slim] Add PHP CodeSniffer to check coding style (#897)
* [Slim] Add PHP CodeSniffer package

* [Slim] Add phpcsStandard generator option

We follow PSR-2 coding style guide in PHP generators. It might be convenient
for users to specify own coding standard without modifying templates. That's
why I've added this option.

At first, I thought to add option validation and accept only standards from
predefined list. But this option also can be a full path to the standard's
root directory, I've changed my mind. User should use this option with caution.

Ref to all PHP CodeSniffer CLI options:
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage

* [Slim] Extend readme with PHP CodeSniffer docs

* [Slim] Format templates to meet PSR-2

* [Slim] Refresh samples
2018-08-26 15:26:09 +05:00
William Cheng 4401407c7c remove eof from elm mustache template for better code format (#879) 2018-08-26 16:38:27 +08:00
Jeremie Bresson a08f8d13e0 Merge remote-tracking branch 'origin/3.3.x' into 4.0.x
Conflicts:
	modules/openapi-generator-online/Dockerfile
	samples/*
2018-08-26 09:13:39 +02:00
Jeremie Bresson 267ffc0e2e Merge remote-tracking branch 'origin/master' into 3.3.x
Conflicts:
	modules/openapi-generator-online/Dockerfile
2018-08-26 08:26:07 +02:00
Jérémie Bresson 40d815946a [CI] use regex to check if TRAVIS_BRANCH is a working branch (#899) 2018-08-26 08:22:17 +02:00
Hugo Barrigas 37fd4264ac [JAVA][Webclient] Add constructor to allow custom WebClient to be passed into ApiClient (#882)
* add constructor to allow custom webclient to be passed into ApiClient
2018-08-25 15:22:36 +02:00
Marco 39e9206976 [Java][Webclient] Init authentication on ApiClient instantiation (#887) 2018-08-25 14:22:16 +02:00
William Cheng 50c6ac34f1 Add x-nullable (OAS2) support (#889)
* add x-nullable oas2 support

* add test spec for testing x-nullable
2018-08-25 18:31:23 +08:00
sunn 6a00b2a802 [cpp-pistache] removed model namespace when unused for operations (#775)
* Remove using model namespace when model is unused
* Add comments to clarify introduction of hasModelImport at API/operations level instead of operation/vendorExtensions level.
2018-08-24 10:52:01 +02:00
Jérémie Bresson 010b469914 [build] create jar without version in openapi-generator-online (#876)
Simplify other scripts needing this jar
Consistent with openapi-generator-cli
2018-08-24 08:50:26 +02:00
sunn f802f8b7d7 [qt5 server] various improvements (#725)
* Improve handling of all primitive types

* Fix missing includes in case of simple APIs

* Fix minor error in template function

* Remove tabs

* Refactor code for simplicity

* Remove tabs

* rework the router for handling multiple path param

* rework router to handle multiple path parameters

* rework router to handle multiple path parameters

* rework router

* Add support for Multi path param

* Add comments to code block and remove duplicate parameters

* Remove tabs :(

* Add missing imports after resolving conflict
2018-08-24 08:47:01 +02:00
Matiss 219a88e9c6 Add support for Api key in cookie for Symfony (#884) 2018-08-24 09:53:25 +08:00
Tomasz Prus 79dacb20a0 fix: python-asyncio/aiohttp with disabled ssl verification (#891) 2018-08-24 09:43:32 +08:00
William Cheng adbe478e0b fix toLowerCase with Locale.ROOT 2018-08-23 18:58:26 +08:00
William Cheng 704c1b8893 update petstore samples 2018-08-23 18:52:34 +08:00
William Cheng 780ba49da1 Merge remote-tracking branch 'origin/3.3.x' into 4.0.x 2018-08-23 18:39:54 +08:00
William Cheng 8be06bc22d Merge remote-tracking branch 'origin/master' into 3.3.x 2018-08-23 18:21:44 +08:00
Navneet Karnani f2b0adfa05 Nit: Language fix in README.md (#871)
* Nit: Language fix in README.md

Usage of "then" vs "than"

* update TS petstore samples
2018-08-23 17:33:38 +08:00
William Cheng 4830be0ea4 Fix Elm CI issue due to new version (0.19) installation (#877)
* update elm usage

* remove yes from elm script

* install elm 0.18

* add npm cache

* add gem env to travis

* add gem cache directory
2018-08-23 16:25:26 +08:00
William Cheng 4a5bd50202 add xml attr support in go client (#867) 2018-08-23 15:23:49 +08:00
William Cheng 6a47d49ee8 add nullable support (#873) 2018-08-23 10:51:57 +08:00
William Cheng 3d06900e68 Prepare 3.2.3-SNAPSHOT version (#870) 2018-08-22 13:39:20 +02:00
William Cheng 3259bf71e6 3.2.2 release (#869)
* run bin/utils/release_version_update.sh

* comment out ensure-up-to-date script

* run bin/utils/release_version_update_docs.sh

* fix link to lc3
2018-08-22 16:44:31 +08:00
Michael Kotten 526e980a69 [JAXRS] use contextPath variable for @ApplicationPath in RestApplication (#850)
* Use contextPath variable for RestApplication templates
* Update generated RestApplication.java files, as they are skipped by default otherwise
* Update Petstore sample for jaxrs so that CIs can verify the change
2018-08-22 09:15:08 +02:00
Jeremie Bresson ab09909f99 Add missing import 2018-08-22 06:53:48 +02:00
Matthieu Berthomé d8b597b168 [DefaultGenerator] consider referenced headers (#863) 2018-08-22 06:07:57 +02:00
Jens Oberender 9bc335b35e Forbiddenapis check and fix (#672)
* Added forbiddenapis check and fixed the findings in the normal code
* Fixed forbiddenapi findings in java templates and samples.
* Generated all samples for Java.
2018-08-22 06:06:01 +02:00
William Cheng 227f2779d7 escape various descriptions in the spec (#866) 2018-08-22 11:48:32 +08:00
William Cheng 2ffda45adf Add https://www.suva.ch/ to the company list (#868) 2018-08-22 10:43:32 +08:00
marcotta bb2712fe45 Use thread safe manager store dictionary (#864)
Fix crash due to concurrent access of managerStore dictionary.
Swift2 and Swift3 had been enhanced respectively with the following
pull requests: #3873 #5610
2018-08-22 02:27:40 +08:00
Jim Schubert cbf61d5524 [docker] build files for automated builds (#836) 2018-08-21 23:08:24 +08:00
matthesrieke 39763a8ca7 fix unescaped description in requestBody (#857)
Fix unescaped description in requestBody
2018-08-21 22:28:32 +08:00
Jim Schubert aa19369466 📝 Remove swagger comment, fix typo in README (#862)
I had previously copied the multi-task description in the gradle
plugin's docs from a response made in an issue. The reference to 'the
old swagger plugin' have no context in the gradle plugin README, so I've
updated that wording.

Also, I found that the link to openapi-generator-cli.sh in the root
README was broken. It pointed to openapi-generator.cli.sh instead of
openapi-generator-cli.sh.
2018-08-21 22:13:55 +08:00
Jérémie Bresson 3f65d6c350 [all] Support for Free-Form Objects (#849)
Consider "additionalProperties: true"

Fixes #796
2018-08-21 12:26:54 +02:00
Yuriy Belenko 99646e6436 [Slim] Update main documentation (#839)
* [Slim] Update main documentation

Kotlin server README has been used as a ref. There are no links to apis and
models docs, because Slim codegen doesn't provide them right now.
Also I'm not sure about white spaces, but we can change it anytime in future.

* [Slim] Refresh samples
2018-08-21 18:25:43 +08:00
Dominik Sumer 450d624474 add possiblity to pass baseOptions to the API Configuration, which will be passed to every fetch call (#642) 2018-08-21 16:25:56 +08:00
OmriHarary ca0c35aa15 [java-server] Fix improper quoting of default values for query parameters (#708) 2018-08-21 10:17:31 +02:00
Daiki Matsudate fcfd8ea76e Update swift samples (#738)
* update all swift samples

* fix method name starting with number literal

* better handling of operationId starting with number

* update swift 4 samples
2018-08-21 15:17:56 +08:00
ccozzolino 2044c36398 Adjust client response handler to be backwards compatible with older versions of Vert.x (<3.5) (#854) 2018-08-21 13:12:18 +08:00
Yuriy Belenko d374e1c160 [Slim] Official htaccess (#838)
* [Slim] Change htaccess to official

Slim docs contains more simple htaccess example.
https://www.slimframework.com/docs/v3/start/web-servers.html#apache-configuration

* [Slim] Refresh samples
2018-08-21 11:59:29 +08:00
Jean-François Côté ee491a0e5e Fix problems in typescript jquery generator (#801)
* Add missing curly bracket + remove unnecessary `postProcessParameter` because it add 2 time "models."

* Add generated client for samples
2018-08-20 08:44:46 -04:00
Yuriy Belenko e605882451 [PHP] Add gitignore to AbstractPhpCodegen (#765)
* [PHP] Remove PHP related rules from root gitignore

After conversation with @ackintosh we've agreed that every PHP codegen
should create it's own `.gitignore`. Client libraries(SDKs) should ignore
`composer.lock` file while server stubs better do opposite.

* [PHP] Set .gitignore as default supporting file

* [PHP] Add default gitignore to Client SDK

* [PHP] Add default gitignore to Laravel

* [PHP] Add default gitignore to Lumen

* [PHP] Add default gitignore to Silex

Seems like issue #663 and pull request #681 missed this security script,
I've changed output path in bin/security/silex-petstore-server.sh.

* [PHP] Update Slim

* [PHP] Add default gitignore to Symfony

I've copied few old rules from root gitignore to local one. These rules
should be reviewed by original SymfonyCodegen authors.

* [PHP] Add default gitignore to Zend

* [PHP] Refresh Openapi3 client samples

* [PHP] Add refs to .gitignore templates collection
2018-08-20 12:16:01 +08:00
Jérémie Bresson b91c8e17a7 Improve documentation for usage of a generator in an other jar (#817) 2018-08-20 12:15:10 +08:00
Matiss dcc622d374 Improve Symfony 4.1 compatibility (#830) 2018-08-20 12:11:33 +08:00
Jim Schubert a3e5edc367 📝 Updating 'help generate' switches in README
Adds new --log-to-stderr as well as a missed option for
--skip-validate-spec.
2018-08-19 21:37:20 -04:00
Jack O'Sullivan bd7c9e30d3 [cli] Don't log to STDOUT if debug flags are set (#474)
It makes sense that error messages should be written to STDERR and
all others should be written to STDOUT (as shown in #207). However, it
would be convenient to parse the debugging output when the relevant
flags are set.

This change will disable logging to STDOUT and redirect all log messages
to STDERR when any of the debug flags are set. (Resolves #473)
2018-08-19 21:33:49 -04:00
Jim Schubert 62dfb749f1 [gradle-plugin] README notes on multiple specs (#847)
A user asked about how one would approach generating code from multiple
specifications. Adding this information to the README, as it seems
others would find the information helpful. Also explaining how to use
tasks from this plugin as this may not be commonly known or intuitive
beahvior.
2018-08-19 16:17:26 -04:00
Tino Fuhrmann 3b9de3baa3 Added server variable support (#816)
* Added server variable support

* Replaced tabs with 4 spaces
2018-08-19 17:45:55 +08:00
William Cheng d593988e5d fix erlang optiona/required parameters (#829) 2018-08-19 14:52:21 +08:00
Victor Orlovsky 0191210145 [Java][Rest-assured] Fix generated javadoc and "swagger-annotations" improvement (#831)
Added "@Api" swagger annotation, "nickname" for ApiOperation. 
Fixed javadock for rest-assured client.
2018-08-17 18:15:02 +02:00
William Cheng 0f30a052b2 Add an option to skip "form" model generation (#700)
* add option to generate all models

* update doc

* rename option to skipFormModel

* update petstore samples

* Update doc

* Update samples
2018-08-17 17:22:30 +08:00
Rytis Karpuška 1c6ab3f831 Add localVar prefix to parameterized functions variables in cpprestsdk in order to make name clashing less probable. (#731) 2018-08-16 18:16:58 +08:00
William Cheng 5ffc297a69 Fix Ruby script path in ensure-up-to-date (#823)
* fix ruby script path in ensure-up-to-date

* bin/ruby-client-petstore.sh
2018-08-16 13:59:47 +08:00
Victor Orlovsky e7340bfe5b [Java][Rest-assured] Fix "invokerPackage" in ApiClient, remove unnecessary @Authorization (#822) 2018-08-16 06:15:15 +02:00
William Cheng e5b6d525c7 update ruby pestore client 2018-08-16 01:34:25 +08:00
William Cheng d1f7e16daa Merge branch '3.3.x' into 4.0.x 2018-08-16 01:01:34 +08:00
William Cheng f22e9c27a9 Merge remote-tracking branch 'origin/master' into 3.3.x 2018-08-16 00:45:29 +08:00
William Cheng ca651becf8 Add support for multi consumes in inline schema (#789)
* add support for multi consumes in inline schema

* add copyright

* revert redirectTestOutputToFile change in pom.xml
2018-08-16 00:24:19 +08:00
William Cheng 6de09688ad Add auto-generated readme for cpprestsdk client (#814)
* add auto-generated readme for cpprestsdk client

* update cpprest client sample

* remove error message from cmake
2018-08-16 00:23:48 +08:00
William Cheng 94806b8036 update release table (#818) 2018-08-16 00:23:27 +08:00
Michael Kotten fa52826c24 [JAXRS-spec] Add option useSwaggerAnnotations (#813) 2018-08-15 18:05:47 +02:00
Victor Orlovsky 7b8f51a465 [JAVA][Rest-assured] add more information about operations (#815)
Add swagger annotations to client and set default baseReqSpec and baseContextConsumer in ApiClient
2018-08-15 17:56:14 +02:00
Jérémie Bresson 79b993e6d5 Prepare version 3.2.2-SNAPSHOT (#810) 2018-08-14 13:38:18 +02:00
William Cheng 56bba880e7 3.2.1 release (#807)
* 3.2.1 release

* roll back incorrect change to link

* update doc

* update 3.1.2 release

* Fix version table
2018-08-14 17:47:59 +08:00
Jim Schubert 7acba8a4d8 [generator] Cleanup debugOpenAPI usage/display text (#804) 2018-08-14 11:45:50 +08:00
Geoff Brown 08ca54d3d5 Fixed date formatting in typescript node client (#786)
Fixes #785
2018-08-13 19:27:31 +02:00
William Cheng 7b04732f09 better explain usage (#794) 2018-08-13 09:30:18 -04:00
Fabrizio Ferrai 74d70121d1 [Clojure] Add model generation and conforming (#122)
* [Clojure] Add model generation and verification

- Generate clojure.specs from models
- Optionally validate them at runtime (validation is active if
  orchestra.spec.test/instrument is called after specs are imported)
- Coerce the results of the API calls to get objects that conform
  to the spec (e.g. get Date objects for dates and time instead of strings)

* [Clojure] Make model conforming configurable and opt-out

* [Clojure] Move specs from a single file to a ns per model

So that the order of the forms will be resolved by the compiler,
otherwise we'd have to implement a topological ordering.

* [Clojure] Update petstore sample and set automatic decoding off

* [Clojure] Stop testing Clojure generator on Java7

* [Clojure] Fix tests and handling of multiple arity

* [Clojure] Fix tests and add testing for the new decoding feature

* [Clojure] Capitalize names of generated models

* [Clojure] Rename petstore specs to be capitalized

* Revert to lowercase spec names, and postfix the data specs
2018-08-13 15:04:25 +08:00
William Cheng b64864f47d Fix float/double default value in C# generator (#791)
* fix float/double default value

* better code format

* better CI for openapi3 batch files (C# client)

* update nancyfx samples

* pipe output to /dev/null to reduce log size

* fix windows batch file

* add C# API client generated by OAS3 spec
2018-08-13 13:28:22 +08:00
William Cheng c237fe9f1c Enhancements to documentation generators (samples, default values, etc) (#790)
* enhancements to doc generators (samples, default values, etc)

* add 3.3.x to PR template
2018-08-13 13:27:45 +08:00
Jérémie Bresson 5e1c4cde50 Remove duplicate variable declaration (#792) 2018-08-13 13:26:34 +08:00
attrobit 1559c4fadd Issue 758 root resource (#771)
* Unit-Test for JavaJAXRSSpecServerCodegen.

* Path generation for primary resource fixed.

* Unit test for toApiName.

* Review-Feedback: blank line removed.
2018-08-12 22:37:19 +08:00
Rytis Karpuška 0cd6d8c139 Do not declare destructor as default when destructor is explicitly declared. (#732) 2018-08-12 13:44:07 +02:00
William Cheng ddb0920fed Fix C# client enum issue (#774)
* fix csharp enum issue

* fix numeric enum value

* add docstring to exlain isDataTypeString

* fix docstring by adding return

* fix ToJson in hash model

* remove BaseValidate for map model

* restore csproj file
2018-08-11 11:34:20 +08:00
Akihito Nakano 21777f2759 [JavaScript] Update vulnerable dependencies (#784)
* Update vulnerable dependencies

* Update samples: javascript-es6

* Update samples: javascript-promise

* Update samples: javascript-promise-es6

* Update samples: javascript

* Update samples: petstore-security-test/javascript

* Rename operationId if it starts with a number

* Update samples

bin/javascript-petstore.sh
bin/javascript-es6-petstore.sh
bin/javascript-promise-petstore.sh
bin/javascript-promise-es6-petstore.sh
2018-08-10 21:50:33 +08:00
Yusuke Iinuma afdef8f890 [Ruby] Fix method split (#780)
* Fix methods split for readable

* Recreate sample
2018-08-10 17:25:22 +08:00
Dec12 | Fujigon d019bbd2c7 [Java][jaxrs-jersey] add sample with jaxrs-jersey + openapi v3 (#778)
* create sample with "jaxrs-jersey" language & openapi v3

* circle ci setting

* fix typo. also add "jaxrs-jersey" to all samples profile

* artifactId conflicts. rename.

* generate samples with "./bin/openapi3/jaxrs-jersey-petstore.sh"
2018-08-10 17:24:24 +08:00
William Cheng 748d1d70cb update groupId in pom (#779) 2018-08-10 15:48:19 +08:00
Daniel Miller 987fd77042 [cpp-restsdk] Support multi-line descriptions (#753)
* Update IndentedLambda to take optional prefix

* Add `multiline_comment_4` to CppRestSdkClient

* Update cpp-restsdk example
2018-08-09 19:01:15 -04:00
antihax a0984a9be8 [Core] Resolve Inline Models (#736)
* Add InlineModelResolver.java

* fix inline schema for OAS2 body parameter

* skip warning, fix MapSchema cast error
2018-08-09 23:27:51 +08:00
Jim Schubert 9920c435ca [gradle] Support nullable system property values (#764)
The gradle plugin sets all System properties before generation, then
reverts them back to their original state.

System.getProperty/setProperty return null if the property was not
previously set. The Kotlin map was defined with non-nullable key/value
constraints, so setting something not commonly set (modelDocs: "false")
would result in an runtime exception.

This changes the map to support nullable values, and rather than setting
a null System property at the end, it clears those which previously had
no value.
2018-08-09 15:56:15 +08:00
David Webster 4060fcbb8b Correct URL for openapi-generator.cli.sh in README.md (#770) 2018-08-09 10:42:11 +08:00
Rubén Martínez d0ccac5663 Fixed the generation of model properties whose data type is a composed (allOf) schema (#704)
* #582 Fixed the generation of model properties whose data type is a composed (allOf) schema. Before this fix, the data type name of the generated property was that of the first model participating in the allOf clause. After this fix the property data type is again as expected: the one of the composed schema and not one of its parents.

* Added unit test in order to have regression testing in the fix for the #582 issue (references to composed schemas should not get unaliased for them to get a proper data type name in the generation of model properties).

* Run ./bin/utils/ensure-up-to-date to re-generate samples run in the CI.

* Removed tabs from ModelUtilsTest.java
2018-08-08 13:06:42 -04:00
William Cheng 06263d7606 [JAX-RS][Spec] Add samples to CircleCI (#759)
* test jaxrs spec server petstore in circleci

* remove duplicated entries in pom

* trigger build failure

* Revert "trigger build failure"

This reverts commit 35ac96ed4a.
2018-08-08 11:50:33 +08:00
William Cheng 3245c0a139 minor update to python generator usage (#762) 2018-08-08 11:21:34 +08:00
stkrwork aed8e38584 Merge branch '3.3.x' into 4.0.x 2018-08-07 17:11:21 +02:00
stkrwork 546b54b15d Merge branch 'master' into 3.3.x 2018-08-07 17:10:25 +02:00
stkrwork 0809d8f527 [C++][Restbed/Pistache] Added fix for byte array (#752)
* Added fix for byte array

* Fix spacing

* Adapted default value for ByteArray

* Adapted default value for ByteArray in Pistache Server
2018-08-07 17:07:05 +02:00
sunn baf16cf834 [cpp pistache] use model namespace only on Model import (#733)
Don't use model namespaces when not imported
2018-08-07 15:19:56 +02:00
Dec12 | Fujigon 629608c573 [jaxrs-spec*] samples should be tested. repair import and dependency. (#755)
* sample server projects "jaxrs-spec", "jaxrs-spec-interface", and "jaxrs-spec-interface-response" should be tested

* update jax-rs api to 2.1, in which @PATCH annotation is available
add jackson annotation dependency

* add joda-time to dependency

* modify mustache template to add @JsonCreate, @JsonValue import

* fix return type of enum value() method

* add InputStream import

* Attachment class is in apache cxf. spec should not depend on it

* re-generate sample jaxrs-spec, jaxrs-spec-interface, and jaxrs-spec-interface-response
2018-08-07 16:45:09 +08:00
William Cheng 3746fae2ca Merge remote-tracking branch 'origin/3.3.x' into 4.0.x 2018-08-07 16:04:17 +08:00
sunn e143214685 [cpp pistache] fix leading number in model names and apply modelNamePrefix in all cases (#730)
* Fix numbers in nameInCamelCase. Add possibility to prefix Names to avoid conflicts
* Allow unique prefixing for template functions as well
2018-08-06 22:22:22 +02:00
William Cheng 2340d83a33 add 3.3.0 to readme 2018-08-07 01:39:54 +08:00
William Cheng 69852123e0 prepare 3.3.x branch 2018-08-07 01:35:30 +08:00
William Cheng 90a8b81728 Prepare 3.2.1-SNAPSHOT release (#748)
* prepare 3.2.1 SNAPSHOT release

* update doc to use 3.2.0 stable version
2018-08-07 01:31:37 +08:00
William Cheng 30fb22fffa update readme with links to 3.2.0 JAR 2018-08-06 23:47:36 +08:00
William Cheng f329872ce7 3.2.0 release (#744) 2018-08-06 22:06:39 +08:00
Alexey Alekhin 05db32fea2 [Elm] Template improvements (#661)
* Add elm template parameter to the samples testing script

* Update elm-date-extra package; fixes #458

* Update generated elm samples

* Use Elm doc comments; remove some unneccessary newlines

* Update generated Elm samples

* Remove unnecessary parenthesis around non-optional container type
2018-08-06 18:17:59 +08:00
William Cheng c116c8fb9b [PHP] Decommission "packagePath", add new option "packageName" (#681)
* remove packagePath from php file location, use -o instead

* fix php symfony top folder

* restore pacakgePath

* update php laraavel samples

* remove packagePath from PHP generator

* add new silex files

* update window batch - php silex

* fix openapi3 silex script
2018-08-06 18:10:34 +08:00
William Cheng 1ab4fe43b5 fix petstore security spec to remove validation errors (#739) 2018-08-06 17:02:02 +08:00
Jon Schoning f6c21057e1 [haskell-http-client] regen samples (#709)
* [haskell-http-client] regen samples

* ensure the haskell-http-client samples are always up-to-date
2018-08-05 15:11:52 -05:00
William Cheng c9085b4f2b Update Q&A based on feedback from users (#695)
* update qna based on feedback from users

* Improvements

* minor fix to typo
2018-08-05 17:49:36 +08:00
William Cheng c44d91c673 update petstore samples 2018-08-03 12:36:57 +08:00
William Cheng f6146b212f [PHP] better operationId handling, add CI for PHP slim server (#723)
* better operationId handling, add CI for PHP slim

* use spaces instead of tabs

* replace tab with space

* install php
2018-08-03 10:47:54 +08:00
Akihito Nakano 2b429ee43b [PHP] [Laravel] Fix syntax errors in models (#721)
* Fix syntax errors in Models

* Update samples

./bin/php-laravel-petstore-server.sh
2018-08-03 10:44:12 +08:00
William Cheng be2a0170b7 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-08-03 00:10:34 +08:00
David van Laatum a258cf3fc6 #714 prevent throwing another exception if the request fails eg connection reset (#715)
* prevent throwing another exception if the request fails eg connection reset

* prevent throwing another exception if the request fails eg connection reset
2018-08-03 00:02:09 +08:00
William Cheng 07a5715b9f Add template creator: C++ qt5 server, php laravel (#720) 2018-08-02 22:39:37 +08:00
William Cheng f32398a708 add dockerfile for ror, fix template issue (#718) 2018-08-02 22:07:09 +08:00
William Cheng f0425d77ef [Ruby] Better handling of operationID starting with a number (#719)
* better handling of operationId starting with numbers in Ruby

* update Rubocop to use Layout
2018-08-02 22:00:50 +08:00
William Cheng e0020b41da underscore classVarName to fix route issue in ROR (#706) 2018-08-02 21:42:09 +08:00
William Cheng 375c26ccb3 add option to select db adapter in ror (#711) 2018-08-02 13:52:34 +08:00
William Cheng 40024ac72a [Go] Prefix enum number with _ (#703)
* prefix enum number with _ in go

* reformat code, use else if
2018-08-02 10:13:01 +08:00
William Cheng ab08dd1d26 Better handling of operationID starting with numbers (#691)
* add numeric operationid to test spec

* better handling of operationId in more generators

* fix go toOperationId

* update samples

* update java samples

* update java samples (vertx, webclient)

* update java google api client sample

* fix typo, update OAS3 test spec, update php petstore (oas3)

* defer camelize in operationid

* remove duplicated sanitizeName
2018-08-01 22:31:58 +08:00
William Cheng 21141f682f Fix Javadoc string error in Java (rest-assured) client (#702)
* fix docstring

* trigger build failure

* Revert "trigger build failure"

This reverts commit 12cd26f0ca.

* update java samples
2018-08-01 22:13:41 +08:00
Jeremie Bresson d8ea28e147 Update "phpunit.xml.dist" 2018-08-01 14:43:34 +02:00
Victor Orlovsky 82156b6639 Added constant "httpMethod", "summary" (#697) 2018-08-01 12:02:11 +08:00
Jérémie Bresson 3085bf1df5 [typescript] allow $ in var name (#694) 2018-07-31 19:36:16 +02:00
Yuriy Belenko 58e0946b1e [Slim] Add Basic authentication middleware (#606)
* [Slim] Add Basic Authentication Middleware

User needs to add own implementation to verifyCredentials method in AuthBasic.php.

* [Slim] Update README template

I'm not sure about `middlewareSrcPath` variable. I'll fix it in following PRs
if path is broken.
Hope that notice in README catches attention and most of users will read it.

* Revert "[Slim] Update README template"

This reverts commit 204ee02fd8.

* Revert "[Slim] Add Basic Authentication Middleware"

This reverts commit 6a8e03079a.

* [Slim] Add "tuupola/slim-basic-auth" package

Package "tuupola/slim-basic-auth" 3.1.0 requires PHP 7, that's why I
set it's version to ^3.0.0 in Composer. Minimum version will be
3.0.0-rc.1 which supports PHP 5.5. I've tested build with PHP 7, it
would be nice to check build with PHP 5.5 someday.

* [Slim] Update README template

Not sure about forward slash in path to SlimRouter class. I will fix it
in upcoming PRs if necessary.

* [Slim] Refresh samples
2018-08-01 00:55:30 +08:00
Christoph, René Pardon f793ac25c7 feat (PHP LARAVEL) 8417: initial PHP-laravel codegen integration (#574)
* feat (PHP LARAVEL) 8417: initial PHP-laravel codegen integration

* feat (PHP LARAVEL) 8417: code review adjustments

* feat (PHP LARAVEL) 8417: fix typos; add missing files; adjust readme for those unfamilar with laravel to get started quickly

* feat (PHP LARAVEL) 8417: add sample petstore server

* feat (PHP LARAVEL) 8417: adjust route service provdider and model generation
2018-08-01 00:34:33 +08:00
René Winkelmeyer d1fc923b66 Re-implementation of Apex client code gen (#698) 2018-07-31 23:02:25 +08:00
Jérémie Bresson f1897c4462 Update swagger-parser to "2.0.2-OpenAPITools.org-1" (#696) 2018-07-31 14:02:35 +02:00
William Cheng d8ec6b2003 [Apex] migrating to OpenAPI Generator project (#692)
* [apex] migrating to OpenAPITools

* migrate apex to openapi-generator
2018-07-31 15:28:54 +08:00
Jérémie Bresson 824654964b Use Released version in maven samples (#693)
* Fixing maven examples:  set version to last released version and other improvements
* Include example poms in the "release_version_update_docs.sh" script
2018-07-31 06:32:24 +02:00
William Cheng 0c52fcd5ff udpate rust server samples 2018-07-31 11:33:23 +08:00
sunn 926b971497 [qt5 server] Improvement in response handling (#675)
* Remove warnings and add custom request sending

* Remove duplicate code from subclass and add missing setupRoutes

* Removed redundant override

* Add serialization of responses

* Fix CI failure

* Add inline function to duplicate code.

* Make const reference wherever possible

* Add support for Array of Primitive types.

* Add Array of Primitive support for Error response

* Update for multiple path params
2018-07-31 00:16:46 +08:00
Jérémie Bresson 1e95d36809 Add "Validate spec on generation by default" section (#683) 2018-07-30 17:53:26 +02:00
Benjamin Gill a3e5185e39 Ignore additional properties (#671)
* Ignore additionalProperties

rust-server doen't yet support them, and they cause quite a bit of havoc at the moment (ending up as the `HashMap` type).

* Use .equals() rather than `==`
2018-07-30 23:06:05 +08:00
William Cheng 1cbfca4887 Update instruction to disable validateSpec (#684) 2018-07-30 13:29:05 +02:00
Benjamin Gill b0909ade6f [rust-server] add support for '|' in path segments (#667)
* Added encoding for vertical bar character in object IDs for client requests

* Updated sample
2018-07-30 18:38:52 +08:00
William Cheng 036fa6918c fix operation id starting with number for python client (#682) 2018-07-30 15:42:06 +08:00
sunn b587052de4 cpp-tizen extends AbstractCppCodegen (#676)
* cpp-tizen extends AbstractCppCodegen

* Update javadoc comment
2018-07-30 15:33:00 +08:00
Benjamin Gill cb9a734ebb [rust-server] add support for multiple samples (#658)
* Add support for multiple rust-server samples

Though we only have the one as yet. This will make it easier to move rust-server back on to the main test spec, whilst preserving the ability to have rust-specific test specs.

* Rust samples need unique names

* Move samples to a dedicated directory

So that there is nothing else in the folder where they live so that the workspace definition in the root Cargo.toml can be simple.
2018-07-30 15:31:55 +08:00
William Cheng 01dbb8b693 fix base path when it's not defined in the spec (#678) 2018-07-30 15:09:56 +08:00
Rubén Martínez 68d80ab67d [Java][Client][RestTemplate] Fixed invalid URL-encoding of query parameters (#646)
Fix for the #644
2018-07-30 08:38:10 +02:00
Jérémie Bresson 14ab3d763e Consider cases where complexType is null (#680) 2018-07-29 13:10:58 +02:00
Benjamin Gill 3c3ac0a071 Add extra modules to main dockerfile (#650)
So that the mvn build is successful
2018-07-28 16:10:49 +08:00
Rytis Karpuška 0b88889cdf [cpp] Sanitize identifier names (#631)
* [cpp] Sanitize identifier names

* Remove duplicated methods in cpp code generator subclasses.

* Fix unintended codegen differences in cpp tizen caused by it not extending AbstractCppCodegen class.
2018-07-28 15:23:35 +08:00
William Cheng 2f85867963 update php lumen samples 2018-07-28 10:39:17 +08:00
William Cheng 3b1029ada4 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-07-28 01:12:00 +08:00
William Cheng b33f1f945b add stop wait to spring pom (#670) 2018-07-27 23:41:31 +08:00
Jérémie Bresson c7953ac137 Split release_version_update script in 2 scripts (#657) 2018-07-27 18:32:13 +08:00
sunn 534b6b5978 [cpp qt5 server] Improve qt5 server naming (#655)
* Adapted according to reviews

* Add changed files

* Update beta tag to the naming
2018-07-27 01:49:26 +08:00
Benjamin Gill b6fc29050d Implement stack for Swagger Context (#612) 2018-07-27 01:48:43 +08:00
William Cheng 8cbd57d829 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-07-27 00:29:44 +08:00
William Cheng 7e494e52ab Various improvements (#653)
* improve validation error message

* minor improvement to qt5 c++ server

* fix invalid spec (causing shippable failure)

* Revert "minor improvement to qt5 c++ server"

This reverts commit 56f356cc51.
2018-07-26 23:10:15 +08:00
William Cheng 75e5ed2f68 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-07-26 22:51:23 +08:00
Benjamin Gill 7624a1ff85 Various enhancements to html2 docsgen (#643)
This commit includes the following changes:

- Fix docs not generating parameter descriptions, add rust sample.
- Add example to doc output.
- Add basic scope reporting.
- Stringify the JSON "Example" objects for response schemas.
- Prettify JSON examples in response schemas.
- Parse and present multiline response descriptions.
- Add API error details to docsgen.
- Add read only markers to read only properties.
- Fix up style document indentation.
- Add support for `x-shared-errors`, an extension to define common error types that can be shared across a microservice framework.
2018-07-26 21:57:57 +08:00
Benjamin Gill 1d72edddf6 Avoid HTML escaping of rust-server output (#645) 2018-07-26 21:46:59 +08:00
Akihito Nakano c9b934147a [PHP] Escape media type (#615)
* Move escapeMediaType() to AbstractPhpCodegen

* Escape media type

* Update samples

- bin/php-lumen-petstore-server.sh

* Refactoring: remove unused 'import'
2018-07-26 21:26:01 +08:00
sunn 65bad61abb [Qt5 Server] Add Support for Qt5 server using QHttpEngine (#322)
* Initial wiring to get the QHttpEngine Server running for Qt5 server

* Add wiring for build environment

* Add current generated files

* Update README.md

* Solved Build for Docker and Host
Wired up main
TODO : Route API call to handlers

* Wire up routes

* Wiring up routes update

* Convert Path to QHttpEngine format

* Rename some files

* Extract query Parameters and path parameters

* Removed pri file, Qt can read CMakeLists.txt

* Initial support of deserialization

* Adding initial support for response serialization

* Setup simple signal handler to quite the server with Ctrl+C in a container and on the host

* Remove unneeded function

* Add executable permission to script and move from Debian to Alpine for Dockerfile

* Add stringValue of missing types

* Unify toJson'xxx' APIs the same way like setValue

* Rework to remove all pointer usages, pass by const references, simplify model, add emit signals to default handlers
2018-07-26 18:30:13 +08:00
Jim Schubert 77df3d6770 Validate spec on generation by default (#251)
* Validate spec on generation by default

Adds a validation parameter to CodegenConfigurator, and passes through
options from CLI, Maven Plugin and Gradle Plugin to that property.

Default is to validate the spec during generation. If spec has errors,
we will output errors as well as warnings to the user.

Option can be disabled by passing false to validateSpec (Maven/Gradle)
or --validate-spec (CLI).

* Prepare version 3.1.1-SNAPSHOT

* fix version

* Use last prod version for the sample

* Update README.md

Fix

* [cli] Option parser does not support true/false for boolean options
2018-07-26 17:36:08 +08:00
Jérémie Bresson a8e8acead7 [java] add useNullForUnknownEnumValue option (#633) 2018-07-26 11:00:45 +02:00
Jeremie Bresson 6460bb2897 Merge remote-tracking branch 'origin/master' into 4.0.x 2018-07-25 22:07:47 +02:00
Rytis Karpuška 44d419c1a1 Fix inconsistent parameter names when ensuring uniqueness. (#640) 2018-07-25 21:46:56 +02:00
Jérémie Bresson 60c81eae0a Prepare version 3.2.0 (#651) 2018-07-25 20:27:16 +02:00
Jeremie Bresson 00246f3ea0 Merge remote-tracking branch 'origin/master' into 3.2.x
* Solve Conflicts
* Activate "ensure_up_to_date" script
* Remove references to the "3.2.x" branch

# Conflicts:
#	CI/pom.xml.bash
#	CI/pom.xml.circleci
#	CI/pom.xml.circleci.java7
#	CI/pom.xml.ios
#	modules/openapi-generator-cli/pom.xml
#	modules/openapi-generator-gradle-plugin/gradle.properties
#	modules/openapi-generator-gradle-plugin/pom.xml
#	modules/openapi-generator-maven-plugin/pom.xml
#	modules/openapi-generator-online/Dockerfile
#	modules/openapi-generator-online/pom.xml
#	modules/openapi-generator/pom.xml
#	pom.xml
2018-07-25 18:19:37 +02:00
William Cheng 6f19fa7e91 Release 3.1.2 (#647) 2018-07-25 18:09:52 +02:00
Jeremie Bresson 70cdd27e75 Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-25 16:51:19 +02:00
Jim Schubert c6004a8f89 Adds a simple bash completion script (#277)
* Adds a simple bash completion script

This works with any loading script named openapi-generator-cli.
That is, if you've installed via homebrew or created a script similar
to https://gist.github.com/jimschubert/ce241b0c78140e364f46914ef8ec4103

This script is relatively simple, relying on fallback to the recently
add "completion" command to the CLI project.

The script includes a possible extension to allow for per-language
options to autocomplete when the user is applying additional properties.
This work is currently commented out, as it may be simplified a bit in
the CLI first.

* Add launcher script and "install" instructions
2018-07-25 19:12:41 +08:00
Jérémie Bresson 85f0909c7f Fix parameter in PathItem (#639) 2018-07-25 12:27:05 +02:00
Marvin 37be47fc56 [Java] Escaping properties for java (#628) 2018-07-24 12:41:18 +02:00
William Cheng 86d7009f4c replace tab with spaces, fix empty spaces in new lines (#632) 2018-07-24 17:30:54 +08:00
Daniel Miller 530065137d [cpp-restsdk] Generate mockable APIs (#595)
* Port GMock feature from NativeInstruments

swagger-codegen fork:
https://github.com/NativeInstruments/swagger-codegen/pull/9

* Update petstore for Mockable APIs

* Fix shared_ptr in templates for File params

* Add guards in templates for GMock APIs

* Regenerate samples without GMocks

* Add useful constructors for GMock APIs

* Add constructors to API header interface

* Update samples with explicit monadic constructors

* Add default implementations for destructors
2018-07-24 15:31:21 +08:00
Benjamin Gill 59d38d7dd2 Update the set of propose PR branches (#627) 2018-07-24 07:20:17 +02:00
Ted Epstein 59bd3b6dcb Add RepreZen API Studio to Companies/Projects (#620)
* Add RepreZen API Studio to Companies/Projects

Per discussion with @wing328

* Corrected alphabetical order

Corrected alphabetical order of implementations, in response to review comment from @wing238.
2018-07-24 12:13:28 +08:00
William Cheng 27a356dacf default isAddExternalLibs to true (#626) 2018-07-24 12:08:29 +08:00
William Cheng 22c79cf470 update petstore samples 2018-07-24 11:01:07 +08:00
くろねこまいける 2e1add83e7 BugFix: Dart-lang template bugs (#567)
* BugFix: [Dart] Cannot get/set data from json when underscore("_") is included in spec.yaml's property name

Because the property name is always lowerCamelCase

* BugFix: When type is "Date", it is not correctly output
2018-07-23 23:48:20 +08:00
Euan Kemp 2e6bec7345 [Rust] Split out request logic, implement form parameters (#528)
* [Rust] Move request logic into standalone file

This reduces the number of variables which are used in the generated
operations, thus fixing #512.

This also fixed a TODO related to URI parsing errors.
Other than that, it is meant to be functionally identical.

* [Rust] Add support for non-file form params

Up until now, they just weren't there at all

* [Rust] Use more rustic terms in example
2018-07-23 23:10:53 +08:00
William Cheng 024dde11d7 Merge remote-tracking branch 'origin/3.2.x' into 4.0.x 2018-07-23 23:05:25 +08:00
William Cheng 667e3130fe Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-23 23:04:28 +08:00
Benjamin Gill a9961a062a [rust-server] Drop file support (#547)
* [rust-server] drop 'file' support

In swagger v2, we had 'binary', 'byte', and 'file'. OpenAPI v3 only has
the former two. This commit drops the old 'file' handling. This has the
side-effect of removing a half-complete implementation of form parameter handling.

This removes the ability to send files as streams, so will make life
harder for those wishing to send large files without running out of
memory.

* Remove all remaining uses of `hasFile`
2018-07-23 18:46:35 +08:00
John Wang af3ca293e4 Add link to Go contribution quickstart article (#622) 2018-07-23 18:36:39 +08:00
Jérémie Bresson d42ff75ceb Handle variables in server declaration (#614) 2018-07-23 06:20:41 +02:00
William Cheng 4156bb9f01 remove cpp pistache petstore test from travis ci 2018-07-23 01:01:32 +08:00
William Cheng 5328f103da Add C++ Pistache petstore server to Travis CI (#616)
* test cpp pistache petstore in travis

* make build_petstore executable

* add submodule update init

* use addExternalLibs option

* update samples

* update gcc version to 5

* fix addon, env

* restore cargo path

* trigger build failure, add cache

* undo build failure change
2018-07-22 16:41:20 +08:00
sunn 1dee3e227c [cpp-pistache] add the option to fetch dependencies (#495)
* Add the Possibility to fetch dependencies needed by the generated code

* Fix typo

* Make External Libraries default to false

* Add parameter string to the javadoc comment
2018-07-22 10:46:38 +08:00
Rubén Martínez 0da55081c9 [Java][Client][RestTemplate] Do not create new Object for empty body (#605)
#513 Fixed error that causes exception when trying to perform HTTP requests without a body and an empty Object is used as body instead. In these cases an exception is thrown indicating that it is not possible to find a message converter for java.lang.Object and application/json.
2018-07-20 17:49:12 +02:00
Akihito Nakano af9d57e4b9 [PHP] Remove platform dependency from file path (#610) 2018-07-20 17:45:24 +02:00
Tomasz Prus 8867d2b34c Support for python 3.7 by renaming async to async_req (#519)
* feat: support for python 3.7

* fix: regenerate other sample clients
2018-07-20 22:14:18 +08:00
William Cheng eeda132e73 add badge to maven store and twitter (#607) 2018-07-20 22:12:48 +08:00
sunn 97d6b71460 [cpp-pistache] Fix compilation of petstore for Pistache (#497)
* Fix compilation of petstore for Pistache
Add Map support

* Add support for ByteArray

* Add Support for ByteArray in cpprest

* Implement TODOs
2018-07-20 22:04:25 +08:00
William Cheng 1b2d12286f CircleCI: run Java8, Java7 tests in parallel (#608)
* run circle jobs in parallel

* fix circleci file

* disable parallel run

* fix build type

* fix circleci config parse error

* move mvn install to circle.yml

* revise circleci tests

* trigger test failures

* remove failure trigger
2018-07-20 18:45:14 +08:00
Matthieu Berthomé c70ed678f6 Add "docExtension" option to customize generated file extension for docs (#591) 2018-07-20 07:21:36 +02:00
Reinhard Pilz ab9be95442 Fix arrays with maxItems 2147483647 (#603) 2018-07-19 17:16:15 +02:00
William Cheng 71ef6a0a2b update petstore samples 2018-07-19 19:28:31 +08:00
William Cheng d2db799a93 update petstore samples 2018-07-19 19:06:48 +08:00
William Cheng 07b8040122 Merge remote-tracking branch 'origin/3.2.x' into 4.0.x 2018-07-19 18:56:13 +08:00
William Cheng 888da52181 Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-19 18:46:18 +08:00
Benjamin Gill bd33a333af Ensure rust-server sample is kept up to date (#600) 2018-07-19 18:16:36 +08:00
Georg Rollinger f7617bc628 [typescript][jQuery] Fix promise resolution (#581)
* typescript-jquery: fix promise resolution

The type annotation that is generated for an API states that the
JQueryPromise<...> will be resolved with a single value.
The implementation, on the other hand resolves with two.

This changes the implementation to resolve the promise in accordance
with the type annotation.
It also adds another type specifying what will be passed if the promise
is rejected.

* Update petstore sample for typescript-jquery
2018-07-19 18:04:43 +08:00
Benjamin Gill c5e170961f [rust-server] enhance support for middlewares (#552)
* Generate RequestParser trait to allow retrieving operation ID in middlewares

* Update function name

* Fix incomplete comment

* Add comment poitning out auotgenerated duplication

* Final generation of sample scripts

* MMORCH-913 - Allow passing wrapped hyper clients to codegen

* Deprecate old API for back-compatibility rather than removing it

* Actually test Rust-server example integrations
2018-07-19 18:03:02 +08:00
William Cheng e02e875978 Update gradle dependency for Java RESTEasy API client (#597)
* update resteasy gradle dependency

* remove java8 option when testing resteasy (java)
2018-07-19 17:57:21 +08:00
Marvin 52cd17ecc7 [Java][RESTEasy] Fixed setting of custom headers (#599)
Fixed header generation. Previously the key was used as value parameter.
2018-07-19 11:55:01 +02:00
Dimtiriy Remerov 76160b53c7 [php-symfony] Fixed a bug with access of non-existing property in generated code (#578)
* [php-symfony] Fixed a bug where Controller accessed non-existent property

* [php-symfony] Regenerated petstore sample
2018-07-19 15:32:15 +08:00
Niklas Werner 80cf1324c5 C Generator Sample - Improvements (#558)
* Added a .gitignore to ignore the build folder

* Added a CMakeLists and a basic implementation of a double linked list

* Added the pet model

* changed the behaviour when a list gets freed - the data of each element doesn't get freed anymore

* Added the tool uncrustify in order to make code look better

* Uncrustified code

* added an implementation(constructor and deconstructor) for the category model

* Added a third party JSON library

* The pet struct now uses pointers for its members; the pet struct now has a proper constructor and a basic toJSON method

* The pet model now gets fully serialized into JSON

* Fixed the example url...

* Added third party library libcurl

* Modified category struct and added an unit test

* Added a foreach macro and added two functions

* Added a tag model and an unit test

* the pet struct now uses no double pointer for it's name anymore and no pointer for the enum status anymore; the pet struct can now be fully converted to json and parsed from json

* Added the struct APIClient and an unit test

* Uncrustified the unit test for category

* Added ifdef in pet.h to prevent errors

* Added one API endpoint to get a pet by id

* Added a "== 0" comparison that I forgot

* Added some kind of debug functionality to test-petApi.c

* Removed the DEBUG define

* Moved the c petstore example from samples/client/c to samples/client/petstore/c

* Renamed function getPetById to petApi_getPetById to avoid name collisions

* Removed unecessary method in list.c

* Added POST functionality; added petApi_addPet method and improved unit-test for petApi; cleaned up some code in apiClient

* removed two methods in list.c(string/tag to JSON) and moved their code directly in the pet_convertToJSON method

* Removed old, already commented out, puts artifact in apiClient.c

* Added a convertToJSON method to the category model

* Added a convertToJSON method to the tag model

* changed how the convertToJSON method works in the pet model

* Adjusted the unit-tests on how the convertToJSON method now works(now returns a cJSON* instead of a char*)

* apiClient_t now needs to be given to API methods as a parameter. This means apiClient_t can now be reused in multiple methods.

* Added an untested concept for how authentication could be handled

* Tested basicAuth using wireshark and added untested OAuth2 feature

* Added support for api key authentication using the http-header and tested functionality using wireshark

* Renamed the dataToPost parameter in apiClient_invoke to bodyParameters

* Renamed apiKey_t to keyValuePair_t and implemented GET queries

* Spaces are now being replaced with + in querryParameters

* Renamed assembleHeader to assembleAPIKeyAuthentication and added support to change the request type

* Implemented the option to provide custom httpHeader fields to apiClient_invoke

* Added support for form parameters to the apiClient_invoke method

* update petstore sample
2018-07-19 12:22:38 +08:00
John Wang 0f0d8a01cb [Golang][client] Add option for standard Go generated code comment (#555)
* update go generated code comment

* update samples for go petstore

* update code generation comment

* update samples for go petstore

* Trigger CI due to previous Shippable race condition

* add -DwithGoCodegenComment=true option

* reset samples

* add withGoCodegenComment=true to bin/go-petstore-withxml.sh

* update samples/.../go-petstore-withXml using -DwithGoCodegenComment=true
2018-07-19 12:21:51 +08:00
delenius 995edc0b75 Fix version incompatibility in resteasy client (#594) 2018-07-19 10:50:59 +08:00
Jean-François Côté 5344a02bbc Multiple enhancements to typescript fetch generator (#145) 2018-07-18 13:38:47 -04:00
Jeremie Bresson eb09731a65 Merge remote-tracking branch 'origin/3.2.x' into 4.0.x 2018-07-18 12:32:55 +02:00
Jeremie Bresson 45ed374b62 Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-18 12:19:41 +02:00
Jérémie Bresson 1e596496a5 Prepare 3.1.2-SNAPSHOT (#589) 2018-07-18 11:44:23 +02:00
Jérémie Bresson 761799abf5 Release 3.1.1 (#588) 2018-07-18 09:31:56 +02:00
Jérémie Bresson baaa335664 Add documentation for CodegenDiscriminator (#587) 2018-07-18 09:07:35 +02:00
Daonomic 0a52f56ba4 Support for discriminator.mapping (#536) 2018-07-18 06:14:42 +02:00
William Cheng 7c9d40016f update petstore samples 2018-07-18 01:52:58 +08:00
William Cheng 1d53ed5095 Mark rust-server as migrated (#584) 2018-07-18 01:44:16 +08:00
Akihito Nakano 6d6ef0f120 [PHP] Refactor php client generator (#504)
* Extends AbstractPhpCodegen instead of DefaultCodegen

* Remove fully duplicated methods with AbstractPhpCodegen

* Remove duplicated properties with AbstractPhpCodegen

* Remove duplicated codes in constructor with AbstractPhpCodegen

* Add typeMapping "date". Moved from PhpClientCodegen

refs: https://github.com/OpenAPITools/openapi-generator/pull/504/commits/3c34c0b3773f62d4c2143a14d343827cfa2e0aba#diff-f1801ef05a7926bf394c90f44ae4ab3dL132

* Remove duplicated codes in processOpts()

* Remove unnecessary 'implements'

* Remove unnecessary method override

* Use setter

* Merge getTypeDeclaration() into AbstractPhpCodegen

* Merge processOpts() into AbstractPhpCodegen

refs:
* https://github.com/OpenAPITools/openapi-generator/pull/504/commits/296e6d3db47e19ad2d4327697c1e7d7a2e7c6b5d#diff-f1801ef05a7926bf394c90f44ae4ab3dL139
* https://github.com/OpenAPITools/openapi-generator/pull/504/commits/296e6d3db47e19ad2d4327697c1e7d7a2e7c6b5d#diff-f1801ef05a7926bf394c90f44ae4ab3dL147
* https://github.com/OpenAPITools/openapi-generator/pull/504/commits/296e6d3db47e19ad2d4327697c1e7d7a2e7c6b5d#diff-f1801ef05a7926bf394c90f44ae4ab3dL153

* tweak

* Optimize IF statement

* Remove duplicated methods

* Merge setParameterExampleValue() into AbstractPhpCodegen

* Merge toEnumVarName() into AbstractPhpCodegen

* Merge toEnumName() into AbstractPhpCodegen

* Merge escapeUnsafeCharacters() into AbstractPhpCodegen

* Merge postProcessOperationsWithModels() into AbstractPhpCodegen

* tweak

* Recover missing method

refs: https://github.com/OpenAPITools/openapi-generator/pull/504/commits/2ad0f6f7d44792ac7613735d38a160f48a0defd2#diff-f1801ef05a7926bf394c90f44ae4ab3dL91

* Tweak test case

refs: https://github.com/OpenAPITools/openapi-generator/pull/504/commits/4e7b7afc1a895ce6ffc191eabb73eb846c12306f

* Remove unnecessary 'import'

* Update lumen and ze-ph samples

- ./bin/php-lumen-petstore-server.sh > /dev/null 2>&1
- ./bin/php-ze-ph-petstore-server.sh > /dev/null 2>&1

* Update slim samples

* Fix script name

* Update silex samples

* Update kotlin-server
2018-07-17 09:27:02 +08:00
Akihito Nakano afb238814d [Ruby] Abstract Ruby Codegen (#562)
* Add AbstractRubyCodegen

* Refactor constructor

* Move escapeReservedWord() to AbstractRubyCodegen

* Move getTypeDeclaration() to AbstractRubyCodegen

* Move toDefaultValue() to AbstractRubyCodegen

* Move toVarName() to AbstractRubyCodegen

* Move toParamName() to AbstractRubyCodegen

* Move toOperationId() to AbstractRubyCodegen

* Move escapeQuotationMark() to AbstractRubyCodegen

* Move escapeUnsafeCharacters() to AbstractRubyCodegen

* Use super.escapeReservedWord()

* RubyClientCodegen extends AbstractRubyCodegen

* Add the differences with AbstractRubyCodegen to "reservedWords"

* cliOptions.clear() is not a language specific matter

- Rails, Sinatra requires cliOptions.clear()
- Ruby client doesn't requires that

* Remove duplicated statements with AbstractRubyCodegen

* Remove duplicated methods with AbstractRubyCodegen

* Merge toVarName() into AbstractRubyCodegen

* Merge getTypeDeclaration() into AbstractRubyCodegen

* Merge toDefaultValue() into AbstractRubyCodegen

* Update Ruby related samples

- bin/ruby-client-petstore.sh
- bin/ruby-on-rails-server-petstore.sh
- bin/ruby-sinatra-server-petstore.sh

* Remove unnecessary 'import'

* Avoid unnecessary HTML escaping
2018-07-17 09:08:42 +08:00
Akihito Nakano a055dc0351 Add ybelenko to PHP technical committee (#575) 2018-07-16 22:13:08 +08:00
William Cheng f98000753d update petstore samples 2018-07-16 16:59:45 +08:00
Matthieu Berthomé 84ef98f067 [Python][Client] pure library client package (#470)
* Python client pure library package

* check onlyPackage CLI option

* run /bin/python-petstore.sh, update the python samples for CI

* onlyPackage local variable instead of classp property

* fix CI: __future__ absolute_import must be first in file

* update samples

* generateSourceCodeOnly

* updated samples
2018-07-16 15:49:08 +08:00
Yuriy Belenko 925ae68167 [Slim] Generation of UnitTest stubs (#566)
* [Slim] Add PHPUnit4 to Composer

* [Slim] Configure PHPUnit

* [Slim] Add Model and Api test templates

* [Slim] Refresh Slim samples
2018-07-16 14:25:48 +09:00
William Cheng d863c3e5f4 Add travis.yml to test java6 option (#568)
Add travis.yml to test java6 option, update Java (Jersey2) dependencies
2018-07-15 16:00:07 +08:00
Jérémie Bresson 5a0a8f6a87 Java6 support: fix pom and gradle files, avoid diamond notation (#560) 2018-07-14 21:13:23 +08:00
William Cheng df815344d1 fix NPE in body parameter due to incorrect parameter/consume (#563) 2018-07-14 20:19:10 +08:00
Daniel Miller a6e15d7569 Fix handling of UUID types (#554) 2018-07-14 16:42:24 +08:00
William Cheng deb5dcaad1 Merge remote-tracking branch 'origin/3.2.x' into 4.0.x 2018-07-14 01:42:02 +08:00
William Cheng 478d6ced4e Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-14 01:35:54 +08:00
Jean-François Côté 791f836e3d This fix the problem of having UNKNOWN_BASE_TYPE and "Object" type (#383) 2018-07-14 01:30:07 +08:00
jason-cohen cd854b2130 Add check for list size before attempting to set last element field value. (#557) 2018-07-13 23:42:14 +08:00
Akihito Nakano 26e70fe642 [Ruby] Rename files/folders (#534)
* Rename templateDir: rails5 -> ruby-on-rails-server

* Rename script: rails5-petstore-server.sh -> ruby-on-rails-server-petstore.sh

* Rename sample folder: rails5 -> ruby-on-rails

* Rename script(openapi3): rails5-petstore-server.sh -> ruby-on-rails-server-petstore.sh

* Update ruby-on-rails-server-petstore.sh

* Rename templateDir: sinatra -> ruby-sinatra-server

* Rename script: sinatra-petstore-server.sh -> ruby-sinatra-server-petstore.sh

* Rename sample folder: sinatra -> ruby-sinatra

* Update script

* Rename templateDir: ruby -> ruby-client

* Rename script: ruby-petstore.sh -> ruby-client-petstore.sh

* Update scripts

* Update samples

- bin/ruby-sinatra-server-petstore.sh
- bin/ruby-on-rails-server-petstore.sh
- bin/ruby-client-petstore.sh
- bin/security/ruby-client-petstore.sh
2018-07-13 22:28:17 +08:00
Jeremie Bresson 0cc60d39d2 Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-13 07:25:49 +02:00
Benjamin Gill 6c14b4271f Handle headers correctly (#549)
We were previously relying on some incorrect behaviour of the old
swagger-codegen mustache engine.
2018-07-13 01:55:56 +08:00
John Wang 19fd48e33b [Golang][client] fix formData file parameter name use (#506)
* support form-data file MIME `name` parameter

* update test spec and Go client for form-data file name

* update samples for ensure-up-to-date

* update mustache template

* update samples for Go client

* improve assignment location

* update samples
2018-07-13 00:53:38 +08:00
John Wang 93832340a5 add RFC-3339 formatting to parameterToString (#502) 2018-07-13 00:50:21 +08:00
Tomasz Prus a0936bec02 feat: use local_var_params to avoid collision with api parameters (#521) 2018-07-12 21:30:57 +08:00
William Cheng a18a50b7a4 Add an entry to clarify the Q&A page (#544) 2018-07-12 15:30:45 +02:00
William Cheng d17bdd2658 Improve CircleCI caching (#539)
* show ivy2 cache

* fix typo

* list dir before saving cache

* list dir before saving cache

* cache .git

* replace tab with space

* remove ls

* restore tests
2018-07-12 13:16:33 +08:00
Jérémie Bresson 84129a7da1 Remove secondary dependencies (#529) 2018-07-11 12:14:46 +02:00
William Cheng 0d952b79db Improve logging in Python client (#480)
* improve logging in python client

* update samples
2018-07-10 22:12:09 +08:00
Dennis Kieselhorst 0a2131d2d3 update CXF and Jackson to latest version (#496) 2018-07-10 18:23:18 +08:00
John Wang 86a0445984 Add default http scheme for server URL, Fix #181 (#498) 2018-07-09 10:45:28 +08:00
Akihito Nakano 837b10aab5 Fix script names (#508) 2018-07-08 23:05:27 +08:00
John Wang 9103ddb7fa add graceful error for io.airlift.airline.ParseArgumentsUnexpectedException (#494) 2018-07-08 23:00:22 +08:00
Tomasz Prus 96e86ac03e update and fix python samples (#489)
* fix: update petstore samples for python, fix broken tests

* chore: entries for python-asyncio/tornado in gitignore
2018-07-08 15:29:55 +08:00
William Cheng 950c584485 [WIP] Add release checkout script (#485)
* add release checkout script

* add check for docker images
2018-07-08 13:07:26 +08:00
sunn 6d05ea5716 Allow generated code to do cleanup of object by preventing premature loop exit (#270) 2018-07-08 12:55:27 +08:00
Jon Schoning 79fafda012 [haskell-http-client] regen samples (#492) 2018-07-08 12:46:35 +08:00
John Wang a14e757059 fix cache-expires-ineffassign (#466) 2018-07-08 12:38:04 +08:00
Jeremie Bresson 7f4fc4de93 Merge remote-tracking branch 'origin/3.2.x' into 4.0.x 2018-07-07 15:29:36 +02:00
Jeremie Bresson 8f6bb8d9ec Merge remote-tracking branch 'origin/master' into 3.2.x 2018-07-07 09:13:54 +02:00
John Wang b380e8f2a9 [CLI] Add --generator-name / -g to config-help (#491) 2018-07-07 07:48:47 +02:00
Jérémie Bresson 0d959a254c Update README.md (#493)
Mention branch 3.2.x and version 3.2.0
2018-07-07 07:47:35 +02:00
Jeremie Bresson 23c04e2e66 Prepare version 3.2.0-SNAPSHOT 2018-07-07 06:14:58 +02:00
Johannes Hoppe 4797c7b42c Update README.md (#488) 2018-07-07 06:06:30 +02:00
Jérémie Bresson 4b6fb504a2 Prepare version 3.1.1-SNAPSHOT (#487) 2018-07-07 06:05:19 +02:00
William Cheng 100ec449fe 3.1.0 release (#486)
* 3.1.0 release

* Comment ./bin/utils/ensure-up-to-date
2018-07-06 23:37:48 +08:00
William Cheng 790f3d46aa Fix broken link to openapi generator plugin README (#484) 2018-07-06 19:11:34 +08:00
William Cheng 7404ecb11e show warning message for nodejs server only (#481) 2018-07-06 17:29:49 +08:00
William Cheng a714bf4720 Add grokify to Go technical committee (#479) 2018-07-06 14:38:02 +08:00
Yuriy Belenko 9eeedede49 [Slim] Improve codebase decouple (#438)
* [Slim] Decouple Api files into separated PHP Classes

This enhancement required for modular testing and code coverage generating.

* [Slim] Define all app routes in SlimRouter PHP Class. Generate new samples
2018-07-06 14:37:14 +08:00
Esteban Marin 3408866b79 Ensure typescript samples are up to date (#444)
See #80
2018-07-06 07:56:51 +02:00
William Cheng 804094bf51 Update README.md 2018-07-06 13:45:34 +08:00
John Wang 869b17fe29 [Golang][client] delete sample output dir before rebuild (#477)
* delete Go client sample output dir before rebuild

* purge go-petstore-withXml samples output dir before build

* update samples

* fix go-petstore-withxml.sh echo path
2018-07-06 12:20:13 +08:00
William Cheng 867aaa4c27 update petstore samples (#478) 2018-07-06 12:08:20 +08:00
Jeremie Bresson d43801a9b7 Revert "Improve Docker Tags (#390)"
This reverts commits:

* 036570d93d.
* edf24d859c.
2018-07-06 05:28:10 +02:00
John Wang 7eb2acaf71 update go client test dependencies (#468) 2018-07-05 20:34:32 +08:00
John Wang 0bffdf2463 [Golang][client] fix for schema definition name file (#433)
* fix schema/definition name as 'file'

* update samples

* Trigger CI due to previous Shippable race condition

* add fix with toModelName(openAPIType)

* update tests for file schema/definition name

* Update 3.0 test spec

* update samples

* update samples for jaxrs-cxf

* Trigger CI due to previous Shippable race condition

* add back explode
2018-07-05 20:32:24 +08:00
Jeremie Bresson 036570d93d Fix '.travis' file (syntax) 2018-07-05 12:03:47 +02:00
John Wang 60da6fb2e1 make LICENSE GitHub display compatible (#467) 2018-07-05 10:08:52 +02:00
Jérémie Bresson edf24d859c Improve Docker Tags (#390) 2018-07-05 14:40:06 +08:00
John Wang 33fcd28dba [Golang][client] fix file suffix for _test.go (#449)
* add file suffix fix for _test.go

* Trigger CI due to previous Shippable race condition

* Trigger CI due to previous Shippable race condition

* Trigger CI due to previous Travis CI stall

* Trigger CI due to previous Travis CI stall

* Trigger CI due to previous Shippable race condition

* add Go client test testFilenames
2018-07-05 14:02:10 +08:00
Jérémie Bresson 8fb413107c Remove copy section (#463) 2018-07-05 13:33:08 +08:00
William Cheng f976887f23 Add link to presentation (#465) 2018-07-05 13:05:07 +08:00
Jérémie Bresson ab8ec45b50 Use postProcessOperationsWithModels(Map, List) (#431)
Instead of postProcessOperations(Map)
2018-07-05 12:31:06 +08:00
Niklas Werner 96e0814510 [C] Adding petstore sample written in C (#306)
* Added a .gitignore to ignore the build folder

* Added a CMakeLists and a basic implementation of a double linked list

* Added the pet model

* changed the behaviour when a list gets freed - the data of each element doesn't get freed anymore

* Added the tool uncrustify in order to make code look better

* Uncrustified code

* added an implementation(constructor and deconstructor) for the category model

* Added a third party JSON library

* The pet struct now uses pointers for its members; the pet struct now has a proper constructor and a basic toJSON method

* The pet model now gets fully serialized into JSON

* Fixed the example url...

* Added third party library libcurl

* Modified category struct and added an unit test

* Added a foreach macro and added two functions

* Added a tag model and an unit test

* the pet struct now uses no double pointer for it's name anymore and no pointer for the enum status anymore; the pet struct can now be fully converted to json and parsed from json

* Added the struct APIClient and an unit test

* Uncrustified the unit test for category

* Added ifdef in pet.h to prevent errors

* Added one API endpoint to get a pet by id

* Added a "== 0" comparison that I forgot

* Added some kind of debug functionality to test-petApi.c

* Removed the DEBUG define

* Moved the c petstore example from samples/client/c to samples/client/petstore/c

* Renamed function getPetById to petApi_getPetById to avoid name collisions

* Removed unecessary method in list.c

* Added POST functionality; added petApi_addPet method and improved unit-test for petApi; cleaned up some code in apiClient

* removed two methods in list.c(string/tag to JSON) and moved their code directly in the pet_convertToJSON method

* Removed old, already commented out, puts artifact in apiClient.c

* Added a convertToJSON method to the category model

* Added a convertToJSON method to the tag model

* changed how the convertToJSON method works in the pet model

* Adjusted the unit-tests on how the convertToJSON method now works(now returns a cJSON* instead of a char*)

* apiClient_t now needs to be given to API methods as a parameter. This means apiClient_t can now be reused in multiple methods.

* Added an untested concept for how authentication could be handled

* Tested basicAuth using wireshark and added untested OAuth2 feature

* Added support for api key authentication using the http-header and tested functionality using wireshark
2018-07-05 12:28:43 +08:00
Jérémie Bresson 1d69566cb1 Sanitize pipe in var name (#461) 2018-07-05 12:26:46 +08:00
Jérémie Bresson b0cae23777 [java-client] WebClient requires java8 (#460)
* Usage of webclient library forces java8 to be true

* Run bin/java-petstore-webclient.sh
2018-07-05 12:26:02 +08:00
Akihito Nakano ef2b372dd3 [Node.js] Add a message which notify that the generated server doesn't work (#456)
* Add message which notify that the server doesn't work

* Update samples
2018-07-05 12:25:17 +08:00
John Wang 00354d3264 [jaxrs-cfx][server] delete output dir before building sample files (#452)
bin/jaxrs-cxf-petstore-server.sh:

* delete output dir before building sample
* add comment before deleting files
2018-07-05 05:45:03 +02:00
John Wang 2577e48feb [README.md] minor fixes incl. spelling, links, sorting, formatting (#462)
* minor README.md fixes: link, spelling, sorting, formatting
* add PowerShell to Technical Committee list
2018-07-05 05:33:14 +02:00
developersteve 020883fd4d [Java] version in the generated README dependent from {{java8}} (#380) 2018-07-04 13:05:14 +02:00
Jeremie Bresson f8e5c410a2 Run bin/java-petstore-webclient.sh 2018-07-04 09:58:52 +02:00
Daonomic b90c53deb6 [Java-client] Add Spring 5 WebClient as new library (#435) 2018-07-04 09:40:57 +02:00
TNM Technologies d6e950f681 [jaxrs-resteasy] multiple values for @Produces annotation are separated by a comma (#445)
* fix: The values for @Produces annotation were not separated by a comma.
* Add test case for #443
2018-07-03 23:46:24 +02:00
Geoff Brown 960412a9b4 Restructure TypeScript Node generation into separate files (PHNX-1041) (#363) 2018-07-03 17:03:40 +02:00
Jérémie Bresson 7a7e221210 [Java] option for the prefix of boolean getters (#432)
* Add "booleanGetterPrefix" option
* Create `docs/migration-guide.adoc`
2018-07-03 17:00:15 +02:00
Jérémie Bresson 3d64bd0c49 [java-jaxrs] Fix paths when useTags=true is used (#437)
* Add test case for the existing implementation
* Introduce {{commonPath}}
* Update samples
2018-07-03 15:31:26 +02:00
Akihito Nakano 0137763997 Improve generation of README which has long description (#400)
* Add `appDescriptionWithNewLines`

* Add test case for escapeText as well

* Ruby client allows new lines in README

* Add doc comment

* fix issue related to github web gui

* the case of no description provided

* Run `./bin/utils/ensure-up-to-date`

https://app.shippable.com/github/OpenAPITools/openapi-generator/runs/1118/1/console
2018-07-03 21:25:27 +08:00
tomvangreen dcc0c17a29 typescript-angular: add serviceSuffix and serviceFileSuffix parameters suffix (#418) 2018-07-03 13:38:21 +02:00
Raphael Ochsenbein be68ef502e Inject basepath through configuration in generated service for angular, create test cases for angular 6 (#367) 2018-07-03 17:55:26 +08:00
Günther Grill c1eda61874 Fix some Kotlin formatting issues and make source more Kotlin like (#427) 2018-07-03 08:25:48 +02:00
sunn bece8d2a39 [aspnetcore] Add processing of Port defined in spec (#368) 2018-07-03 08:23:43 +02:00
sunn 83e14a7b44 [golang] Fix Null pointer exception in toVarName (#377) 2018-07-03 05:58:05 +02:00
Jérémie Bresson 001f5ae50d Mock generator for tests (#429)
Create MockDefaultGenerator class for tests
2018-07-02 17:38:07 +02:00
William Cheng 862fe79f32 Minor improvement to Go client generator, move test case (#430)
* move test cases to under fake endpoint

* remove trailing spaces in the template

* update samples

* add new file

* minor fix to OAS3 spec
2018-07-02 10:23:12 +08:00
Yuriy Belenko 412923ab5f [Slim] Refactoring (#402)
* [Slim] Cleanup samples. composer.lock excluded from .gitignore

composer.lcok should be commited to SVN. Official recommendation https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control

* [Slim] Refactor. Extend AbstractPhpCodegen class

* [Slim] Adjust the names (script, sample folder, generator) to lang option
2018-07-02 00:16:55 +08:00
Jeremie Bresson e172379f04 Update jersey samples 2018-07-01 17:43:19 +02:00
John Wang e960fe9512 [Golang][client] fix undefined: localVarFile (#382)
* fix undefined: localVarFile

* add required formData file endpoints to 2.0 and 3.0 specs

* streamline api.mustache update

* update sampels

* update samples

* update samples

* update samples bin/jaxrs-cxf-client-petstore.sh

* update samples

* update samples

* update samples run-all-petstore

* update samples

* update samples

* Trigger CI due to race condition

* update samples

* update samples

* Trigger CI due to previous timeout

* Trigger CI due to previous Shippable timeout

* Trigger CI due to previous Shippable race condition
2018-07-01 16:58:45 +08:00
Akihito Nakano 8bddf12e05 [Ruby] Make rake tasks required to publish gem available (#424)
* Make tasks reuired to publish gem available

https://github.com/OpenAPITools/openapi-generator/issues/423

* Update samples

- bin/ruby-petstore.sh
- bin/security/ruby-petstore.sh
2018-07-01 14:36:48 +08:00
Jérémie Bresson a02b313b89 ModelUtils: isMap only if additionalProperties is a Schema (#410)
Fix for issue #409
2018-07-01 07:31:36 +02:00
Akihito Nakano 8e648e4d95 [PHP] Remove unnecessary IF statement (#421)
* Delete unused IF statement

JSON_PRETTY_PRINT is available since PHP 5.4.0

* Update samples

- bin/php-petstore.sh
- bin/security/php-petstore.sh
- bin/openapi3/php-petstore.sh
2018-06-30 20:30:25 +09:00
William Cheng e5a42ab277 add link to presentation at JHipster conf 2008 (#422) 2018-06-30 18:52:11 +08:00
Jérémie Bresson 2604c935cf Add test cases for addProducesInfo(..) (#420) 2018-06-30 10:29:10 +02:00
Thomas Townsend 79856abae9 Fix subResourcePath when using tags in java-jersey (#215) 2018-06-30 10:23:04 +02:00
Jérémie Bresson 1f1a47c57b Obtain the example value from examples (#419)
* Fix error: "GET operations can not have a requestBody"
* Add support for "examples" in addition to "support example"
2018-06-30 06:58:30 +02:00
Akihito Nakano 0c11718917 Revise how to obtain the example value (#183) 2018-06-28 18:14:01 +02:00
Jeremie Bresson 7938677efa Merge remote-tracking branch 'origin/3.1.x' into 4.0.x 2018-06-28 07:04:03 +02:00
Jérémie Bresson 9b909df543 Prepare 3.1.0-SNAPSHOT (#408) 2018-06-28 06:52:40 +02:00
akihito.nakano aedd2dea45 Update badges 2018-06-28 07:37:17 +09:00
akihito.nakano 5154712050 Use last prod version in docs/examples 2018-06-28 07:27:31 +09:00
akihito.nakano 76d87183c0 Use last prod version 2018-06-28 01:12:23 +09:00
akihito.nakano 0e31e4cff5 Re-enable ./bin/utils/ensure-up-to-date 2018-06-28 00:55:00 +09:00
akihito.nakano 23571046fb Merge remote-tracking branch 'upstream/master' into prepare-310 2018-06-28 00:53:58 +09:00
Akihito Nakano 34ad6d5ac8 Release 3.0.3 (#406)
* Remove the SNAPSHOT version

bin/utils/release_version_update.sh 3.0.3-SNAPSHOT 3.0.3

* Disable ensure-up-to-date temporarily
2018-06-27 22:44:56 +09:00
Jean-François Côté 9990ddbe52 Merge pull request #385 from etherealjoy/fix_new_keyword_collection
[aspnetcore] Fix new keyword collection
2018-06-27 08:07:38 -04:00
Thibault Duperron b6717a5bad [Java, kotlin] Manage List<Integer> datatype for enum (#75) 2018-06-27 05:51:35 +02:00
Jérémie Bresson ea81b0c833 Restore unit test that consider minLength, maxLength and pattern (#401)
when they are defined in a in referenced schema

Originally introduced with 6b8079808b (#45), 
commented with 85090f5068 (#82).
2018-06-26 09:11:27 +02:00
John Wang 0eb385c0d6 Update path in error message (#403) 2018-06-26 09:05:21 +02:00
Jeremie Bresson b0c02d8ea6 Merge remote-tracking branch 'origin/3.1.x' into 4.0.x
# Conflicts:
#	samples/server/petstore/kotlin-server/ktor/.openapi-generator/VERSION
#	samples/server/petstore/kotlin-server/ktor/README.md
#	samples/server/petstore/php-silex/.openapi-generator/VERSION
2018-06-25 19:09:41 +02:00
Jeremie Bresson 66b73e906e Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-25 18:58:54 +02:00
Benjamin Gill d3b1721da0 [rust-server] Update to error-chain 0.12 (#395)
* Update to error-chain 0.12: 0.11 doesn't work with Rust 1.27.0 (new warnings)
* Revert commit 845df89e95
2018-06-25 18:17:47 +02:00
Akihito Nakano 9e2fcda357 [JMeter] Rename codegen class, template folder (#387)
* Rename JMeter client generator class name

* Rename jmeter template folder

* Update samples
2018-06-25 13:46:52 +08:00
tomvangreen 38bb732673 Typescript Angular 2: Make service suffix configurable (#341)
* Added serviceSuffix and serviceFileSuffix parameters to control the suffixes of generated class and file names

* Updated TypeScriptAngularClientOptionsProvider to include the new serviceSuffix and serviceFileSuffix parameters

* Fixed part in generator where hardcoded 'Service' suffix was used.

* Made the . in the service file name part of the config setting

* Updated cli message
2018-06-25 12:17:32 +08:00
Jan Prieser a0bfe2bf72 WIP: new javascript flowtyped generator (#176)
New Javascript flowtyped generator
2018-06-25 12:04:10 +08:00
sunn c01f4bf220 [cpp-qt5] sanitize model names (#388)
* Escape characters that have language significance

* Remove assignment to parameter variable
2018-06-25 11:51:24 +08:00
etherealjoy f45ec312ee Updated as requested to use isMapModel 2018-06-24 09:21:47 +02:00
etherealjoy dd4b1aff2e Update samples 2018-06-24 00:46:23 +02:00
sunn 92a0e4e7d8 Remove 'new' keyword from collection 2018-06-24 00:28:53 +02:00
Yuriy Belenko 36f4452351 [Slim] Upgrade API server integration tests to use Fake Petstore spec (#354)
* [Slim] Shell script points to petstore-with-fake-endpoints-models-for-testing.yaml. Slim init and new models has been generated.

* [Slim] Bugfix. Special value */* in opperation produces escaped to avoid PHP syntax errors.

* [Slim] Add own private static final LOGGER

* [Slim] Bugfix. toModelName method copied from PHPClient codegen which handles Fake Petstore spec much better.

* [Slim] Sort operations in supporting files data to avoid shadowing static routes.

* [Slim] Mustache index.php update. Params parsing enhanced.

* [Slim] Tiny cleanup. Unnecessary empty space removed.

* [Slim] Security fix. toOperationId method copied from PhpClientCodegen.

* [Slim] Bugfix. formData params parsing restored.

* [Slim] Proper .gitignore added to PhpSlimServerCodegen. Vendor folder with all dependencies removed to keep repo more clean.

* [Slim] Slim dependency update to 3.10.0. Few test fake endpoints fixed by this upgrade.
2018-06-23 12:10:38 +09:00
William Cheng 845df89e95 disable rust server test due to lint error (#379) 2018-06-23 10:32:30 +08:00
Jérémie Bresson 8f4df45fb4 Consider ComposedSchema in DefaultCodegen#fromRequestBody(..) (#358) 2018-06-22 10:44:14 +02:00
stkrwork 23ab5177b3 [C++][Pistache] Fix optional error and wrong function signatures (#264)
* Added missing includes for optional

* Removed shared pointer from pistache generator

* Changed Net namespace to Pistache Namespace

* Clean up code and removed unnecessary lines in mustache files

* Removed remaining shared pointer syntax

* Code review fixes + updated samples

* Added const to all model setter functions, and reference to all params in setters that are not primitives

* Refactored modelbase

* Removed const

* Updated samples
2018-06-22 09:12:35 +08:00
William Cheng 825e4e99e3 disable erlang server test due to dependency issue (#375) 2018-06-22 01:20:38 +08:00
William Cheng 4cb51ac7c1 add wording to clarify the relationship with OAI (#374) 2018-06-21 11:36:39 -04:00
William Cheng a897feef50 Fix alias to map in the model's properties (#360)
* add test case for ref to map (boolean) in fake petstore spec

* fix alias to map in model properties

* remove logging from new method

* update samples for the new map test case

* fix javadoc string

* skip testSanitizeNestedInvalidValue in php test

* skip test in php oas3 client

* add logic to handle outer enum

* update samples

* fix alias in model's allOf

* generate models for map def

* update petstore samples

* update petstore samples
2018-06-21 22:59:02 +08:00
William Cheng f4a534855c add an update to the Q&A (#371) 2018-06-21 10:16:12 -04:00
William Cheng a0f71cc328 update go client, server petstore samples (#365) 2018-06-21 21:59:56 +08:00
Jérémie Bresson 5884db97d4 Fixes for maven deploy (#366)
gradle-plugin-mvn-wrapper:
* Fix disabling of install and deploy
* Set skipNexusStagingDeployMojo to true
2018-06-21 15:05:38 +02:00
Geoff Brown 12ab7e2752 Use case sensitivity when checking reserved words (PHNX-1040) (#3) (#351)
Motivation
-------------
Open API generator previously wasn't case sensitive when checking for reserved words in the typescript generator. This will allow us to have the "Package" model in ProductCatalogs without needing to rename anything.

Modifications
------------------
Duplicated the C# logic for reserved words (per the @jimschubert from openapitools' suggestion)
2018-06-21 17:34:22 +08:00
Akihito Nakano e23b2f6fcc [Scala][client] Rename script, sample folder, template dir (#334)
* Rename scripts akka-scala-petstore.sh -> scala-akka-petstore.sh

* Rename sample folder: akka-scala -> scala-akka

* Rename templateDir: akka-scala -> scala-akka-client

* Rename scripts: scala-petstore.sh -> scala-httpclient-petstore.sh

* Rename sample folder: scala -> scala-httpclient

* Rename templateDir: scala -> scala-httpclient

* update circle pom.xml for new scala path

* remove duplicated scala test
2018-06-21 17:28:58 +08:00
Joe Elliott 5b5fe3cad9 [Swift 4] add compatibility for unwrapRequired config option (#229)
* Added support for unwrapRequired in Swift 4

* Update petstore generators for Swift.
2018-06-21 16:52:02 +08:00
ilk 4664c07034 [go] Fix issue #51, change object mapping from *interface{} to map[string]interface (#60) 2018-06-21 13:36:28 +08:00
Jeremie Bresson 9509e66ae8 Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-21 07:33:59 +02:00
Mads Føhns d19a2faf8e [php] Correctly handle multiple valid responses (#128)
* #125: Correctly handle multiple valid responses

* Fixed defaultResponses

* Fixed void-returns

* Fixed multiple return-types without an actual type

* Update the samples under openapi3 folder
2018-06-20 21:26:23 +09:00
Jérémie Bresson 3c9cf1dcd6 Restore unit test (#346)
* Restore test classes to commit 5340c35ce1

* Fix samples/client/petstore/java/feign

* Fix samples/client/petstore/java/jersey1

* Fix samples/client/petstore/java/jersey2-java8

* Fix samples/client/petstore/java/jersey2

* Fix samples/client/petstore/java/okhttp-gson

* Fix samples/client/petstore/java/resttemplate/src/test/java

* Move "StringUtilTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Fix echo line

* Move tests to 'test-manual/common/'

* Move "ApiClientTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Move "ConfigurationTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Move "auth/ApiKeyAuthTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Move "auth/HttpBasicAuthTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Move "model/EnumValueTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Move "JSONTest.java" to "samples.ci"

and add copy command in *.sh scripts

* Replace "cp" => "mkdir & cp"

* JSONTest.java is java8 specific

* Run bin/java-petstore-all.sh

* "$_" does not work on Shippable
2018-06-20 15:40:58 +08:00
Jim Schubert 231202d0a3 Initial roadmap (#295)
* Initial roadmap
2018-06-20 00:29:17 -04:00
developersteve 9151f65702 Adding in Telstra (#357)
as a company using openapi-generator
2018-06-20 11:59:25 +08:00
Jeremie Bresson 478b0d6101 Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-19 07:32:52 +02:00
Jérémie Bresson 9511586f07 Prepare 3.0.3-SNAPSHOT (#338) 2018-06-18 09:32:11 +02:00
Jérémie Bresson 74914b6313 Prepare release 3.0.2 (#337) 2018-06-18 07:19:53 +02:00
John Wang 30d10213ec Add links for released versions in compat table (#336) 2018-06-18 04:51:05 +02:00
Ben Wells c51986d657 Go server clean up (#328) 2018-06-18 01:09:48 +08:00
Jim Schubert 97bab928bd [cli] Enable recommendations on validate command (#292) 2018-06-18 01:09:21 +08:00
Akihito Nakano 75171b4672 [C++] Rename template dir (#332)
* Rename templateDir: pistache-server -> cpp-pistache-server

* Rename templateDir: qt5cpp -> cpp-qt5-client

* Rename templateDir: restbed -> cpp-restbed-server

* Rename templateDir: cpprest -> cpp-rest-sdk-client

* Rename templateDir: tizen -> cpp-tizen-client

* Update scripts
2018-06-17 19:56:56 +09:00
William Cheng 7c49bdd953 CircleCI migration from 1.0 to 2.0 (#333)
* migration to circleci 2.0 config

* install docker compose

* add setup remote docker

* comment out docker compose

* using public petstore for testing

* use only one working_directory

* use openapitools/openapi-petstore instead

* disable auth in petstore server

* run petstore server locally via mvn jetty

* fix typo

* test go first

* test pet server at port 8080

* remove docker compose command

* wait for server to start up

* sleep longer

* test mvn jetty again

* use machine executor

* comment out docker

* comment out restore cache

* sleep for 30s

* change petstore port

* restore petstore docker

* fix docker run command

* restore cache, clean up comments
2018-06-17 14:52:37 +08:00
shigeru.nakajima 86a82d103e Eliminate MySQL dependency of Rails 5 stub server (#279)
* [rails] In order to set up the Ruby on Rails stub server easily, remove the dependency on MySQL

* [rails] Update sample codes of Ruby on Rails stub server
2018-06-17 12:44:25 +08:00
delenius c607ea8b31 Add fixes for es6 generator (#180)
Various fixes for JS (ES6) generator
2018-06-17 01:59:23 +08:00
William Cheng 53d9878cf2 Update Petstore samples (#331)
* Grammar and spelling fixes

* update petstore samples
2018-06-17 01:33:36 +08:00
Ville Skyttä 798bf61fde Grammar and spelling fixes (#329) 2018-06-17 00:49:01 +08:00
William Cheng e5635d236d update brew readme (#330) 2018-06-16 21:21:18 +08:00
William Cheng 05f177b6d6 [PHP-Lumen] Lumen 5.6 support (#212)
* Lumen 5.6 support

* recall headlines

* Update composer.mustache

* regenerate lumne php petstore samples

* remove output format from lumen routes

* Fix: "A facade root has not been set"

* Ignore log folder
2018-06-16 19:07:13 +08:00
William Cheng b1921ce484 Merge remote-tracking branch 'origin/3.1.x' into 4.0.x 2018-06-16 19:03:14 +08:00
William Cheng cb28ada0aa Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-16 19:02:17 +08:00
John Wang a20f93b42f [Golang][client] fix RFC-3339 date-time query param (#325) 2018-06-16 00:29:24 +08:00
William Cheng 6c996a7d1a Various improvement to CI (#326)
* Various improvement to CI

* trigger a failure

* disable ensure up-to-date script

* move ensure-up-to-date under bin/utils, pipe update to /dev/null
2018-06-15 16:18:31 +08:00
Jérémie Bresson 5630746794 Remove "CI/pom.xml.shippable" (#319)
Remove Shippable CI specific pom file to avoid duplicates
2018-06-15 06:55:33 +02:00
Jeremie Bresson 4a4fb77081 Merge remote-tracking branch 'origin/3.1.x' into 4.0.x 2018-06-14 13:30:57 +02:00
Jeremie Bresson dbb44a153d Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-14 13:29:52 +02:00
Stian Liknes 680a2bc3ec Configuration option to disable HTML escaping when using Gson (#298)
* Configuration option to disable HTML escaping when using Gson

The default implementation of Gson will escape certain characters by default. This
includes the `=` character, which is used in base64 encoding and cause problems when
deserializing the value to a base64 encoded string in a service.

Adding an option for disabling this feature makes it easier to generate client code
with sane defaults.

* Update Petstore sample
2018-06-14 19:27:52 +08:00
topce f8e61ac914 [typescript] fix cast problem (#303)
* fix cast problem

* fix cast problem
wing328 suggestion
2018-06-14 19:20:34 +08:00
Stian Liknes 24104dac35 Add option modelPropertyNaming to javascript generator (#299)
* Add option modelPropertyNaming to javascript generator

Fixes 6530

* Update Petstore sample
2018-06-14 19:19:23 +08:00
John Wang 7126074f49 add Go client test - TestPlaceOrder (#321) 2018-06-14 14:24:16 +08:00
Benjamin Gill 91d6d77a09 [rust-server] Add rust-server to travis CI (#308)
* Add rust-server to travis CI

* Install rust correctly (and only once)
2018-06-14 00:05:49 +08:00
Jérémie Bresson f964873a2d Change "samples" profile name to "samples.shippable" (#305) 2018-06-13 15:05:20 +02:00
Benjamin Gill 6f6a4a1013 [rust-server] (Re-)Adding support for rust-server (#290)
* First attempt at getting rust-server working

* Solve the problem of spurious 'object's

* We've found the missing models

* Catch some single-var objects correctly

* Get single-param models 'working'

* Got files working

* Remove surplus logging

* Disable some things to get it compiling

* `cargo test` now passes as well

* Create rust-server-specific petstore.yaml

We've commented out a few bits that rust-server doesn't yet support

* Remove commented-out code

And finally get rid of the generation date in the sample
2018-06-13 18:53:03 +08:00
William Cheng 49b8ece776 update cpp server scripts/batch files (#296) 2018-06-13 16:57:36 +08:00
sunn 299527370e [go-server] Add dockerfile for building and run petstore service (#274)
* Add possibility to build and run go service in a container

* Remove tabs

* Update Pet Store server sample

* Add {{{packageName}}} instead of petstore
2018-06-13 16:55:04 +08:00
Jim Schubert 55f9e31f81 Update template modification docs (#291)
Updates some confusing wording, specifies naming conventions, and links
to external `new.sh` for contributed templates (rather than modified
templates).
2018-06-12 21:35:09 -04:00
Phil Sturgeon 2ff81caef6 Expanding customization docs (#283)
* Expanding customization docs

As a new user I was very confused on how to either modify, override or create a new library. The existing docs were brief and had requirred knowledge that new users will not have,  and it took a lot of trial and error to make progress.

Also the wording seemed off. It kept talking about "client" when this project creates more than just clients, used "language" when some templates are not a language, and used library to mean a few seeminly different things. I've tried to consolidate the wording around "template" and "codegen".

The codegen is the Java code, and then you give it a "name" which is used for the template. That's the template folder it will live in, so it seems to work.

Feel free to use this as a base and edit it out, but this will all make a lot more sense to beginners. :)
2018-06-12 18:09:26 -04:00
Jeremie Bresson f5f744ad2c Merge remote-tracking branch 'origin/3.1.x' into 4.0.x 2018-06-12 19:38:40 +02:00
Jeremie Bresson a878749f6c Merge remote-tracking branch 'origin/master' into 3.1.x 2018-06-12 16:26:44 +02:00
Jérémie Bresson 9930f610a7 Ignore signing for other branches than master (#288) 2018-06-12 16:25:47 +02:00
Christophe Bornet d2016d8e0a Fix spring controller validation (#225) 2018-06-12 20:45:17 +08:00
Jeremie Bresson 958dd20680 Merge remote-tracking branch 'origin/master' into '3.1.x' 2018-06-12 12:06:54 +02:00
Jérémie Bresson defedf6e2b Mention new branches in the doc pages (#287)
* Mention new branches in docs
* Add badges for new branches in README.md
* Allow branches "3.1.x" and "4.0.x" to deploy (.travis.yaml)
2018-06-12 12:05:32 +02:00
Jeremie Bresson b887efdc1c Initial commit for 4.0.0-SNAPSHOT 2018-06-12 06:40:07 +02:00
Jeremie Bresson c223f28171 Initial commit for 3.1.0-SNAPSHOT 2018-06-12 06:27:26 +02:00
Jérémie Bresson 8ae1c814d5 Prepare 3.0.2-SNAPSHOT (#285)
Set version `3.0.2-SNAPSHOT`.

Follow up from #280
2018-06-11 13:22:03 -04:00
William Cheng 0453e64fa6 Prepare 3.0.1 release (#280)
* add new bash script for release version update

* update version using the bash script

* Fix shippable build

Modify `artifactId` of `CI/pom.xml.shippable` to be `openapi-generator-shippable-pom`

* Comment ensure-up-to-date

* add shippable to the release script

* Updates README based on new release changes (#271)

The release management changes moved from maven-publish (newer plugin)
to maven (older plugin, only one that works currently with signing).
This updates docs in the samples/local-spec project with current
directions.

Also:

* Includes sonatype releases/snapshots on repo lookup
* Adds openApiGeneratorVersion property
2018-06-11 10:32:15 -04:00
Esteban Marin 0a479f77f6 [typescript-angular] strict type checking (#218)
* strict type checking

* strict type checking

* generate samples for angular-typescript
2018-06-11 21:31:23 +08:00
Akihito Nakano 2392a09eeb [C++ server] Adjust the names (script, sample folder, generator) to lang option (#250)
* Renamce C++ server scripts

* Change output folder

* Rename sample folder: pistache-server -> cpp-pistache

* Rename sample folder: restbed -> cpp-restbed
2018-06-10 22:48:30 +08:00
sunn f5f00069bd Removed warnings for packages included in SDK for Net Core 2.0 (#269)
Microsoft.Extensions.SecretManager.Tools
Microsoft.DotNet.Watcher.Tools

For docker containerized apps, avoiding restore again is important for image size
2018-06-10 08:29:13 -04:00
Jim Schubert 640fd87e3b [cli] Completions command for suggestions (#213)
* [cli] Completions command for suggestions

This takes airlift's 'suggest' command and reuses it as a different
command name, 'completion'. This gives us in-built CLI completions which
are useful in the repo-level container's docker-entrypoint.sh. This
previously parsed Java files for conventional usage of Command
annotations, which is potentially buggy. The new implementation relies
only on CLI to provide command completion suggestions.

As part of this, we can prepare for bash completion scripts which can be
added to our homebrew formula.  The new completion command will also
complete on command options, for example:

cli completion generate

This will provide all short and long form switches available to the
generate command.

* Add piggyback license onto licensed of file borrowed from airlift/airline
2018-06-10 19:33:00 +08:00
SiMing Weng 43b60e667e [Java][RestTemplate] Fix query parameter URL encoding (#260)
* add URL encoding to the query parameters in case they have unsafe characters

* add comment

* update generated samples
2018-06-10 17:48:26 +08:00
sunn a2c27ba8a6 [cpp-qt5] Remove std::shared_ptr from Qt5 (#267)
* Remove std::shared_ptr from Qt5
Updated Petstore
Update Object Template to be able to store the json body

* Remove tabs
2018-06-10 17:39:38 +08:00
Johannes Hoppe f5708218ea Adds some links to the README (#261)
* Update README.md

links to both articles and our consulting company @wing328

FYI @fmalcher

* Update README.md

company-link in alphabetical order, as suggested by @wing328
2018-06-10 14:19:17 +08:00
Jim Schubert 276afefc85 Update sec.gpg.enc to binary encoded secret
Previous attempts at ecrypted secret failed due to improperly encoded
file. Local tests revealed that sonatype creds weren't configured
correctly for the defined server. Maven and Gradle snapshots uploaded
locally using updated configs.
2018-06-09 23:03:44 -04:00
Jim Schubert 36d1ec364e Add gpg --check-trustdb, limit gpg to master
This adds gpg --check-trustdb to avoid:
   gpg: keydb_search failed: invalid packet

This also limits gpg key maintenance to master branch.
2018-06-09 20:53:26 -04:00
Jim Schubert dbbeffa712 Re-do encrypted gpg and reference in settings.xml 2018-06-09 19:42:51 -04:00
Jim Schubert 0adfd9f8e9 Fix trailing semicolons in after_success Travis CI scripts 2018-06-09 17:11:15 -04:00
Jim Schubert 178949038f Use ubuntu keyserver instead of mit (due to timeout) 2018-06-09 14:36:17 -04:00
Jim Schubert 5a332f3c57 [gradle] Plugin release management (#201)
* [gradle] Plugin release management

This applies steps necessary for publishing to Sonatype, including
sources, javadoc, jar and signing. Also includes full POM details, per
Sonatype requirements.

* Properties placeholders in gradle plugin (should allow users without these settings to build locally)
* Update build wrapper for install task to be used with new maven plugin, not maven-publish plugin
* Add code signing for gradle and maven
2018-06-09 14:21:31 -04:00
Johannes Hoppe f72059e7ac Updates small typo in qna.md (#262)
-was +were
2018-06-09 09:21:44 -04:00
Jérémie Bresson 992afd51eb Fix ModelUtils.getUnusedSchema() (#253)
Fix #252

`ModelUtils.getUnusedSchema()` consider Schemas referenced in other Schemas. Implemented for:

* array
* object
* maps
* ComposedSchema
  - oneOf
  - anyOf
  - allOf
* not
2018-06-09 11:56:08 +02:00
Jérémie Bresson 8de5c62cf2 Add JaxRS to bin/ensure-up-to-date (#248)
* Create bin/java-jaxrs-petstore-server-all.sh
* Run bin/java-jaxrs-petstore-server-all.sh
* Add 'bin/java-jaxrs-petstore-server-all.sh' to 'bin/ensure-up-to-date'
2018-06-09 08:54:27 +02:00
Matteo Mazza ebaa7021a4 feat(security): add cookie-auth support (#240) 2018-06-09 00:20:40 +08:00
Jérémie Bresson 51437af1cd Add 'unblu inc.' to company list (#246) 2018-06-07 22:12:03 +08:00
William Cheng c45dba1691 put company list in alphabetical order (#244) 2018-06-07 18:27:27 +08:00
William Cheng fbe9626b7e [jaxrs-spec] generate spec file (yaml) correctly (#243)
Fix #235
2018-06-07 11:08:52 +02:00
Akihito Nakano cf657f1c7b [C++] Adjust the names (script, sample folder, generator) to lang option (#220)
* Rename script: qt5-petstore.sh -> cpp-qt5-petstore.sh

* Rename sample folder: qt5cpp -> cpp-qt5

* Rename script: cpprest-petstore.sh -> cpp-restsdk-petstore.sh

* Rename sample folder: cpprest -> cpp-restsdk

* Rename generator: CppRestClientCodegen -> CppRestSdkClientCodegen

* Rename script: tizen-petstore.sh -> cpp-tizen-petstore.sh

* Rename sample folder: tizen -> cpp-tizen

* Rename script(security): qt5cpp-petstore.sh -> cpp-qt5-petstore.sh

* Rename sample folder(security): qt5cpp -> cpp-qt5

* Rename script(windows): qt5cpp-petstore.bat -> cpp-qt5-petstore.bat

* Change sample folder

* Rename script(windows): cpprest-petstore.bat -> cpp-restsdk-petstore.bat

* Change sample folder

* Rename script(windows): tizen-petstore.bat -> cpp-tizen-petstore.bat

* Change sample folder

* Change output folder: tizen -> cpp-tizen

* Rename the scripts under bin/openapi3

cpp-restsdk is not exist under bin/openapi3

* Change sample folder
2018-06-07 16:55:43 +08:00
Akihito Nakano f65193e6fb Add GMO Pepabo to company list (#242) 2018-06-07 16:45:23 +08:00
Christophe Bornet 7a1945e154 [Spring] Add apiFirst option (#184)
* [Spring] Add apiFirst option

* Git diff to see what's wrong

* Git diff to see what's wrong

* Update bin/ensure-up-to-date

* Run bin/ensure-up-to-date
2018-06-07 13:55:12 +08:00
Jim Schubert f4c66d9e53 [cli] Write to stdout/stderr, allow redirection (#207)
* [cli] Write to stdout/stderr, allow redirection

Previously, slf4j-simple from generator core was being used. This writes
to only a single stream (STDERR) and is confusing from a CLI tooling
perspective.

This consumes logback in CLI, and excludes core's slf4j-simple
dependency. This allows us to define multiple appenders, one for STDOUT
and one for STDERR.

WARN messages and lower are written to STDOUT. ERROR is written to
STDERR.

* [cli] Limit logs to match prev implementation

* Remove slf4j-simple from core project, to avoid conflicts with consumer logger implementations
2018-06-07 12:45:03 +08:00
Ben Mordue 0fb1ffa88b [JAVA][Client] New object instead of null for empty POST request (#98)
new Object() for empty request body
2018-06-07 06:37:37 +02:00
Jérémie Bresson 69a3852ef7 Make yaml serialization deterministic (#233) 2018-06-06 11:47:13 +02:00
Esteban Marin d649c1311e Add syntax highlighting to migration guide (#237) 2018-06-06 11:38:07 +02:00
William Cheng f7eacbb0c5 Fix shippable badge (#232) 2018-06-06 08:06:00 +02:00
Esteban Marin 3e928fff2d update company list (#227) 2018-06-06 10:57:54 +08:00
Stephane Carrez 967cc5bd3b Fix #210: [Ada] Update the code generator for required and optional parameters (#211)
- Do not check for required parameter in getTypeDeclaration()
- Update the nullableTypeMapping map to map an Ada type into a corresponding
  Nullable_<T> Ada type that allows the value to be null
- Check for optional parameter in postProccessOperations() and postProcessModels()
  to replace the Ada type into an Ada type that supports null values
2018-06-05 23:04:39 +08:00
Akihito Nakano b8f1e5afa1 Delete unused methods in DefaultCodegen (#209) 2018-06-05 23:02:14 +08:00
Esteban Marin fe04a0e347 add note about maven plugins (#216)
* add note about maven plugins

* add new section

* fix section link

* fix links
2018-06-05 22:24:55 +08:00
Esteban Marin 0e4d3e7815 add raiffeisen to company list (#223) 2018-06-05 21:32:24 +08:00
William Cheng e631c16b96 add a remark about homebrew installatio (#217) 2018-06-05 19:16:31 +08:00
Jérémie Bresson 501245d0c2 Fix javadoc in clioption (#188)
* Fix javadoc warning

* Update 'maven-javadoc-plugin' to 3.0.1
2018-06-04 00:32:54 +08:00
Jérémie Bresson df55ab3efb Build improvements (#202)
* Set "openapi-generator-maven-plugin" version to 3.0.0

* Disable maven-install-plugin in "openapi-generator-gradle-plugin"

* Changes to the maven wrapper for openapi-generator-gradle-plugin

* Remove deploy-file that does not work
2018-06-02 21:06:37 -04:00
Jérémie Bresson 1e5e1d4458 Prepare 3.0.1-SNAPSHOT (#195)
* Restore version to 3.0.0-SNAPSHOT

* Set version to 3.0.1-SNAPSHOT

* Run ensure-up-to-date

* Remove duplicated version declaration
2018-06-02 10:57:33 +08:00
William Cheng 9c82520637 update docker file to use stable JAR 2018-06-01 15:48:15 +08:00
William Cheng aea08fe76e Remove SNAPSHOT version from online generator 2018-06-01 15:03:32 +08:00
William Cheng 746bb06a2a Release version 3.0.0 (#190)
* update release version to 3.0.0

* comment out ensure-up-to-date during the release

* add release note

* clean up

* clean up links

* add release note for 3.0.0

* update release note

* update release note

* update version for gradle plugin before release
2018-06-01 10:58:16 +08:00
Jim Schubert b6b8c0db87 [gradle-plugin] Initial implementation (#162)
* [gradle-plugin] Initial commit

* Clarify comments on file constraints

When a user sets the models, apis, or supportingFiles environment
variables, any one of these being set disables generation for the other
two.  This could be confusing to users, so I've added some clarification
text in the comments for these properties.

In addition, I've cleaned up the extension on
Property.ifNotEmpty, to avoid using Suppress annotations where it's not
necessary. The change creates a local variable of type T?, allowing
Kotlin to track the variable's nullable state at compile time.

* Move gradle plugin under modules

* Move kt files under kotlin source set. Add sample.

* [gradle] map-like options as maps

* Add tests for gradle validate task

* Apply gradle plugin to mvn install phase

* [gradle] Testing remaining gradle tasks

* Add gradle plugin to the integration doc

* Update gradle plugin README with task options

* Gradle readme formatting
2018-05-31 19:23:05 +08:00
Jan Prieser 7dfd940023 Docker: use correct MAVEN_CONFIG (#182)
the variable wasn't used correctly. i always fell back to use `.` as homedir.
2018-05-30 18:56:08 -04:00
Thibault Duperron bd50d368eb [JAVA - jaxrs-reasteasy-eap] Add import to models (#179)
Call super management for managing imports in postProcessModelProperty
2018-05-30 07:35:52 +02:00
William Cheng ad5d5f598e Add TOC and a new section in the migration guide (#174) 2018-05-29 19:29:54 +08:00
William Cheng 31b9362433 Re-enable go test in CircleCI (#173) 2018-05-29 19:29:31 +08:00
Jim Schubert f042132857 Cli error message improvements (#172)
* Errors in Generate/Validate print to stderr/exit 1

Generate and Validate exposed exceptions rather than user-friendly
messages when an error occurred. In generate, this could happen for
numerous reasons, but the most likely is a user typing (or guessing) an
invalid generator name. In Validate, an error was exposed if there were
any validation errors in a spec.

New behavior:

* Generate now exposes a typed exception when a generator cannot be
  loaded by name. This allows consistent messaging for load failures.
* Generate now presents guidance on failure (check the spelling and try
  again). This is purely a usability improvement.
* Validate now writes validation errors to stderr and exits with code 1.

* Improve err messages: config-help/required opts.

config-help now presents same error for invalid generator names as the
'generate' command.

Options which are required, and those which require a value, now present
a user-friendly hint at the error and exit with code 1 (rather than an
uncaught exception).

* Log missing -g error to stderr rather than LOGGER
2018-05-29 18:36:26 +08:00
Erik Timmers 5a87fe6950 [elm] Fix operations with empty responses (#171) 2018-05-29 14:42:10 +08:00
UnklePig 7efda597cc Fix issue with useBeanValidation: 1. Default value not reflected in help (#160)
message.  2. When default is true, it can't be overridden to false.
2018-05-29 11:49:54 +08:00
William Cheng 917b6e0105 Add a section about body parameter name (#170) 2018-05-29 00:35:37 +08:00
William Cheng 0fadea9986 update php samples (#169) 2018-05-28 23:59:44 +08:00
Mads Føhns 3beeb4e777 #126: Not-required properties now shows as nullable (#129) 2018-05-28 21:33:55 +08:00
William Cheng c30afdf775 add php server batch files (#165) 2018-05-28 19:35:04 +08:00
Geoff Brown 9b8602311e [TypeScript] Make OpenAPI Generator serialize subclasses properly (#102)
* Make SwaggerCodeGen serialize subclasses properly (PHNX-859) (#1)

Motivation
----
Previously, when serializing as subclass of a property, generated swagger clients would only serialize properties of the parent class causing some values to not be pass through

Modifications
----
Before serializing attributes of a given type, we check to see if there is a specific type to be serialized so that we don't miss any properties.

* Fix improper whitespace in mustache template (PHNX-859) (#2)

Motivation
----
OpenAPI Generator upstream requested whitespace fixes (from tabs to 4 spaces)

Modifications
----
Fixed whitespace
2018-05-28 17:22:14 +08:00
Christophe Bornet 71b5de3ed5 Do not set contextPath for spring-boot (#104) 2018-05-28 16:29:09 +08:00
Jérémie Bresson 1a4e5a4e5f Java client: Add constants for libraries (#163) 2018-05-28 09:55:09 +02:00
Akihito Nakano 37df59d6f0 [PHP] Adjust the names (script, sample folder, generator) to lang option (#159)
* Prefix slim-petstore-server.sh with 'php-'

* Prefix slim sample folder

* Prefix ze-ph-petstore-server.sh with 'php-'

* Prefix ze-ph sample folder

* Prefix lumen-petstore-server.sh with 'php-'

* Prefix lumen sample folder
2018-05-28 13:49:47 +08:00
William Cheng 806330ac43 Fix ivy2 cache directory in CI config file (#161) 2018-05-27 15:44:26 -04:00
Jérémie Bresson 0ece706a46 Remove CodegenConfig.fromModel(String, Schema) method (#90) 2018-05-26 20:18:16 +02:00
William Cheng 685a4ab6b1 add kenisteward to founding team (#158) 2018-05-26 22:07:35 +08:00
Jérémie Bresson 64f2bea37f Fix getReferenced...() methods in ModelUtils (#157)
* New: methods return the element containing the $ref if the referenced
element is not found
* Fix null check in getApiResponse(OpenAPI, String)
* Fix null check in getParameter(OpenAPI, String)
2018-05-26 15:16:39 +02:00
delenius 7db0201a89 Fix NPEs in Java generator (#154) 2018-05-26 17:42:02 +08:00
delenius 4d7ff8cfbd JavaDoc fixes for Java/RESTEasy client (#151) 2018-05-26 06:34:38 +02:00
Akihito Nakano 6f23b5061a Add PHP scripts to bin/ensure-up-to-date (#155)
* Add PHP scripts

* Run php-petstore.sh (OAS2,3)
2018-05-26 12:46:47 +09:00
William Cheng 9a2064cbf9 add 1-liner about customized templates, minor fix to dataType (#152) 2018-05-26 10:32:52 +08:00
William Cheng b8eb91e731 update clojure petstore batch file to use petstore.json (#148) 2018-05-24 23:14:32 -07:00
Jérémie Bresson 16ff5174e4 Update swagger-parser to 2.0.1 (#123) 2018-05-25 06:19:29 +02:00
Jérémie Bresson caef014e04 Update 'springboot-reactive' in samples folder (#147) 2018-05-24 22:11:46 +02:00
Jérémie Bresson c53f61c74e Fix javadoc in CodegenProperty (#143) 2018-05-24 09:36:14 -07:00
Jérémie Bresson 072ce070b2 resteasy: fix outer enum case (#139) 2018-05-24 09:35:26 -07:00
topce 4bc5ffe867 [typescript-angular] add provided in support (#120)
* add provided in root support

* fix unit test to pass test generation of new options

* set default for providedInRoot to be true
2018-05-24 09:20:16 -07:00
Jim Schubert 22e94fb4d8 Fixes javadoc warnings in GenApiDelegate (#140) 2018-05-24 17:25:38 +02:00
Tomasz Prus 7184f1ec68 [python] asyncio supports _preload_content; remove unsed imports (#107)
* chore: update python samples

* feat: python/asyncio support for _preload_content

* feat: remove unused imports from python clients; fix discriminator
2018-05-24 08:10:07 -07:00
Jérémie Bresson 76b7307a6e DefaultGenerator: ignore only form param schemas (#74)
* Rewrite ModelUtils.getUnusedSchemas(OpenAPI)
* Add ModelUtils.getAllUnusedSchemas(OpenAPI)
* Add ModelUtils.getSchemasUsedOnlyInFormParam(OpenAPI)
2018-05-24 17:07:41 +02:00
Christophe Bornet a3aabd3908 Create a default implementation of delegate if none could be autowired (#92) 2018-05-24 07:50:05 -07:00
Jérémie Bresson 00f176ad95 Add 'bin/ensure-up-to-date' script and update Shippable CI (#136)
* Create 'bin/ensure-up-to-date' script

* Update shippable config

* Do no longer copy 'CI/pom.xml.shippable' to 'pom.xml'
* Fix paths in CI/pom.xml.shippable

* shippable: remove write to file

* shippable: move order

* Run 'bin/ruby-petstore.sh' to update 'samples/'

* Add Kotlin scripts to the list
2018-05-24 10:18:35 -04:00
Jérémie Bresson 9040f49311 Improve 'bin/run-all-petstore' (#133) 2018-05-23 13:49:09 +02:00
Jérémie Bresson 3f81378d72 [java resteasy] fix string comparison (#134)
* Fix StringUtils.isEmpty(..)
* Update all JaxRS samples
2018-05-23 08:38:18 +02:00
Jim Schubert 27426f7b52 Cli generator name option, replaces 'language' options in CLI and Maven Plugin (#57) 2018-05-23 05:41:19 +02:00
Jérémie Bresson b73ab0260e jaxrs-cxf-cdi: fix outer enum (#131)
* jaxrs-cxf-cdi: fix model enum

* Fix script 'bin/jaxrs-cxf-cdi-petstore-server.sh'

See https://github.com/OpenAPITools/openapi-generator/pull/124

* Run 'bin/jaxrs-cxf-cdi-petstore-server.sh'
2018-05-22 17:55:19 -04:00
Jim Schubert 8df3e54873 Move bash argv opt to end of ags line in scripts (#124)
The $@ option in bash doesn't make sense to come before `generate`
because the only option we can pass before generate cli usage is `help`.

System properties can be passed via JAVA_OPTS, so there's not really a
need for any intermediaries in the command line construction.

Having $@ at the end of the arguments list allows maintainers and users
inspecting options to quickly pass new options to a script. For example,

```
./bin/aspnetcore-petstore.sh --additional-properties sourceFolder=asdf
```

For command line arguments that may appear more than once in the
arguments list, this change doesn't provide any rules about overwriting
values that may exist (hard-coded) in the script. That is, in the
example above, if aspnetcore-petstore.sh already includes the
sourceFolder set to a different value, the "winning" value is up to the
options parser and openapi-generator-cli implementation.
2018-05-22 15:18:52 +08:00
Ben Mordue 866dc03f4f Reduce CI logging (#119) 2018-05-21 23:15:51 +08:00
Matthias Baer f22224574b Download elm dependencies without prompting user. (#118) 2018-05-21 16:23:01 +08:00
Matthias Baer d9d6530161 [aspnetcore] Make the use of Swashbuckle optional (#110)
* Respect the sourceFolder option correctly

* Add an option to disable the use of Swashbuckle (useSwashbuckle)
2018-05-20 09:28:24 -04:00
Jérémie Bresson cd4640dab6 DefaultGenerator: fix NullPointerException (#109) 2018-05-20 08:57:25 +02:00
Jérémie Bresson 495971c2c7 [Java] use html entities in javadoc of generated code (#106) 2018-05-20 08:55:56 +02:00
Jérémie Bresson 88f3c8a2e0 Update PULL_REQUEST_TEMPLATE.md
Fix 'technical committee' link
2018-05-19 07:39:26 +02:00
Jérémie Bresson 82ee8656fd [java] Enum in array of array (#66) 2018-05-18 19:01:11 +02:00
Jérémie Bresson a1ff502411 Rename datatype to dataType in CodegenProperty (#69) 2018-05-18 18:06:37 +02:00
William Cheng 9b05bd60d5 update elm test to compile all elm files (#95) 2018-05-18 19:29:18 +08:00
Erik Timmers a5cf27b60e Fix Petstore example for Elm (#96)
* Add support for `additionalProperties` in operations;
* Add reserved module names.
2018-05-18 19:14:55 +08:00
Jérémie Bresson 8c541a247b Update Docker documentation (#97)
* Update migration-from-swagger-codegen.md

* Update README.md

Change order
2018-05-18 19:14:15 +08:00
Victor Orlovsky 3b9a2a7c36 CaseFormatLambda has been added, params for Rest-assured client has been refactored (#91) 2018-05-18 12:49:34 +02:00
Jérémie Bresson e55ba567a9 Update integration.md
Fix url for "openapi-generator-maven-plugin"
2018-05-18 07:18:07 +02:00
Fabrizio Ferrai d7e374504f [Clojure] Add util method to set the api-context globally (#93) 2018-05-18 11:22:02 +08:00
Antoine Reilles d890d733f8 [JaxRS-Java] issue with implFolder on windows, and required fields generation for containers (#88)
* Fix implFolder issue with jaxrs-cxf-cdi generator

This fix is for the issue:
https://github.com/swagger-api/swagger-codegen/issues/8113

When using jaxrs-cxf-cdi and other JaxRS generators, the implFolder
config is not honored by hte generator on windows.

* jaxrs-cxf-cdi: containers with no default init

Change similar to
https://github.com/swagger-api/swagger-codegen/pull/5363/files for
jax-rs-cdi generator.
When a property that is a contained is not declared as required, it is
initialized to `null`, and not to the empty container.
This makes apio mich more easy to use, since one can differentiate when
an input list in json has been set to the empty array or simply not set.
2018-05-17 19:28:05 +02:00
Christophe Bornet 4889103621 Set parameters allowableValues dynamically (#65) 2018-05-18 00:53:01 +08:00
Jérémie Bresson 2821f18b95 Meta: set version for "build-helper-maven-plugin" (#89)
* Set "build-helper-maven-plugin" in template

* Run bin/meta-codegen.sh
2018-05-17 23:21:32 +08:00
Jérémie Bresson 3ffaaa6505 Fix javadoc issues in "openapi-generator" module (#84) 2018-05-17 22:01:39 +08:00
Christophe Bornet 82d9e935e9 Add CORS configuration (#71) 2018-05-17 21:55:51 +08:00
Erik Timmers c522927d58 Fix Elm generator for polymorphism (#78) 2018-05-17 19:04:52 +08:00
Jon Schoning 34db79b9ba [haskell-http-client] update dependency versions + readme (#81) 2018-05-17 18:40:58 +08:00
Jérémie Bresson 3a1922bc94 Fix version for "spring-boot-maven-plugin" (#85)
Add `spring-boot-version` in the POM.
2018-05-17 11:28:14 +02:00
Jérémie Bresson 85090f5068 Revert pull request #45 (#82)
Reverts:
Consider minLength, maxLength and pattern in referenced schema (#45)
This reverts commit 6b8079808b.
2018-05-17 09:05:00 +02:00
Thibault Duperron 752b36e660 Sanitize enumeration name to add underscore when it starts with digits (#77) 2018-05-16 21:51:55 -04:00
William Cheng b5a0d173d2 Revise the usage of OpenAPI Generator online (docker image) (#73)
* revise openapi generator online image usage

* remove -o from command
2018-05-17 00:09:48 +08:00
William Cheng d93bf4e53d add links to blog posts (#72) 2018-05-16 23:07:42 +08:00
Ben Mordue 0d82971b0c Use maven batch-mode (#70) 2018-05-16 21:39:52 +08:00
William Cheng e58dc2c77c Fix COPY in Dockerfile (#64)
* fix COPY in docker fiile
2018-05-16 08:35:04 -04:00
Kaito Watanabe c30fb3ff0b Remove examples comment from swift3 and swift4 client (#61) 2018-05-16 17:58:36 +08:00
William Cheng 9ef850f916 Better badge description (#62) 2018-05-16 17:53:16 +08:00
Christophe Bornet e3814f51d8 Improvements to online codegen (#55)
* Change openapi-online context path

* Fix openAPI generated spec of openapi-online
2018-05-16 16:26:01 +08:00
Jérémie Bresson 6b8079808b Consider minLength, maxLength and pattern in referenced schema (#45) 2018-05-16 09:19:16 +02:00
William Cheng 9d7feaaeba Fix online generator (docker push) (#58)
* test online generator fix

* copy a single file in dockerfile

* update docker push to master branch only

* uncomment mvn verify
2018-05-16 14:56:19 +08:00
Jim Schubert 9a8183ab05 [aspnetcore] Fix openapi.json location rename (#56)
Swashbuckle generation was missing the configuration to rename from
default swagger.json to openapi.json (expected by change in SwaggerUI's
configuration for the endpoint).

This generates to the appropriate location and updates the sample to
load the Swagger UI properly on run.
2018-05-16 11:16:55 +08:00
Matthias Baer de5260a7ce Update the aspnetcore generation (#53)
This change resolves an issue I had with opening the aspnetcore Solution (Visual Studio could not load the project). The *.sln file contained an old GUID for ASP.NET 5.
Also removed the obsolete NuGet.Config file and updated the package references to the newest versions.
2018-05-15 21:41:44 -04:00
William Cheng 7c5dfbfa01 Minor improvements to OpenAPI Generator Online (#54)
* add copyright note, dockerfile

* update online generator doc
2018-05-16 02:11:40 +08:00
Christophe Bornet 8dd46a3fb9 Move online gen from jersey to spring boot (#44) 2018-05-16 00:57:44 +08:00
William Cheng 803821e210 Fix an issue with example generator when array is too large (#46)
* fix issue with example generator when array is too large

* reformat code
2018-05-15 23:08:37 +08:00
Ricardo Cardona Ramirez 70e9e2fb7e Included @ricardona to founding members. (#48) 2018-05-15 22:44:36 +08:00
Gustavo Paz cd1fe3ff45 Included @gustavoapaz to founding members. (#47) 2018-05-15 22:16:49 +08:00
Jérémie Bresson 673f2bc469 Add CodegenProperty.nameInSnakeCase (#42) 2018-05-15 13:17:04 +02:00
William Cheng f0234b8ab4 Test Go petstore client in Travis CI (#41)
* test go in travis

* test go in shippable

* upgrade stack version

* fix shippable badge

* show stack version

* install go

* set go path

* install go 1.10

* remove go installation

* remove go test

* install haskell in travis

* reenable caching in appveyor

* comment out perl test
2018-05-15 14:34:53 +08:00
William Cheng 7d9fb9f51e Add CI test for Elm in travis (#40)
* test elm in travis

* install elm
2018-05-15 09:58:37 +08:00
William Cheng 67ebe17dd6 Fix isPrimitiveType flag for array of form parameters (#38)
* fix isprimitivetype for array of form parameters

* setup snapshot deployment
2018-05-14 23:28:03 +08:00
Jérémie Bresson 10ac4024da Code clean-up: remove field declaration hiding existing fields (#35) 2018-05-14 16:07:29 +02:00
William Cheng cc2941740d add more founding team members (#37) 2018-05-14 16:55:31 +08:00
William Cheng 4f88c1bc41 Push images to DockerHub (#32)
* test docker push

* test openapi-generator-online push

* fix environment variable

* remove maven central for the time being

* only push openapi-generator-cli

* skip mvn test

* uncomment mvn install

* fix echo

* fix openapi-generator-online docker push

* better password passing

* reenable mvn verify, only push to docker for master
2018-05-14 10:53:27 +08:00
William Cheng a1ba198e47 Minor enhancement to the README (#31)
* fix ci status badge in readme

* revise readme

* fix badge to circleci

* remove maven central for the time being

* fix travis badge

* update travis badge image url

* fix typo in docker hub url
2018-05-14 10:48:35 +08:00
The Gitter Badger f1dae8b39f Add Gitter badge (#29) 2018-05-13 15:41:00 -04:00
Jérémie Bresson 4d7fc046f3 [JaxRS] Add "validation-api" dependency in jetty (#30)
Fix #28 

* Add "javax.validation:validation-api" dependency in jetty
* Update JaxRS and Spring samples
2018-05-13 18:12:01 +02:00
Jérémie Bresson ab9c4b5a61 Code clean-up: Add own private static final LOGGER in each class (#26) 2018-05-13 09:42:33 -04:00
Jérémie Bresson bf7e4e7df7 Java gson: add @SerializedName value as constant (#22)
* Java gson: add @SerializedName value as constant

Fix #21

* Run bin/java-petstore-all.sh
2018-05-13 19:58:46 +08:00
Jérémie Bresson 41b0ff351b Code clean-up: remove DefaultCodegen#getSimpleRef(String) (#19)
Use ModelUtils#getSimpleRef(String) instead
2018-05-13 15:25:45 +08:00
William Cheng 737e63976f add unit tests to cover #5 (#18) 2018-05-13 15:24:25 +08:00
Jérémie Bresson 05a2f4b240 Fix NullPointerException in getSchemaType(Schema) (#14)
Fix #11
2018-05-13 15:23:48 +08:00
Jérémie Bresson 9fa9b115e3 Fix NullPointerException in getUnusedSchemas(OpenAPI) (#10)
fix #9
2018-05-13 15:22:01 +08:00
William Cheng 23ad9f3937 Minor update to readme (#4) 2018-05-13 06:27:27 +02:00
Jim Schubert 52322c47c9 [finch] Allow finch server to compile for CI checks (#7)
Previous error handling implementation had types returning
Either[CommonError, UserType], but implemented with the scala shortcut
??? which throws an exception instead. This causes compilation to fail
with a message that the expected CommonError is of type Any. This is
often fixable with generic upper bounds constraints, but this is
overkill for a placeholder implementation. Returning a temporary 'TODO'
type solves the compile error, and should allow CI to check for valid
compilation on changes.

Included in this is also a fix to support optional query parameter
types. The spec used to generate the finch server has optional query
parameters, but the version of finch in the template doesn't support
options on query parameters. Finch does, however, aggregate everything
(headers, query string, path parameters, etc) under "param" with
"paramOption" for those which are optional types.
2018-05-13 11:07:14 +08:00
William Cheng d80e295852 Fix JS test using baseName in default value (#5)
* fix js test using baseName in default value

* re-enable JS test
2018-05-13 10:19:16 +08:00
Jim Schubert e33f9e52b2 Merge pull request #6 from OpenAPITools/update_file_header
Update header for Java files
2018-05-12 14:04:02 -04:00
wing328 18031e3492 update header for java files 2018-05-13 01:57:57 +08:00
William Cheng 1d889da4e3 Various fixes (#1)
* fix pistache c++ server in windows

* skip perl test

* comment out go tests

* Fix go test, manually fix go client

* fix rails batch file

* fix tab in java file

* install rust

* fix swift2-deprecated in windows batch file

* fix rust installation

* comment out js test

* update swift windows batch files

* update tizen batch script

* comment out ktor test
2018-05-13 01:31:13 +08:00
William Cheng bc20483345 Merge pull request #2 from ackintosh/readme
Cosmetic changes for README
2018-05-12 23:21:37 +08:00
akihito.nakano efa27cec97 Add link 2018-05-12 22:54:47 +09:00
akihito.nakano 94dfb6b998 Fix links 2018-05-12 22:51:16 +09:00
akihito.nakano db2319ae7c Align heading level 2018-05-12 22:41:09 +09:00
akihito.nakano 935790e865 Numbering 2018-05-12 22:36:57 +09:00
akihito.nakano 8b67250e1c table 2018-05-12 22:12:27 +09:00
akihito.nakano 3b3874b154 centering, sort 2018-05-12 22:02:45 +09:00
akihito.nakano 22757bb4bd Centering badges 2018-05-12 21:56:37 +09:00
William Cheng b5942624d6 update documentation (#428) 2018-05-12 10:19:27 +08:00
William Cheng 2ed3d8cc86 Update python test (#426)
* update python test folders

* update python template

* update python samples

* fix python comment too long

* update ruby test case
2018-05-12 09:54:19 +08:00
William Cheng 4b7a583b33 Update Swift default value (#407)
* update swift4 default

* update swift3 default value

* update swift default value
2018-05-12 00:15:24 +08:00
William Cheng c905f6b5bb fix pom (#427) 2018-05-12 00:10:52 +08:00
William Cheng 0ad66f7fe5 fix ruby test case, update gemfile (#425) 2018-05-11 20:51:35 +08:00
William Cheng b3f3eabc72 remove php old files, fix php folder in pom (#423) 2018-05-11 20:51:24 +08:00
Jérémie Bresson fcec2d74e0 Merge 'master' branch of 'swagger-codegen' into 'master' (#422)
Corresponding commit swagger-codegen: cccd0930368dd4c54d04bdfcaa3496685c3ed9b8

Co-authored-by: Andreas Müller <inidona@users.noreply.github.com>
Co-authored-by: Geoff Brown <gbrown@centeredgesoftware.com>
Co-authored-by: Raphael Ochsenbein <akekahn@gmail.com>
2018-05-11 14:35:56 +02:00
William Cheng 70733deab9 remove unused js files (#421) 2018-05-11 17:28:24 +08:00
Jérémie Bresson ad0e05cf5c Fixes in README.md (#418) 2018-05-11 10:35:59 +02:00
William Cheng 7d75c66180 Various updates (#419)
* various updates

* update pom.xml

* update ci config with new location

* Change "swagger-codegen" to "openapi-generator" in a comment

* fix pom.xml for bash client

* minor fix to github ID

* fix pom for ios
2018-05-11 15:28:32 +08:00
William Cheng e5be838fa8 Update PHP client default value (#417)
* update php default value

* update php samples with oas3
2018-05-11 15:28:09 +08:00
William Cheng 0d913e6801 add step to restore Org.OpenAPITools.Test.csproj (#420) 2018-05-11 14:34:03 +08:00
William Cheng 5ae2d9b5f0 Add Question & Answer section (#413)
* add question and anaswer section

* add project URL to the license

* Use relative path for link between pages

* Reword some sentences, remove we/they style
2018-05-11 13:28:17 +08:00
Jérémie Bresson 9247cd01e7 Changes for Docker (#400) 2018-05-11 11:41:42 +08:00
William Cheng a4f76b889e update R default value, clean up old R files, add window batch for (#415)
openapi3
2018-05-11 11:25:50 +08:00
Akihito Nakano 7716d7e9b3 Rename the description of projectName option (#414) 2018-05-11 11:25:14 +08:00
Jérémie Bresson 90b7c89443 Implement hideGenerationTimestamp for kotlin-server ktor (#416) 2018-05-11 11:24:56 +08:00
William Cheng 064418ed12 update finch generator's default value (#394) 2018-05-11 09:18:49 +08:00
William Cheng 2d60c082b2 replace body parameter naming extension (#412) 2018-05-10 16:00:38 +08:00
Jérémie Bresson dc4d6e499c Add Migration from swagger-codegen guide (#408)
* Add Migration guide

* Update migration-from-swagger-codegen.md
2018-05-10 13:51:19 +08:00
Akihito Nakano d958480fea Reaname R default package name (#411)
* Rename package name

* Update samples

bin/openapi3/r-petstore.sh
2018-05-10 13:50:42 +08:00
Jérémie Bresson a07ab606dc Small fixes in samples (#410) 2018-05-10 13:45:12 +08:00
William Cheng 9ac9bc0dc3 enhance ts import (#409) 2018-05-10 13:08:12 +08:00
William Cheng b21b964c43 change default value for rust client (#406) 2018-05-10 11:20:59 +08:00
William Cheng 868ede53f9 Update Scalatra's default value (#403)
* update scalatra default value

* minor rupdate to template
2018-05-10 10:56:11 +08:00
William Cheng 27c372ff56 Update akka scala default value (#401)
* update akka scala default value

* fix akka-scala test option
2018-05-10 10:55:44 +08:00
William Cheng f615d823f9 update ts node dependencies (#405) 2018-05-09 22:53:05 +08:00
William Cheng 8cedb66063 wording change for haskell http client (#404) 2018-05-09 22:31:48 +08:00
Jérémie Bresson fbf2e135ef Docs: several small fixes (#399)
* Fixes for CONTRIBUTING.md

* Other docs fixes
2018-05-09 21:49:27 +08:00
William Cheng 286f2caa22 update scala default value (#402) 2018-05-09 21:48:32 +08:00
Jérémie Bresson 58f7a6f0c4 Fixes in new.sh (#398) 2018-05-09 18:21:13 +08:00
Jérémie Bresson 2ee05e12d2 Fixes in security examples (#396)
* Regenerate "samples/client/petstore-security-test/java/okhttp-gson/"

* Use correct jar

* Fix sh scripts

* Fix path: modules/swagger-codegen => modules/openapi-generator/
2018-05-09 18:13:30 +08:00
William Cheng 4852434d13 update scalaz default value (#395) 2018-05-09 17:26:42 +08:00
Jérémie Bresson a00261d3da Change default package name value for kotlin server (#387)
* Update default package

* Regenerate samples/server/petstore/kotlin-server/ktor

* Update git ignore

* Add CI
2018-05-09 16:38:16 +08:00
William Cheng 5fb1660fe1 Update default value for PowerShell, HTML2 generator (#388)
* update powershell script

* update powershell bin script (oas3)

* update html2 generator's default value
2018-05-09 16:37:42 +08:00
William Cheng dcd26ece71 Update Scala gatling's default value (#390)
* update powershell script

* update powershell bin script (oas3)

* update html2 generator's default value

* update scala gatling default value
2018-05-09 16:34:54 +08:00
Jérémie Bresson 4ae1113c00 Rename C# default package name for html2 (#389)
* Change C# package name for html2

* Regenerate 'html2'
2018-05-09 16:34:31 +08:00
Jérémie Bresson 150d414b7e Regenerate java clients (#385) 2018-05-09 07:45:53 +02:00
Akihito Nakano 872dd546f4 Update php related samples (#375)
* Update php client (OAS3)

bin/openapi3/php-petstore.sh

* Update symfony server (OAS2)

bin/php-symfony-petstore.sh

* Lumen: remove 'swagger'

* Update lumen server (OAS2)

* Update php client (security): deleted 'SwaggerClient-php' folder

* Update TEST_DIR

* Update php client tests (OAS3)

bin/openapi3/php-petstore.sh

* Update php client (OAS2)

bin/php-petstore.sh

* Fix

* Fix lumen -> php-lumen

* Update lumen server (security)

* Delete moved files

currently it will generate into under 'lib' folder.

* Fix slim -> php-slim

* Update slim server (security)

bin/security/slim-petstore-server.sh

* Fix

* Update dot files
2018-05-09 10:34:19 +08:00
Jérémie Bresson d35bf1a388 Change default package name value for kotlin client (#382)
* Move pom.xml to sample.ci

* Regenerate 'kotlin-threetenbp' example

* Add build to gitignore

* Change default value for Kotlin

* Regenerate kotlin-string client

* Regenerate kotlin-threetenbp client

* Regenerate 'samples/client/petstore/kotlin'
2018-05-09 10:32:37 +08:00
William Cheng e2d6f7c88f update erlang client, server default value (#378) 2018-05-09 10:31:42 +08:00
Jon Schoning 68780afe9d [haskell-http-client] update samples (OAS3) (#381) 2018-05-09 10:31:28 +08:00
William Cheng 4fd68f0f24 update powershell default value (#380) 2018-05-09 10:31:05 +08:00
William Cheng b24df8882f update lua default value (#379) 2018-05-09 10:30:49 +08:00
William Cheng ded082202e update clojure default value (#377) 2018-05-09 10:30:35 +08:00
William Cheng 9ecd3586b5 fix string comparison (#376) 2018-05-09 10:30:05 +08:00
stkrwork 3608a14b40 Updated founder name (#383) 2018-05-09 09:54:18 +08:00
William Cheng a9fa4cd0db Update default value for C++ related generator (#373)
* udpate default value for cpp, remove unused imports

* update cpprest template

* update tizen default value

* update cpp restbed default value

* update qt5cpp samples

* update pistache samples

* regenerate restbed ignore file
2018-05-08 22:10:40 +08:00
William Cheng 13f084e7b0 Fix dataTypeWithEnum for array of form parameters (#354)
* fix datatypewithenum for array of form parameters

* add test cases to cover dataTypeWithEnum, enumName in Ruby
2018-05-08 20:55:49 +08:00
William Cheng 0d20f75afc Update default value, fix example value (#370)
* fix python flask NPE with oas3

* update perl default value, fix example value

* update android sample, fix example value

* restore x-swagger-router-controller for nodejs server generator

* update default value for bash client, fix example value, invalid tag

* update default value for objc

* update objc pestore core data
2018-05-08 19:51:15 +08:00
Arthur Mogliev fd3b883e80 [DefaultCodegen] Fill CodegenOperation::produces with unique media types (#343) 2018-05-08 13:46:23 +02:00
William Cheng c0a2673b26 update eiffel codegen default (#371) 2018-05-08 17:32:50 +08:00
Jérémie Bresson e1c9a924c0 Generate kotlin 'client-string' sample (#369)
* Move pom to 'samples.ci'

* Regenerate 'samples/client/petstore/kotlin-string'
2018-05-08 16:45:50 +08:00
Jérémie Bresson 58c45b9b75 Regenerate 'samples/client/petstore-security-test/php/' (#368)
Using 'bin/security/php-petstore.sh'
2018-05-08 16:45:09 +08:00
Jérémie Bresson 059a3efe46 Regenerate samples (#367) 2018-05-08 16:44:51 +08:00
William Cheng bbd2afdd0a Update Flash default value (#366)
* update flash default value, clear samples

* add flash samples
2018-05-08 12:57:38 +08:00
William Cheng db9a899a09 update getSchemaType variable, remove unused import (#365) 2018-05-08 12:57:25 +08:00
William Cheng 27b3302d8f add test for body parameter example value (#363) 2018-05-08 10:16:48 +08:00
William Cheng 0dbb6dcaa6 Update Go generators' default value (#362)
* udpate go client default value

* update go generators' default value
2018-05-08 10:16:38 +08:00
William Cheng 3758aad225 Update Python flask default value (#361)
* update python flask default value

* update python flask samples
2018-05-08 10:16:25 +08:00
William Cheng 14c241fbce Update python default value (#360)
* update pythong default value

* fix example, update python sample

* update python petstore sample (asyncio, tornado)
2018-05-08 01:23:49 +08:00
William Cheng d08e31ae76 Add more tests (Swfit3) (#359)
* revise test cases

* add swift 3 tests
2018-05-08 00:10:19 +08:00
Akihito Nakano 376d9af9c0 Rename default packages for php client (#315)
* Rename default packages for php client

* Generate php client (OAS3)

* Rename namespace for tests

* Delete unnecessary 'use'

* Rename method/variable

* Update php client (OAS3)

* Generate php client (OAS2)

* Rename namespace for tests

* Delete unused files

* Fix tests
2018-05-07 23:04:06 +08:00
Jérémie Bresson e2f8976fa7 Remove old metadata files (#357) 2018-05-07 13:31:17 +02:00
William Cheng a9baaa81e3 update eiffel with petstore oas2 (#268) 2018-05-07 18:32:03 +08:00
William Cheng d74b4cdf8d fix map type and collection format for form parameter (array) (#356) 2018-05-07 18:22:30 +08:00
Jérémie Bresson e49e8ca169 Generate 'cwiki' (#351)
* Regenerate 'cwiki'

* Change default package value for cwiki
2018-05-07 17:53:08 +08:00
William Cheng 230b0d24bb Clean up the spec (#348)
* update openapi spec

* remove wordnik contact
2018-05-07 17:52:31 +08:00
Jérémie Bresson c42777b09e Rename default package for html, html2, dynamic-html (#350) 2018-05-07 09:55:23 +02:00
Jérémie Bresson a22afb3d81 Rename default packages for android (#349) 2018-05-07 09:54:47 +02:00
Jérémie Bresson b947970f99 Rename default packages for java (#341) 2018-05-07 08:43:57 +02:00
Jérémie Bresson bdc318d63b Comment 'haskell-http-client' in shippable CI (#352) 2018-05-07 08:00:14 +02:00
William Cheng 78815ba0e0 Revert "Revise how to obtain the example value (#326)" (#353)
This reverts commit d99f46cff9.
2018-05-07 12:55:11 +08:00
Arthur Mogliev d30fcbabba Fixes for php-ze-ph generator (#340)
* Fixes for ze-ph:
- fixed gathering of required properties for query data model
- fixed setting of internal vendor extensions for query data model detection
- fixed small typo in generated README

* Updated samples for ze-ph fixes
2018-05-07 10:22:08 +08:00
William Cheng e45b3784f1 Fix NPE with Haskell client generator with OAS3 spec (#334)
* fix NPE with haskell client oas3, better type check

* better unknown type check
2018-05-06 23:56:59 +08:00
Akihito Nakano d99f46cff9 Revise how to obtain the example value (#326)
* Set the example value from 'Parameter'

* Set the example value from 'Schema'

* Tweak access modifier

* Fix doc comments
2018-05-06 23:38:01 +08:00
William Cheng b1eac05b2b Fix form datatype (array of string) (#339)
* fix data type for array of form parameters

* add test case to cover the form parameter issue
2018-05-06 22:17:47 +08:00
Akihito Nakano a56d2333a2 Update validate command (#338) 2018-05-06 22:02:16 +09:00
Jérémie Bresson 4d3110f29d Rename default packages for 'java-undertow-server' (#336) 2018-05-06 12:34:54 +02:00
Jérémie Bresson d8fd560d64 Rename default packages for 'jaxrs-spec' (#333) 2018-05-06 12:34:36 +02:00
Jérémie Bresson c4afaac285 Rename default packages for 'java-play-framework' (#335) 2018-05-06 12:34:02 +02:00
William Cheng 50163b4939 add ts tests (#337) 2018-05-06 17:33:48 +08:00
William Cheng 86f9686f29 Add more tests (c#, swift4) (#330)
* add more tests to csharp client generator

* add swift4 tests

* update wordings
2018-05-06 14:20:29 +08:00
Jérémie Bresson 2103fadab8 Fix package declaration for play-framework (#332) 2018-05-06 08:08:34 +02:00
William Cheng aab99bc530 Update Dart default value, re-enable Objc Tests (#328)
* update dart client default

* re-enable objc test

* restore dart flutter_petstore, update dart oas3 script
2018-05-06 01:45:52 +08:00
William Cheng 3c666a6d44 Fix array of form parameters (#324)
* fix array of form parameters

* fix description for array of form parameters

* fix map of enum value
2018-05-06 00:39:38 +08:00
Christophe Bornet 90ac9d030c Merge pull request #262 from cbornet/reactive
[Spring] Add reactive option for Spring Boot (webflux)
2018-05-05 18:01:46 +02:00
cbornet 8405b18563 Add spring cloud sample tests back 2018-05-05 17:26:21 +02:00
cbornet 1619486578 Add reactive option for Spring Boot (webflux) 2018-05-05 17:26:08 +02:00
Jérémie Bresson a2b618a452 Merge 'master' branch of 'swagger-codegen' into 'openapi-generator' (#327) 2018-05-05 16:40:52 +02:00
William Cheng c791146b62 Update Dart petstore with OAS3, fix mustache format (#227)
* update dart petstore with oas3, fix mustache format

* update default value to null
2018-05-05 21:02:18 +08:00
Jérémie Bresson 252a1c2599 Regenerate html.md OAS2 (#251) 2018-05-05 13:24:30 +02:00
Akihito Nakano 1245a47649 Merge pull request #321 from ackintosh/update-nodejs-server
Update nodejs server
2018-05-05 17:06:46 +09:00
William Cheng 5f2bc28779 update default value for elixir (#319) 2018-05-05 01:37:48 +08:00
akihito.nakano 1bd393f4ea Rename 'keywords' for package.json 2018-05-05 01:43:35 +09:00
akihito.nakano 90438b8e71 Tweak indent 2018-05-05 01:38:23 +09:00
akihito.nakano 6c3d7bbc48 Update nodejs samples which skipped overwriting 2018-05-05 01:36:37 +09:00
William Cheng e2251084f2 Update the default value of Ruby client generator (#320)
* fix ruby client default value

* fix example value for ruby
2018-05-05 00:10:34 +08:00
William Cheng 0b6a59fa09 update elixir with oas3 petstore (#318) 2018-05-04 23:52:52 +08:00
micheleISEP bee7aebe4b Update README.md 2018-05-04 16:21:56 +01:00
Jérémie Bresson e9793783cd Fixes in GitHub templates files (#311) 2018-05-04 13:44:01 +02:00
William Cheng 8edf6e52ad Update Elixir Petstore with OAS2 (#316)
* restore elixir petstore original from codegen2x

* update elixir generator to work with oas2

* minor fix to elixir generato

* minor enhancement to templates

* update elixir petstore with oas2
2018-05-04 17:43:14 +08:00
Akihito Nakano 08e0393def Fix missing examples (#305)
* Fix missing examples

* support ArraySchema

* Refactor: move the logic to generate samples from DefaultCodegen to ExampleGenerator

* Delete unnecessary argument

OpenAPI is passed in constructor

* Delete unnecessary 'import'

* Update samples ( bin/springboot-petstore-server.sh )

* Update samples ( bin/openapi3/nodejs-petstore-server.sh )
2018-05-04 17:25:49 +08:00
Jérémie Bresson 4dc519b4fe Rename groupId for java-play-framework (#310) 2018-05-04 10:22:42 +02:00
Jérémie Bresson 71d544c9f7 Rename default packages in meta (#314) 2018-05-04 10:19:07 +02:00
William Cheng ea18065447 Add Elm, Rust, Groovy to Travis CI (#308)
* add elm, rust, groovy to travis ci

* update elm script comment

* comment out elm test in travis
2018-05-04 16:12:18 +08:00
Jeremie Bresson 3d7eaf96fc Move docs to a separate folder 2018-05-04 06:29:23 +02:00
Jérémie Bresson 0435910da8 Renamings (#252) 2018-05-04 04:50:17 +02:00
William Cheng 18a40deb30 Update rust client with Petstore OAS2 (#148)
* update rust client with petstore oas2

* update rust with oas2 petstore, fix default value

* fix type mapping for file, update api_doc for rust client

* update rust client with oas3
2018-05-04 01:38:40 +08:00
William Cheng 4690325a2c add test for scala (akka, http client) (#306) 2018-05-04 00:36:45 +08:00
William Cheng de55812d68 Update wordings (#301)
* update wordings
* update git_push wordings
* update git clone
* update homepage url
* update meta-codegen sample
2018-05-03 14:12:24 +02:00
William Cheng 15d4d2f0d4 remove duplicated entries in C# csproj (#302) 2018-05-03 16:31:26 +08:00
Jérémie Bresson 0ba2a9a250 Update java play framework samples OAS2 (#286)
* Regenerate play framework examples
* Add 'samples.ci' for manual files and update scripts
2018-05-03 08:19:59 +02:00
William Cheng 9cf185912c Fix Scalatra petstore sample (#300)
* restore scalatra from codegen

* regenerate scalatra oas2 petstore, fix defaut value

* better code format for scalatra

* more format fix for scalatra

* update scalatra parameter template
2018-05-03 13:26:04 +08:00
William Cheng 751d09b162 Update CI files (#296)
* update ci files

* add apt-update at start
2018-05-03 09:46:39 +08:00
Emiliano Bonassi 70718332ff Add 'Emiliano Bonassi' as Founding Memmber (#298) 2018-05-03 09:46:14 +08:00
William Cheng 95e04f91db Add Elm script with Petstore OAS3 (#293)
* add elm script with petstore oas3

* change default value for elm generator

* update default value for elm templates

* fix typo
2018-05-02 23:04:16 +08:00
Erik Timmers 4ce97b6f4e Add 'Erik Timmers' as Founding Member (#295) 2018-05-02 22:17:57 +08:00
Victor Orlovsky 63b85fde68 Victor Orlovsky has been added to 'Founding Members' (#294) 2018-05-02 21:32:11 +08:00
William Cheng 50837b2e83 update elm petstore with oas2 (#291) 2018-05-02 20:27:06 +08:00
Jérémie Bresson 45a50840a5 [spring, play-framework] Handle setters for package values (#288) 2018-05-02 13:39:29 +02:00
William Cheng ff3b954f10 update c# 2.0 samples (#285) 2018-05-02 14:30:25 +08:00
William Cheng 30b829c611 Update Swift4 client with OAS2 (#270)
* update swift4 client with oas2

* map binary as file in swift4
2018-05-02 14:30:11 +08:00
Jérémie Bresson 1492df6cef Override server port for Jetty configuration (#246) 2018-05-02 07:11:29 +02:00
William Cheng 4497a1fe47 update default user agent (#284) 2018-05-02 01:12:32 +08:00
William Cheng 0c981b7c2f Update C# default value (#283)
* update csharp default value

* update csharp 35 samples

* update csharp 40 client

* update c# net standard client

* update C# net core client

* update csharp propertychanged client
2018-05-02 00:48:55 +08:00
William Cheng 8e29dba85b update file header (#282) 2018-05-01 18:50:48 +08:00
William Cheng 4c656bb1d9 Update C# with Petstore OAS3 (#281)
* update c# petstore with oas3

* update c# propertychanged with petstore oas3

* update c# netstandard with oas3
2018-05-01 14:02:55 +08:00
William Cheng 23fc7a8cee rearrange how map, array, model are checked in body request (#277) 2018-05-01 12:39:56 +08:00
Jon Schoning d3401396f5 [haskell-http-client] remove duplicates in produces/consumes; fix pathParam paramName issue (#273) 2018-05-01 12:27:20 +08:00
William Cheng 0b3ec6b1f8 fix NPE with cpp qt5, add logic to avoid NPE with composed schema (#267) 2018-05-01 12:05:57 +08:00
William Cheng acb63fd5e8 Fix go readme, remove resty install (#280)
* fix go readme, remove resty install

* fix default to null in go petstore doc
2018-05-01 12:02:55 +08:00
William Cheng 4bc99b9da8 minor fixes to haskell http client generator (#278) 2018-05-01 11:27:37 +08:00
William Cheng 9cb2f8472f remove incorrect max, min in allowableValues (#269) 2018-04-30 23:48:59 +08:00
Akihito Nakano be19724849 Fix default value (#260)
* Fix missing default value of form param

* Update php sample with OAS2

* Update php sample with OAS3

* Delete quotes as default value may have integer

* Update php samples with OAS2

* use toDefaultValue() in order to apply the decoration rules of generator

* Update php samples with OAS2

* Tweak: add quotes only if example is null

* Update php sample with OAS2

* Update php sample with OAS3
2018-04-30 17:18:58 +08:00
Akihito Nakano aa5719e008 Fix missing default value (#257)
* Fix missing default value of form param

* Update php sample with OAS2

* Update php sample with OAS3
2018-04-30 16:24:07 +08:00
William Cheng 42aebe4367 Update Lumen generator petstore with OAS2, OAS3 (#256)
* update php lumen with oas3 petstore

* update lumen with oas3 pestore
2018-04-30 16:12:25 +08:00
William Cheng 7ad92572e4 Update default value for PHP server generators (slim, silex) (#272)
* update php slim samples

* update php silex samples

* update php silex default value
2018-04-30 15:18:13 +08:00
William Cheng 799b033c22 update go readme, update pom go dependencies (#274) 2018-04-30 13:04:00 +08:00
William Cheng 8730f910b2 Merge pull request #261 from wing328/fix_go
Various fix for Go petstore client
2018-04-30 09:49:49 +08:00
antihax 622a75b2ce Fix data type shadowing 2018-04-29 12:16:17 -07:00
William Cheng 1d7da2ecf4 fix apex npe, better example value (#266) 2018-04-29 22:15:04 +08:00
Jérémie Bresson 1587d202b0 Generate apex (#224) 2018-04-29 20:38:18 +08:00
William Cheng c60010c965 Update default value for Perl, Ruby, ROR generators (#265)
* rename perl genreator default

* update ruby sinatra default

* rename ror default value
2018-04-29 20:37:12 +08:00
William Cheng 861d11d010 use vendor extension in operation to set the body parameter name (#264)
Use vendor extension in Operation to set the body parameter name
2018-04-29 17:17:01 +08:00
William Cheng 80c8b92cb5 add postProcessParamter for body, form parameter (#263) 2018-04-29 15:58:12 +08:00
wing328 d8165b0cfb update go test files 2018-04-29 02:14:12 +08:00
wing328 1e999f289d various fix for go petstore 2018-04-29 02:03:21 +08:00
wing328 73cb1cd016 fix parameter naming in go 2018-04-28 23:21:17 +08:00
wing328 1577e5d89f restore go client from codgen2x 2018-04-28 22:04:47 +08:00
William Cheng 2ce721d0b9 Update PHP ZE-PH server samples with OAS2, OAS3 (#259)
* update php ze-ph samples with oas2

* update zeph samples with oas3
2018-04-28 21:48:50 +08:00
William Cheng 490255025e Update PHP Slim server samples with OAS2, OAS3 (#258)
* update php slim server petstore with oas2

* update php slim petstore with oas3 (no diff)
2018-04-28 21:48:40 +08:00
William Cheng 7621deeb9f Update PHP Silex server petstore with OAS2, OAS3 (#254)
* update php silex with oas2 petstore

* update php silex with oas3 petstore
2018-04-28 21:48:22 +08:00
William Cheng 69133d3677 Update PHP Symfony server petstore with OAS2, OAS3 (#255)
* update php symfony with oas2 petstore

* update php symfony with oas3 petstore
2018-04-28 14:38:37 +08:00
William Cheng 5114cd96b0 Update TypeScript Petstore samples with OAS3 (#253)
* add scripts for ts oas3 petstore

* remove json files

* update ts jquery with oas3 petstore

* update ts inversify, fix file mapping

* update ts fetch wtih oas3 (no diff), fix script
2018-04-28 12:11:02 +08:00
Akihito Nakano 7b6e17e02d Fix missing models (#250)
* ArraySchema should not be included in aliases

* Update php sample (OAS2)
2018-04-28 11:37:45 +08:00
William Cheng 78c865e268 update ts angular2 petstore oas2 (#249) 2018-04-27 22:12:30 +08:00
William Cheng 509fdd892b Update TypeScript jQuery, Aurelia, Inversify with Petstore OAS2 (#248)
* update ts inversify with petstore oas2

* update typescript-aurelia petstore with oas2

* update ts jquery with oas2
2018-04-27 22:12:13 +08:00
William Cheng 6a98840199 update c# netstandard petstore (oas2) (#247) 2018-04-27 18:04:47 +08:00
William Cheng 0373b74a75 update ts angularjs petstore (oas2), fix model prefix (#245) 2018-04-27 17:09:34 +08:00
Jérémie Bresson 3f976afca8 Generate vertx OAS2 (#226) 2018-04-27 10:19:48 +02:00
William Cheng bec559a6e8 Update TypeScript Fetch client with Petstore OAS2 (#244)
* update ts fetch (default) with oas2

* update ts fetech npm with petstore oas2

* update ts fetch interface (petstore oas2)

* update ts fetch es6 (petstore oas2)
2018-04-27 15:37:41 +08:00
William Cheng 4ea2e6dc78 update C# property change client (oas2) (#242) 2018-04-27 11:55:37 +08:00
William Cheng 6f4af337d9 Update TS Angular v4, v4.3 with Petstore OAS2 (#241)
* update ts angular 4 from codegen2x

* update ts angular v4 with petstore oas2

* restore ts agnular 4.3 from codegen2x

* update ts angular 4.3 with petstore oas2
2018-04-27 00:24:40 +08:00
William Cheng 5ef5e540fd Update C# API client with Petstore OAS2 (#240)
* update c# petstore with oas2

* add csharp tests
2018-04-27 00:03:30 +08:00
William Cheng 8640c172c9 update ts node with oas2 (#239) 2018-04-26 22:39:01 +08:00
William Cheng 049eef9c53 Test erlang client, server petstore (#235)
* test erlang client, server petstore

* rename tests, replace tab

* install rebar3 in shippable ci
2018-04-26 18:12:00 +08:00
William Cheng 44aaccb108 update erlang server with oas3, no diff (#238) 2018-04-26 17:46:12 +08:00
Jérémie Bresson 19b0d37c38 Generate java-msf4j (#225) 2018-04-26 10:41:17 +02:00
Jérémie Bresson 633834455d Rework url handling (#236) 2018-04-26 10:40:39 +02:00
Jérémie Bresson 52391ed9e5 Regenerate all jaxrs examples (#234) 2018-04-26 13:54:41 +08:00
William Cheng bcc7b788e0 fix erlang client compilation error (#228) 2018-04-26 13:44:05 +08:00
William Cheng df26bcb40c Update Erlang server samples with Petstore OAS2 (#150)
* update erlang server samples with petstore oas2

* fix compilation in erlang server
2018-04-26 13:34:02 +08:00
William Cheng e1a0355398 Update PHP samples with OAS2 before enabling CI test (#230)
* update php samples with oas2 before enabling ci test

* deleted unused php files
2018-04-26 13:17:16 +08:00
William Cheng e2d4f5b5ca update ruby with oas2 before ci test (#231) 2018-04-26 13:15:04 +08:00
William Cheng fe15f46906 fix toDefaultValueWithParam in JS (#232) 2018-04-26 13:14:46 +08:00
William Cheng f5f7546dcc Update Dart petstore client (flutter) with OpenAPI v2 spec (#152)
* restore dart flutter samples from petstore oas2

* update dart-petstore (flutter) with OAS2
2018-04-25 14:53:42 +08:00
Jérémie Bresson 4924b4951c Generate java-pkmst (#223) 2018-04-25 07:01:48 +02:00
Jérémie Bresson 6f28209ccc Generate java inflector OAS2 (#222) 2018-04-25 07:01:32 +02:00
William Cheng c605090d61 Fix alias for the model's properties (#219) 2018-04-25 05:50:55 +02:00
Jérémie Bresson 25ccef818d Rename default package for spring generator (#221) 2018-04-24 18:20:44 +02:00
antihax 5d8362d859 Update go client, fix double body read (#211) 2018-04-24 22:39:55 +08:00
Jérémie Bresson 949ef4453a Generate java spring OAS2 (#216) 2018-04-24 16:26:52 +02:00
Jérémie Bresson e0b0248c38 Rename default package in java clients (#218) 2018-04-24 16:26:20 +02:00
William Cheng 2c6380c846 fix inner item (list, map) for play framework (#217) 2018-04-24 19:02:10 +08:00
Jérémie Bresson c8c316e41e Update java client samples OAS2 (#140)
* Update java client examples
* Rename artifactId in json config files
* Add imports in api.mustache for play24 and play25
2018-04-24 09:51:50 +02:00
Jérémie Bresson 5340c35ce1 Rename sagger metadata and more (#208)
* Rename groupId, artifactId, project name, title, ...
* Remove .swagger-codegen/VERSION file
2018-04-24 08:08:53 +02:00
Jérémie Bresson 7fe555a519 Set collectionFormat default only for array (#210) 2018-04-24 08:01:49 +02:00
Jérémie Bresson 61c25e7112 Fixes for retrofit (#213)
* Add org.threeten as dependency
* Mandatory parameter for @retrofit2.http.Field/Part
2018-04-24 13:20:44 +08:00
Jérémie Bresson d5d8c356b7 Rename default packages for jaxrs generators (#209) 2018-04-24 06:26:42 +02:00
Jérémie Bresson ccd0029667 java rest-assured: fix javadoc in templates (#207) 2018-04-23 20:39:30 +02:00
William Cheng 1f64646dc3 Rename Scala generators (#206) 2018-04-23 16:15:40 +02:00
Jérémie Bresson e7410d4c8e Allow $ in java var name (#200) 2018-04-23 15:48:10 +02:00
William Cheng 450cbb8250 update groovy with oas3 petstore, no diff (#205) 2018-04-23 18:50:59 +08:00
Jérémie Bresson 6983dcffa2 Update all jaxrs examples (#144) 2018-04-23 12:17:14 +02:00
William Cheng f353f60b89 Update Perl client samples (OAS2, OAS3) with various fixes (#204)
* update perl client with various fixes

* update perl petstore with oas3, tests passed
2018-04-23 17:49:48 +08:00
William Cheng b908b734dd Update Groovy default value, fix import error when doing "gradle test" (#203)
* update groovy default value, fix import error when doing gradle test

* remove empty lines
2018-04-23 17:31:14 +08:00
William Cheng 16589de975 default collection format to csv according to the spec (#201) 2018-04-23 10:14:45 +02:00
Jon Schoning db02cc2ac9 [haskell-http-client] resolve oas 2.0 regressions (#198)
* [haskell-http-client] fix codegen issues

* ensure datatypeWithEnum is set on codegenParameter when is enum

* [haskell-http-client] fix isAlias + arrayModelType missing "datatype"

* [haskell-http-client] param.isListContainer is sometimes false for list types

* [haskell-http-client] gen MimeNoContent instances automatically

* [haskell-http-client] fix example-app and integration tests

* [haskell-http-client] update docs
2018-04-23 16:10:50 +08:00
Jérémie Bresson 019b0dca1c Add echo line at the beginning of each sh script (#202) 2018-04-23 09:58:45 +02:00
William Cheng 2833319b81 Update Groovy petstore client via OAS2 (#133)
* restore groovy client from codegen 2x

* update groovy client with oas2

* reformat groovy templates to remove empty lines
2018-04-23 14:12:37 +08:00
William Cheng a2e299fe1a change default value for c# 2.0 api client (#194)
Change default value for C# 2.0 API client
2018-04-23 14:06:16 +08:00
William Cheng 2f84f315f9 Fix NPE when getting the default value (#196)
* fix NPE when getting the default value

* rename test case

* better npe handling for repsonse example, default path to localhost

* fix code style
2018-04-23 11:47:16 +08:00
Jérémie Bresson 7ecd5f3566 Rename "swagger" to "openapi" (#191)
* Rename ".swagger-codegen-ignore" to ".openapi-generator-ignore"
* Rename setGenerateSwaggerMetadata(Boolean) to setGenerateMetadata(Boolean)
* Rename Metadata Folder to .openapi-generator
2018-04-22 21:28:17 +02:00
William Cheng a2afc6e32e remove swagger codegen files (#195) 2018-04-23 01:45:54 +08:00
William Cheng a7da9039a4 Update Scala petstore with OAS2, OAS3 (#162)
* update pestore with oas2

* update scala petstore oas3 (no diff)
2018-04-22 22:00:49 +08:00
William Cheng c32ef12c8e Update documentation (#184)
* update documentation

* fix broken links

* minor fix

* add more section

* add line break to license

* add list of founding members

* fix typo
2018-04-22 21:34:55 +08:00
Jérémie Bresson b109bf7ddc Update "jaxrs-cxf-client" sample OAS2, OAS3 (#172) 2018-04-22 10:41:16 +02:00
William Cheng 6959ef9939 Update Clojure Petstore with OpenAPI spec v3 (#181)
* update clojure test

* update with clojure oas3
2018-04-22 16:32:51 +08:00
Jérémie Bresson 07dfbad29d Merge branch 'swagger-codegen_renamed' into 'master' (#183)
* Added vendorExtensions.x-isPrimitive. (#7991)

* Added vendorExtensions.x-isPrimitive.

Switch template for constructFromObject.

* Reflect review indication.

* [typescript-angular] AOT-compatible API client (via ng-packagr and ngc) (#7984)

* typescript-angular: uses ng-packagr for the build

see https://github.com/swagger-api/swagger-codegen/issues/6722
see https://github.com/swagger-api/swagger-codegen/pull/6735/

* this should make everybody happy: Angular 2/4/5 AOT support

- uses ngc when targeting Angular 2 (as seen in https://github.com/swagger-api/swagger-codegen/pull/6735)
- uses ng-packagr 1 when targeting Angular 4
- uses ng-packagr 2 when targeting Angular 5

* removes bogus import

* cleans / updates Petstore samples, adds a new sample for Angular 5

* typo in README

* fixes broken travis build. adds pom.xml files again

This reverts commit 471d248a2e9b5d8eed10c71644c222c053e007b0.

* makes usage of `dist` more clear

and i feel generally better when `npm run build` is called explicitly.

- for ng-packagr 2 is doesn't matter, since the final package.json does not have any scripts
- for old ng-packagr 1 it matters, scripts are copied to the final package.json which breaks installation via `npm install {{npmName}} --save` (it runs `npm run build` again)

* typescript-angular: small improvements as suggested by @macjohnny

* angular-typescript: updated petstore samples, 3rd try

* Issue 5542, always generate pom and readme (#7977)

* Issue 5542, generate pom.xml with separate parameter. InterfaceOnly=true for not generating pom.xml not works in every situation.

* Issue 5542, generate pom.xml with separate parameter. InterfaceOnly=true for not generating pom.xml not works in every situation.

* Issue #5542 Always generate pom.xml and README.md

* [TypeScript][Angular] fix date path parameters (#7476, #7302) (#7479)

* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it

* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it

* #7476, #7302: [TypeScript][Angular] fix date path parameters, fix path parameters with :.+ in it

* #7476: generate samples

* code cleanup

* #7476: improve variable description

* #7302: revert character skipping, since it will now have the same parameter name in the method signature and in the api path

* #7302: generate samples

* typescript-angular: added Interfaces to api exports if withInterfaces is selected (#7975)

* added Interfaces to api exports if withInterfaces is selected

* removed import of interface classes

* added gererated petstore example api.ts

* Fix Issue 8014

* Adapted to work with Angular2 Http and Angular 4.3+ HttpClient

* removed unnecessary (others) for ng HttpClient from Interface

* Golang Client Refactor (body and model in errors, typed optional parameters) (#7987)

* Return abstracted errors with model data if available.

* update tests with error models.

* Return error models on the abstract type.

* dont leak FH

* duplicate of PR #7752 for issue #7511

* Change optional parameters to structs.

* update documentation

* fix circleCI failure

* [typescript][angular] query parameter with null value should not be set (#8033)

* #7893: [typescript][angular] fix optional query parameter null value

* #7893: [typescript][angular] generate samples

* #7893: [typescript][angular] generate samples

* Version rest-assured has been updated to 3.1.0 (#8052)

* [Dart] Fixes TypeError in Dart 2 mode (#7959)

* Properly convert lists to dart types

* Updated sample petstore client

* Fixed maps in Dart strong mode
Fixed list parsing for null-elements

* change parseDate in es6/APIClient (#7973)

* [PHP] Improve duplicated validation logic (#7954)

* Improve duplicated validation logic

* Update the samples
2018-04-22 16:32:30 +08:00
William Cheng 35f0cc221d update erlang client with oas3 (#182) 2018-04-22 10:25:30 +08:00
Jérémie Bresson edbe4902a4 Consider '$ref' for consumes and produces in CodegenOperation (#180) 2018-04-21 18:40:52 +02:00
William Cheng e1fe9a3b60 update clojure petstore with oas3 (#118) 2018-04-21 23:35:21 +08:00
Jérémie Bresson fe00a63ed0 Remove deprecated classes (#177)
* Remove:
 - org.openapitools.codegen.Codegen
 - org.openapitools.codegen.MetaGenerator

* Renaming:
 - DynamicSwaggerConfig > DynamicConfig
 - SwaggerResource > CodegenResource
2018-04-21 17:26:54 +02:00
William Cheng f79f23865b update clojure petstore with OAS2 (#117) 2018-04-21 23:06:07 +08:00
Akihito Nakano 5e05638360 Fix content type (#179)
* Update php client with OAS3

* Fix content type

the endpoint consumes 'application/x-www-form-urlencoded'

* Regenerate php client from OAS3

* Update the test case according to the fix on spec
2018-04-21 22:26:35 +08:00
Jérémie Bresson 72ffc95d6e Consider '$ref' for 'getProducesInfo' and 'getConsumesInfo' (#176) 2018-04-21 15:45:43 +02:00
Jérémie Bresson 2e50780e1d Remove "swagger-" prefix from artifactId (#170)
* Remove "swagger-" prefix in the samples artifactId
* Rename some artifactIds to make them unique
2018-04-21 12:31:21 +02:00
Akihito Nakano 1f0bed2a0c Update php client with OAS2 (#149)
* Update php client with petstore OpenAPI v2 spec

bin/php-petstore.sh

* Change order of arguments according to the changes that auto-generated codes

* Fix 'FakeHttpClient not found' error

It has occured when run the test case separately like below.
"vendor/bin/phpunit tests/RequestTest.php"

* Update assertion according to a change on spec

* Update assertion
2018-04-21 18:13:45 +08:00
William Cheng 856ed05b00 update pom to include core team (#174) 2018-04-21 17:23:27 +08:00
Jérémie Bresson e85733a5ec Fix NullPointer exception in 'preprocessOpenAPI' (#171) 2018-04-21 15:23:07 +08:00
William Cheng 0736939c2a Remove x-codegen-hasMore extensions (#169)
* remove x-codegen-hasMoreRequired from ruby template

* remove x-codegen-hasMore from html2 templates

* remove commented code
2018-04-21 12:49:27 +08:00
Tomasz Prus d74d2ba031 fix: python clients (#136)
* fix: python client

* fix: regenerate petstore samples for python-asyncio/tornado

* fix: python-asyncio tests

* fix: python-tornado tests

* chore: update python samples

* fix: enable tests for python-tornado

* fix: discriminator property

* fix: file type

* python: regenerate samples

* fix: define file as generic type
2018-04-21 11:54:40 +08:00
William Cheng fdeca629bb Update JS petstore with OAS2, fix example values (#168)
* restore js petstore from codegen 2x

* update js petstore with oas2, fix example values

* remove comment code in js generator
2018-04-21 11:49:02 +08:00
William Cheng 93bf3d91ea Update C++ Pistache samples with oas2, oas3 (#166)
* restore pistache from codegen 2.x

* update pistache samples with oas2

* update pistache with oas3 petstore (no diff)

* restore datatype for array of model

* update pisache server scripts

* Revert "restore datatype for array of model"

This reverts commit 3b949a3873f3fca78311065173eda26e786dedec.

* fix array of models in method signature
2018-04-21 00:40:45 +08:00
William Cheng b67364e713 fix scalaz-petstore.sh oas3 script (#167) 2018-04-20 23:52:46 +08:00
Jérémie Bresson d21e4227a6 Update finch Petstore OAS2 (#126)
* Update finch sample

* Udpate 'finch' samples

* update finch with oas3 petstore (no diff)
2018-04-20 21:52:22 +08:00
William Cheng 8a4f905892 Update C++ Restbed server samples with OAS2, OAS3 (#165)
* restore restbed samples from codegen2x

* update restbed samples with oas2

* update restbed sample with oas3 (no diff)
2018-04-20 19:07:42 +08:00
William Cheng fa346ce004 Update Javascript closure angular Petstore samples with OAS2, OAS3 (#164)
* update js closure angular with oas2

* update js closure angular with oas3 (no diff)
2018-04-20 19:01:05 +08:00
William Cheng 3e0f959215 Update Scalaz petstore with OAS2, OAS3 (#163)
* update scalaz petstore with oas2

* update scalaz oas3 petstore (no diff)
2018-04-20 19:00:52 +08:00
William Cheng e4b1613d1e Update akka-scala petstore with OAS3 (#161)
* update akka-scala with oas3 petstore

* update akka-scala petstore oas3, fix import model
2018-04-20 16:58:27 +08:00
Jérémie Bresson f3736d66b7 Fix "meta" command (#157)
* Fix "meta" generator

* Add script in bin/ to test the use case

* Add result in samples/

* Update read-me

* Implement 'escapeQuotationMark'
2018-04-20 15:25:51 +08:00
William Cheng 03490e9230 fix java binary mapping (#158) 2018-04-20 08:20:13 +02:00
William Cheng 28a1255c0e Update Go server petstore sample with OAS3 (#154)
* restore go server from codegen 2x

* update go server petstore with oas3
2018-04-20 12:05:27 +08:00
Jérémie Bresson e24238a355 Improve getter name handling for boolean properties (#141)
* Handle java boolean getter at codegen level instead of template.
* {{#isBoolean}}is{{/isBoolean}}{{getter}} is no longer necessary in templates.

* Use 'toBooleanGetter' instead of replace in PhpSymfonyServerCodegen
2018-04-19 19:11:27 +02:00
William Cheng 686ff6a502 Go server petstore update (OAS2, OAS3) (#146)
* restore go server petstore from codegen 2x

* update go server petstore (oas2) - no diff

* update go server samples (oas3)

* add go petstore server script
2018-04-19 21:57:22 +08:00
William Cheng 86f67c6665 Update Erlang client petstore (OAS2) (#147)
* update erlang client, add method to customize array model parameter name

* remvoe debug log
2018-04-19 21:22:24 +08:00
William Cheng c20352caab Update Android Petstore (httpclient, volley) with OAS2, OAS3 (#145)
* restore android samples from codegen 2x

* update android volley with oas2

* update android volley oas3

* update android http client petstore (oas2)

* update android httpclient petstore (oas3)
2018-04-19 16:13:35 +08:00
William Cheng 80d10e2cba Update C# dotnet2 client with OAS2, OAS3 petstore (#143)
* update csharp2 from codegen 2x

* update csharp dotnet 2 client (oas2)

* update csharp dotnet2 with pestore oas3
2018-04-19 15:05:47 +08:00
William Cheng 6e2ca294b5 update discriminator to discriminatorName (#142) 2018-04-19 15:02:22 +08:00
Jeremie Bresson 74075c087e Primitive datatype in Schema components
Fix for https://github.com/swagger-api/swagger-codegen/issues/7754
2018-04-19 07:15:10 +02:00
William Cheng 9fdcb3681b Update ObjC petstore and test cases (#139)
* restore objc samples from codegen 2x

* update objc petstore test

* update objc with oas3 petstore
2018-04-19 12:08:00 +08:00
William Cheng 231547f6c7 fix isFile flag in response (#135) 2018-04-19 09:18:30 +08:00
William Cheng d8abd4a14b support map in body parameter (#134) 2018-04-19 09:18:13 +08:00
William Cheng f9bc1aec9d update scalatra petstore with oas3 (#132) 2018-04-19 09:17:44 +08:00
William Cheng 74ddbf7a16 update scalatra with oas2 spec (#131) 2018-04-19 09:16:52 +08:00
William Cheng 0feef2b57e Update akka-scala petstore with OAS2, fix description in responder header (#129)
* update akka-scala sample by codegen 2x

* fix description in response headers, update akka scala generator
2018-04-19 09:16:28 +08:00
William Cheng 7c734445b2 fix file parameter in header file (cpprest) (#130) 2018-04-18 22:29:53 +08:00
William Cheng 52af29f46d Update CPPREST client with OAS2 (#128)
* restore cpprest from codegen 2x

* fix cpprest by modifying the template

* better naming for array of models

* updtae cpprest samples with oas2
2018-04-18 18:13:35 +08:00
William Cheng 05f5c5798b Update html, dynamic-html petstore, fix example value for form parameters (#122)
* update dynamic-html samples with oas2

* update dynamic-html oas3 (no change)

* update html petstore (oas2)

* update html petstore with oas3

* fix example value for form parameters

* fix javadoc string
2018-04-18 17:42:38 +08:00
Jérémie Bresson 391c75b5b3 Format mustache pom template (#125) 2018-04-18 09:19:40 +02:00
Jérémie Bresson ca89af8080 Switch to Java 8 (#124)
* Set java version 1.8

* Remove "joda-time" usage
* Remove 'com.google.common.base.Function' usage
* Remove "LinkedListMultimap" usage

* Add guava to the dependencies
2018-04-18 09:18:46 +02:00
William Cheng 186594115f Update swagger-core to 2.0.1 (#127)
Update swagger core to latest stable version
2018-04-18 08:27:08 +02:00
Jérémie Bresson 48ae13df81 Array fixes (#102)
* Fix for arrays in requestBody

* Map description from RequestBody in CodegenParameter

* Fix missing import of model class with nested arrays in response

* Fix imports, consistent 'baseType'

* Add tests for enum
2018-04-18 05:20:58 +02:00
Jérémie Bresson f5f6a7b1fa Set swagger-parser-version to 2.0.0 (#119) 2018-04-18 05:18:30 +02:00
William Cheng 08038ddc30 update haskell servant samples with oas3, oas2 (#116) 2018-04-18 01:48:49 +08:00
William Cheng a30e25e50d Update ObjC petstore with oas2, fix default value for parameter (#115)
* update objc petstore with oas2, fix default value for parameter

* update objc petstore with oas3 spec

* update objc core data oas2

* update objc petstore with oas3
2018-04-18 01:47:32 +08:00
William Cheng ddf10b98dc Update NodeJS server petstore samples with OAS2, OAS3 (#113)
* update nodejs server oas2

* update nodejs server petstore with oas3

* update nodejs google cloud with oas2 petstore

* update nodejs server google function with oas3
2018-04-17 22:58:13 +08:00
William Cheng dc0cbd23b6 update tizen samples with oas3 petstore (#114) 2018-04-17 22:53:09 +08:00
William Cheng 4845eaa81d Update bash Petstore OAS2 (#112)
* update bash petstore oas2, fix default parameter, map file to binary

* update bash petstore with oas3 script
2018-04-17 22:39:26 +08:00
William Cheng 0fc84687ff update rails petstore (oas3) (#111) 2018-04-17 21:03:00 +08:00
Jérémie Bresson 93301eaacf Fix NullPointer with empty Composed Schema (#107) 2018-04-17 10:50:10 +02:00
Jeremie Bresson cae0d83742 Merge commit 'swagger-codegen_renamed' into 'master' 2018-04-17 09:21:42 +02:00
Jeremie Bresson 53597764c3 Add OpenAPI spec 3.0 support (beta)
Co-authored-by: Akihito Nakano <sora.akatsuki@gmail.com>
Co-authored-by: Jeremie Bresson <dev@jmini.fr>
Co-authored-by: Jim Schubert <james.schubert@gmail.com>
Co-authored-by: Martin Delille <martin@phonations.com>
Co-authored-by: Tomasz Prus <tomasz.prus@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
2018-04-17 09:19:10 +02:00
Jeremie Bresson 625e13656c Merge and rename remote-tracking branch 'swagger/master' into 'swagger-codegen_renamed' 2018-04-14 17:06:10 +02:00
Jeremie Bresson a32e2570ec Merge commit 'oas3_support2' into 'swagger-codegen_renamed'
=> include last 'swagger-codegen_master -> oas3_support2' merge into 'swagger-codegen_renamed' for future merge
2018-04-14 16:42:41 +02:00
Jeremie Bresson db413f4d26 Rename projects from swagger-codegen master branch 2018-04-14 16:36:30 +02:00
Jérémie Bresson 006f084b53 Allow to set values with setApiPackage(..) and setModelPackage(..) (#8013)
* Add getInvokerPackage() getter

* Add test cases

* Handle values set with setModelPackage(..) and setApiPackage(..)
2018-04-13 21:11:26 +08:00
Jérémie Bresson 2034f61e53 Add HideGenerationTimestamp getter and setter in the CodegenConfig interface (#8009) 2018-04-12 15:38:10 +08:00
Jérémie Bresson d0e2d7684d Getter and Setter for hideGenerationTimestamp (#7998)
* Create unit test to control regressions

* Change HIDE_GENERATION_TIMESTAMP handling

* Add new test case: set values with the setters

* Add 'isHideGenerationTimestamp()' getter
2018-04-11 23:44:12 +08:00
HugoMario 338b9c04b8 Merge pull request #8003 from swagger-api/issue-7999
show number as strings
2018-04-10 19:48:40 -05:00
Hugo Mercado b5ffeff925 added test to verify behavior. 2018-04-10 19:36:23 -05:00
Hugo Mercado 57a8f9f599 show number as strings 2018-04-10 10:21:52 -05:00
wing328 cf735f95d8 Merge branch 'master' into oas3_support2 2018-04-10 00:02:38 +08:00
Ignacio Molina Cuquerella c91ce17aee Feature/javaPlayWithAsynchronousControllers (#7705)
* Add property 'supportAsync' to allow the use of CompletionStage of java8

* Add support for completionStage in play-framework templates

* Add script to generate samples for play-framework async controllers

* Add generated samples for java play framework with asynchronous controllers

* Add missing templates and generate samples

* Remove useless comments from generated samples in play framework async

* Fix ControllerImp template for java play framework

* Add script for java play framework async to general script

* Regenerate java play framework server samples

* Fix missing whitespace

* Fix unnecessary blank lines at imports

* Fix tabulation issue

* Fix tabulation issue in controllers

* Remove blanks from api Imp

* Remove more empty lines

* Add blank between methods

* Remove blanks before call to service method

* Fix some tabulations in java play async templates

* Regenerate samples for java play async
2018-04-09 22:41:22 +08:00
Bjarni Þór Jónsson 009dcf0090 Mark not required swagger properties as optional typescript properties (#7806)
* Mark `not required` swagger properties as optional typescript properties

Properties that aren't required in the swagger contract should be marked as optional typescript properties, i.e. with `?` after their name when they are defined.

* Adding Petstore samples files generated with the optional property change
2018-04-09 22:12:17 +08:00
Andrew Diamond 12abfb9686 [aspnetcore] Update Dockerfile (#7873)
* Update Dockerfile

* Readd telemetry optout

* Update Petstore samples
2018-04-09 22:09:51 +08:00
William Cheng 5fb26842ce Merge pull request #37 from wing328/fix_js_doc
Update JS doc to remove x-codegen reference
2018-04-09 14:30:50 +08:00
wing328 eab65306c5 update js doc to remove x-codegen reference 2018-04-09 14:27:08 +08:00
William Cheng b0e2eeeb55 Merge pull request #36 from wing328/fix-unknown-param-name
Fix unknown parameter name for body parameter
2018-04-09 13:17:06 +08:00
wing328 f21d01d1c4 fix unknown parameter base name for body parameter 2018-04-09 12:58:19 +08:00
William Cheng 9c32979d95 Merge pull request #35 from wing328/ts_fix_any
Fix TS incorrect object declaration
2018-04-09 12:44:19 +08:00
wing328 b5f0b24bae fix object declaration in model 2018-04-09 12:41:36 +08:00
William Cheng 7ca8edb590 Merge pull request #34 from wing328/python_flask_fix
Fix Python Flask parameter naming to make it consistent with Python client generator
2018-04-09 11:58:28 +08:00
wing328 9999eac528 fix python flask parameter naming 2018-04-09 11:56:19 +08:00
wing328 4109f51a22 add ruby oas3 script 2018-04-09 11:21:33 +08:00
William Cheng 3e9931c550 Merge pull request #33 from wing328/fix_ruby_output
Fix requiredParams, add optionalParams
2018-04-09 11:10:09 +08:00
wing328 c1e7da5ec1 update ruby readme template 2018-04-09 11:01:01 +08:00
wing328 a08164592a fix ruby parameters in documentation, fix reuqiredParams, optionalParams 2018-04-09 10:48:45 +08:00
William Cheng dce41a0029 Merge pull request #32 from wing328/fix_ruby_output
Various fix for ruby client generator
2018-04-09 02:08:07 +08:00
wing328 26f08aa8ad fix number's max, min value 2018-04-09 01:45:28 +08:00
wing328 3b6f280d0b fix max, min for number 2018-04-09 01:41:58 +08:00
wing328 adbde2fb61 replace fromOperation with postProcessOperations 2018-04-09 01:27:28 +08:00
wing328 9d1ae0dd29 fix bigdecimal in default codegen 2018-04-09 01:14:51 +08:00
wing328 4c00d4564c Merge branch 'oas3_support2' of https://github.com/wing328/openapi-generator into oas3_support2 2018-04-09 00:11:39 +08:00
wing328 a339422bd5 move get type declaration method to c++ restbed 2018-04-09 00:08:50 +08:00
William Cheng b34f328e12 Merge pull request #25 from ackintosh/fix-collection-format-in-header-parameter
Fix collection format in header parameter
2018-04-09 00:05:01 +08:00
wing328 070b5c00b8 fix object type declaration in cpprest 2018-04-09 00:01:27 +08:00
William Cheng 6d88edb336 Merge pull request #31 from wing328/cpp_fix
fix string type detection in c++ generator
2018-04-08 23:30:04 +08:00
wing328 b6eb3451c8 add windows batch script for pistache server 2018-04-08 23:13:05 +08:00
wing328 f192613f11 fix string type in c++ generator 2018-04-08 23:03:18 +08:00
William Cheng 353dd3ee66 Merge pull request #30 from wing328/fix_restbed
Fix String check in RestBed generator
2018-04-08 22:19:31 +08:00
wing328 6fef0a7ffe fix string issue with restbed generator 2018-04-08 22:07:46 +08:00
wing328 ffa0e115d9 fix default value and type declaration 2018-04-08 21:04:50 +08:00
William Cheng 665f0bd811 Merge pull request #28 from wing328/fix_numeric_enum
Fix numeric enum throwing NPE
2018-04-08 18:05:48 +08:00
wing328 01e1fb2415 fix numeric enum throwing npe 2018-04-08 17:40:12 +08:00
William Cheng 113e8ad9fd Merge pull request #24 from ackintosh/fix-enum_query_double
Fix 'enum_query_double' definition
2018-04-08 16:57:10 +08:00
William Cheng 821fba394d Merge pull request #22 from ackintosh/fix-yaml
Fix request content-type for '/fake/jsonFormData'
2018-04-08 16:56:22 +08:00
William Cheng 1160dbdb26 Merge pull request #27 from wing328/inline_support
Mark form parameter's schemas as unused in OAS 3.0 spec
2018-04-08 16:55:49 +08:00
William Cheng e447e7dfb8 Merge pull request #20 from wing328/qt-update-client
[qt] update client
2018-04-08 16:55:33 +08:00
wing328 2c17a3d376 add method to skip form parameter's model 2018-04-08 12:22:43 +08:00
akihito.nakano 63449a49c4 Tweak test codes according to the parameter order changes
same changes in another PR:
https://github.com/wing328/openapi-generator/pull/24/commits/36ed29852ee9135242fd209a7a270fdc3289742b
2018-04-08 12:33:47 +09:00
akihito.nakano 6e0e6fb7a1 Update samples
bin/openapi3/php-petstore.sh
2018-04-08 12:32:14 +09:00
akihito.nakano 016087c462 Explode the header value 2018-04-08 12:31:39 +09:00
akihito.nakano 0e744adb80 Apply collection format to SIMPLE enum style
in order to separate 'header' parameter values
2018-04-08 12:29:53 +09:00
akihito.nakano 827880a624 Update samples before starting fixes 2018-04-08 12:18:17 +09:00
akihito.nakano 36ed29852e Tweak tests according to the parameter order changes 2018-04-08 02:21:26 +09:00
akihito.nakano c4248e2fba Update samples 2018-04-08 02:15:03 +09:00
akihito.nakano 17b0827935 Move 'enum_query_double' to parameters section 2018-04-08 01:39:41 +09:00
akihito.nakano 6af31c97c2 Fix 'in' value for 'enum_query_double' 2018-04-08 01:32:00 +09:00
akihito.nakano df4297975c Update samples before starting fixes 2018-04-08 01:32:00 +09:00
wing328 585865e47f Merge branch 'master' into oas3_support2 2018-04-07 22:01:31 +08:00
Benjamin Berman 2e69e6c03e build.gradle should not have commas here (#7985)
The commas are invalid syntax and create the error:

```
A problem occurred evaluating project ':client'.
> Could not get unknown property 'testCompile' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
```
2018-04-07 21:41:43 +08:00
akihito.nakano e33bd42f39 Tweak the test code 2018-04-07 20:33:39 +09:00
akihito.nakano c7bf3360b7 Update samples 2018-04-07 20:18:57 +09:00
akihito.nakano 4b812935b8 '/fake/jsonFormData' consumes 'application/json' 2018-04-07 20:14:21 +09:00
akihito.nakano e356bd4eba Update samples before starting fixes 2018-04-07 20:13:25 +09:00
wing328 9e8bdba455 undo spec change 2018-04-07 17:25:33 +08:00
wing328 7ce35d3ab7 use $ref instead of inline def for form parameters 2018-04-07 16:23:39 +08:00
wing328 d18fe7375d Merge branch 'master' into oas3_support2 2018-04-07 16:03:05 +08:00
Fabian Braun ce930e7a63 [Jaxrs-cxf] Add bean-level cascaded beanvalidation for pojos (@Valid) fix #4738 (#7807)
* add valid for pojos #4738

* add Valid to imports for pojos #4738

* Do not generate Valid-annotation for Date-types and UUID

* * add Valid-annotation to Containers.  #4738

Collection-valued, array-valued and generally Iterable fields and properties may also be decorated with the @Valid annotation. This causes the contents of the iterator to be validated.
Quoted from: http://beanvalidation.org/1.1/spec/

* add equivalent windows-bat-script for jaxrs-cxf-petstore-server.sh

* differences on jaxrs-cxf-generated-classes introduced by other changes (not related to this PR)
2018-04-07 15:16:22 +08:00
Martin Delille 4e4a626ecf [qt] update client 2018-04-06 16:46:12 +02:00
William Cheng d2bd41dc81 remove TypescriptInversifyAdditionalPropertiesIntegrationTest.java to (#7983)
skip integration test errors
2018-04-06 22:15:57 +08:00
ChrisNguyenGeek 85048f6a05 Removed a duplicated entry in the config file (#7981) 2018-04-06 16:33:41 +08:00
Yukio Ejiri a3322fbf7e [kotlin] Add OkHttpClient.Builder to ApiClient. (#7907) 2018-04-06 15:27:39 +08:00
benbenw bdd2c2a4ee Misc typescript Angular code generation improvements (#7898)
use const instead of let when possible
add missing semi-colon
replace " with '
2018-04-06 15:12:23 +08:00
Daiki Matsudate 40d5d09905 [Swift4] accept empty content with default client (#7921)
* [swift4] update mustache to accept empty body

* [swift4] update client

* [swift4] update client tests
2018-04-06 14:59:29 +08:00
Akihito Nakano 35d681b254 Fix the missing tag on FakeApi (#7952) 2018-04-06 14:27:08 +08:00
Akihito Nakano 4a5d16b236 [PHP] Fix string length validation (#7953)
* Add a test case which reproduces the issue

https://github.com/swagger-api/swagger-codegen/issues/7846

* Change `strlen` -> `mb_strlen` in order to count the length correctly

* Regenerate the samples
2018-04-06 14:20:05 +08:00
Benjamin Gill 37faaf9266 [rust-server] API version constant and composite version support (#7969)
* Add constant with API version

* Use semver::Version for ApiVersion

* Go back to API version as a string

* Rust composite services

* Actually use the version from the swagger file
2018-04-06 13:27:13 +08:00
wing328 d48c4e5038 Merge branch 'master' into oas3_support2 2018-04-05 23:49:59 +08:00
Jérémie Bresson 386b9f432a Modify "postProcessOperations" for "jaxrs-cxf-client" (#7886)
* Fix sh script for 'jaxrs-cxf-client' and generate sample

* Modify "postProcessOperations" for "jaxrs-cxf-client"

* Update "jaxrs-cxf-client" sample
2018-04-05 23:34:37 +08:00
wing328 3cb3faedc1 update swagger core version to 2.0.0 2018-04-05 16:51:33 +08:00
wing328 409015461c fix file type in qt5cpp 2018-04-05 15:56:30 +08:00
wing328 a4bcb3bc73 fix datetime and map type for qt5cpp 2018-04-05 14:36:35 +08:00
wing328 d882ad2fcb using isMapSchema in generator 2018-04-05 13:18:04 +08:00
wing328 b8031b631d fix npe by MapSchema 2018-04-04 23:02:13 +08:00
wing328 df19e1e05e fix NPE with qt5 pestore 3.0 spec 2018-04-04 22:37:12 +08:00
wing328 8dbf2ed851 add spring generator 2018-04-04 22:20:22 +08:00
wing328 7310bbf31e add openapi (json/yaml) generator 2018-04-04 22:00:15 +08:00
wing328 1bc015f5ae add java undertow server generator 2018-04-04 18:40:31 +08:00
wing328 a6c8330e10 add elm generator 2018-04-04 18:20:17 +08:00
wing328 4887be0b1e add ts inversify generator 2018-04-04 17:45:39 +08:00
wing328 ffa89dc373 Merge branch 'master' into oas3_support2 2018-04-04 17:33:28 +08:00
wing328 8b3bd049a9 add JavaJAXRSCXFCDIServerCodegen generator 2018-04-04 17:25:13 +08:00
wing328 60fdfdfbed add jaxrs spec generator, rename openapi.mustache 2018-04-04 17:18:48 +08:00
wing328 c843712cdb add java inflector 2018-04-04 17:05:07 +08:00
wing328 e53d375589 add java-msf4j generator 2018-04-04 16:57:44 +08:00
wing328 c45a217a8c add java cxf client, server generator 2018-04-04 16:51:57 +08:00
wing328 f6c268ddd9 add jaxrs jersey server generator 2018-04-04 16:32:06 +08:00
wing328 b45b0c6cd1 add java resteasy eap server generator 2018-04-04 16:22:24 +08:00
wing328 5180881a50 add resteasy server genrator 2018-04-04 16:16:04 +08:00
Yukio Ejiri 3c5fb1d809 [kotlin] Add json annotation to each enum value. (#7908)
* [kotlin] Add moshi.Json annotation.

* [kotlin] update petstore samples.

* [kotlin] Remove extra new lines.
2018-04-04 15:26:19 +08:00
wing328 1db42ba317 add jmeter generator 2018-04-04 00:56:12 +08:00
Gualtieri Mario e2c58fad71 Add typescript-inversify code generator (#7885)
* Add typescript-inversify language

* Add windows script


Add windows script

* Use rxjs instead of rx and encoding only the value of URL parameters

* Remove lodash dependency


Remove lodash dependency

* Readd linux user detail on run-docker script

* Solve import problems

* Remove configuration template

* Add usePromise config's variable

* Align Test to check usePromise config parameter

* Add possibility to receive all the httpResponse

* Better ts-lint on api service

* Update sample client example with new ts-lint

* Update petstore sample with new ts-lint
2018-04-04 00:30:53 +08:00
wing328 581b22bbc0 add java pkmst server generator 2018-04-04 00:24:01 +08:00
gs 240aad8686 Additional reserved python keywords (#7956) 2018-04-04 00:15:15 +08:00
William Cheng 74fa9418d8 add link to Swagger Codegen eBook in Japanese 2018-04-04 00:14:06 +08:00
wing328 8b39024932 add java vertx server generator 2018-04-03 22:04:51 +08:00
wing328 2297a70512 add play generator 2018-04-03 15:59:15 +08:00
wing328 d4cd0bdc3e add java generator 2018-04-03 15:45:24 +08:00
wing328 ffecaa1b0b add html, html2 generators 2018-04-03 14:36:08 +08:00
wing328 0081a2b89f add dynamic-html generator 2018-04-03 14:21:31 +08:00
wing328 e2b9c8323d Merge branch 'master' into oas3_support2 2018-04-02 23:01:07 +08:00
wing328 70fec38022 remove old codegen files 2018-04-02 22:53:22 +08:00
murzic4 bad1885b47 fix #7906 [cpprest] add parameterToString for number type with unspecified format (double) (#7929) 2018-04-02 16:44:09 +08:00
wing328 5d1874028b add class as a keyword in objc generator 2018-04-02 16:36:01 +08:00
wing328 904cdc0d5b Merge branch 'master' into oas3_support2 2018-04-02 16:34:11 +08:00
wing328 7673813648 update cpp qt5 sample 2018-04-02 16:25:35 +08:00
Martin Delille 23b31aba89 [qt5cpp] Fix crash when API return a map container (#7933)
* [qt5cpp] Fix crash when API return a map container

* qint32 => {{returnBaseType}}
2018-04-02 16:24:57 +08:00
William Cheng f2186b212c Merge pull request #4 from wing328/qt-update-client
Qt update client
2018-04-02 16:06:56 +08:00
wing328 b550471573 fix long cast to int 2018-04-02 16:03:40 +08:00
wing328 d690f429df fix model name when obtaining from get$ref 2018-04-02 15:28:03 +08:00
aneeshkasokan 1b8df5c20f Update ObjcClientCodegen.java (#7950)
Added "class" as a reserved keyword for Objc.
2018-04-02 15:05:32 +08:00
Euan Kemp b443573945 [Rust] Implement minimal auth support (#7338)
* [Rust] Implement minimal auth support

This is pretty much the bare minimum needed to get v2 auth working.

This is partly based on the Go implementation.

* [Rust] properly format query string

* [Rust] Improve auth formatting

* [Rust] Regenerate petstore sample
2018-04-02 14:58:26 +08:00
wing328 d40c28b2b9 add rust client, server generator 2018-04-02 12:53:06 +08:00
Benjamin Gill 6c7813e79c [rust-server] asynchronous support via hyper v0.11 (#7896)
* End use of deprecated openssl method

* Enhance rust-server to use hyper 0.11 to support handling operations asynchronously

The changes are complete and working (at least for microservices tested within Metaswitch).  This isn't completely compatible with the (previous/current) synchronous swagger-codegen.  Specifically,

*   `Client` is no longer `Send + Sync`
*   Api implementations used by Server are no longer expected to be `Send + Sync` (which is good, because it's quite hard if `Client` isn't)
*   the code to create `Client`s and `Server`s, and hook them into `hyper` or `tokio` is different.

Importantly, though, the business logic itself should be unchanged.

* Re-adds the `basePath` element to all server endpoints. This mean clients and servers can talk to each other again.

* Fix multipart formdata codegen

* Fix up handling of multipart messages
* Fix server -> client multipart message response
* Correct handling of optional file types

* Add authorization header to requests with basic auth

* Add client support for `application/x-www-form-urlencoded`

* Import uuid library if headers use UUID type

* Add BASE_PATH to the server module.

* Wrap client connector

* Support both query and body parameters on the same operation
2018-04-02 10:32:45 +08:00
wing328 9b5c71fdb2 add eiffel generator 2018-04-02 10:29:35 +08:00
wing328 960198d345 flash generator code format, update default value 2018-04-02 10:00:52 +08:00
wing328 6f5dee6169 add flash generator 2018-04-02 09:44:05 +08:00
wing328 bbadc7f439 add scalatra generator 2018-04-02 00:33:58 +08:00
wing328 9226ce61b1 add scalaz generator 2018-04-01 23:49:21 +08:00
wing328 3fc37cf13a add scala lagom server generator 2018-04-01 23:34:56 +08:00
wing328 e9089c85ae add scala gatling server 2018-04-01 23:13:50 +08:00
wing328 00f73f0ea8 add finch generator 2018-04-01 22:41:39 +08:00
wing328 cba5d7cabe Merge branch 'oas3_support2' of https://github.com/wing328/generate_test into oas3_support2 2018-04-01 22:25:50 +08:00
wing328 b0fc3e94a3 format code, add helper function to check body/form param 2018-04-01 22:25:22 +08:00
William Cheng 2fb9ce43b5 Merge pull request #9 from ackintosh/fix-discriminator
Fix broken discriminator
2018-04-01 19:09:54 +08:00
akihito.nakano 28fcf48f42 Add a method returns discriminator name
refs https://github.com/wing328/openapi-generator/pull/9#issuecomment-377776109
2018-04-01 19:38:19 +09:00
wing328 240d1fe7eb Merge branch 'oas3_support2' of https://github.com/wing328/generate_test into oas3_support2 2018-04-01 17:57:45 +08:00
wing328 af17953bf9 add apex generator 2018-04-01 17:57:21 +08:00
akihito.nakano 7daa2ec5da Fix broken discriminator 2018-04-01 18:29:13 +09:00
William Cheng 24db65b2b9 Merge pull request #8 from ackintosh/fix-required-flag
Fix 'required' flag
2018-04-01 14:37:04 +08:00
akihito.nakano 57bb63bd77 Update the sample codes
bin/openapi3/php-petstore.sh
2018-04-01 13:07:20 +09:00
akihito.nakano 8e191a121b Fix 'required' flag 2018-04-01 13:05:57 +09:00
wing328 88f48c4a41 add Ada client, server generator 2018-04-01 11:19:22 +08:00
akihito.nakano bd19c6bdea Update samples under openapi3 folder
Apply changes that comes with master
bin/openapi3/php-petstore.sh
2018-04-01 12:11:29 +09:00
wing328 b287520e8a Merge branch 'master' into oas3_support2 2018-04-01 01:45:34 +08:00
William Cheng f0497e249d Merge pull request #7 from ackintosh/fix-missing-requestbody-param
Fix missing requestBody param
2018-04-01 00:58:31 +08:00
wing328 64037ee59f update docker-related filee to ues jdk8 2018-04-01 00:52:09 +08:00
wing328 177c0105c3 add groovy generator, abstract java class (with TODO) 2018-04-01 00:25:12 +08:00
akihito.nakano 344eb85466 regenerate the samples 2018-04-01 00:42:21 +09:00
akihito.nakano d1c1ef73eb Fix missing 'requestBody' param 2018-04-01 00:40:06 +09:00
wing328 efada7c540 fix the location of openapi.yaml/json file 2018-03-31 23:01:34 +08:00
wing328 a784932f04 add erlang client, server 2018-03-31 22:17:49 +08:00
wing328 b774a98822 add js closure angualr client generator 2018-03-31 22:06:51 +08:00
William Cheng 1438f68f12 Merge pull request #6 from ackintosh/improve-map
Add helper function to determine if it is MapSchema
2018-03-31 21:35:27 +08:00
William Cheng d746d5653c Merge pull request #5 from wing328/update-issue-and-pull-request-template
Update issue and pull request template
2018-03-31 21:33:57 +08:00
akihito.nakano faa901640c Replace with the helper function: getTypeDeclaration 2018-03-31 20:52:44 +09:00
akihito.nakano 353c51fc0a Add helper function 2018-03-31 20:30:47 +09:00
William Cheng d9ec433a5b Merge pull request #2 from ackintosh/php-client
[WIP] Make PHPUnit green
2018-03-31 18:45:48 +08:00
wing328 5cea5972fa add swift 4 generator 2018-03-31 18:36:39 +08:00
wing328 b27e844661 fix openapi yaml/json file generation 2018-03-31 18:13:42 +08:00
wing328 565102eddf add swift3 client generator 2018-03-31 17:42:49 +08:00
wing328 5383c33181 add swift generator 2018-03-31 17:30:56 +08:00
wing328 eaed75229a add helper function to generate openapi yaml/json file 2018-03-31 17:11:54 +08:00
Ben Wells c8650d0e34 Make optional properties in models optional parameters (#7859)
* Make optional properties in models optional parameters

Move incorrect location of typescript-node client

* Add typescript node package.json to swagger ignore
2018-03-31 12:12:06 +08:00
wing328 e3a4bd6e68 rename cpp related generator 2018-03-31 10:36:31 +08:00
Martin Delille ddd09bc597 Update issue and pull request template 2018-03-30 14:09:55 +02:00
Martin Delille ee2eb74f75 [qt] update Qt client 2018-03-30 14:02:16 +02:00
William Cheng f2d56b038b add d-date to swift technical committee 2018-03-30 17:29:36 +08:00
Daiki Matsudate 46e5dddb05 removing trailing spaces (#7943) 2018-03-30 17:13:51 +08:00
Ben Wells 260375c9e1 Fix typescript-node generation of array type models (#7861) 2018-03-30 11:08:30 +08:00
Gerlando Caldara 45a2b5cae8 Update README.md (#7940)
Add Acando Company to list "Companies/Projects using Swagger Codegen"
2018-03-30 10:16:42 +08:00
wing328 c2759b393a add nodejs server support 2018-03-30 10:05:20 +08:00
akihito.nakano a5b38d0dfb Fix 'Class Swagger\Client\FakeHttpClient not found' 2018-03-30 01:21:13 +09:00
wing328 af6312efa5 add aspnetcore generator 2018-03-29 22:38:11 +08:00
wing328 cd0e0aa76c add c# nancy generator 2018-03-29 22:27:10 +08:00
wing328 ae2041f74e add csharp client generator 2018-03-29 21:42:21 +08:00
akihito.nakano 4b49b256bb Add a Pet before run test cases 2018-03-29 21:01:31 +09:00
akihito.nakano 75e354ed71 Fix broken map 2018-03-29 20:46:22 +09:00
akihito.nakano dd3d798f02 Merge branch 'oas3_support2' into php-client 2018-03-29 19:58:18 +09:00
akihito.nakano a6af75f99e Copy tests from "samples/client/petstore/php" 2018-03-29 19:46:18 +09:00
akihito.nakano a3c28adaef Generate PHP client from OAS3 2018-03-29 19:44:52 +09:00
wing328 ea6d26eb3b add abstract cpp generator 2018-03-29 18:39:19 +08:00
akihito.nakano a7a0fe0440 Output to the openapi3 foler 2018-03-29 19:28:32 +09:00
wing328 27404894d7 add cpp restbed generator 2018-03-29 17:32:51 +08:00
wing328 21ce66509e add cpp server generator 2018-03-29 16:57:16 +08:00
wing328 f8d089fb54 add haskell client generator 2018-03-29 16:01:15 +08:00
wing328 5646120b88 minor update to android generator 2018-03-29 15:06:49 +08:00
wing328 e5073db2d4 add ts node generator 2018-03-29 15:02:15 +08:00
wing328 e9630f1608 add ts generators 2018-03-29 14:51:23 +08:00
wing328 659f8248f0 add php symfony generator 2018-03-29 11:41:53 +08:00
wing328 b41626d1e8 rename php sever geneator, add php ze-ph generator 2018-03-29 11:28:21 +08:00
akihito.nakano f526c33516 Add another set of script(php) for OpenAPI3 2018-03-29 10:48:28 +09:00
akihito.nakano a53dae370a Revert "Bump up version of sample spec file"
This reverts commit adee16e073.
2018-03-29 10:42:00 +09:00
wing328 4d0bdf8aba remove debug logging 2018-03-29 00:24:33 +08:00
wing328 e3da003b1f add ts angular generator 2018-03-28 18:24:30 +08:00
wing328 9fa6abd1da add JS client generator 2018-03-28 16:58:02 +08:00
wing328 98a41db17c fix perl option test, minor reformat 2018-03-28 16:05:27 +08:00
wing328 341c0db734 Merge branch 'perl_generator' into oas3_support2 2018-03-28 15:49:20 +08:00
wing328 7dc40e1a83 Merge branch 'add_go_generator' into oas3_support2 2018-03-28 15:48:20 +08:00
wing328 f54b78f4bb Merge branch 'add_go_generator' into oas3_support2 2018-03-28 15:42:58 +08:00
William Cheng 0821cf7fd0 Merge pull request #3 from wing328/add_go_generator_testfix
Add missing generator cliOption
2018-03-28 15:42:30 +08:00
wing328 077c1de300 add python flask generator 2018-03-28 15:33:21 +08:00
wing328 0b89519cf8 add python generator 2018-03-28 11:48:42 +08:00
wing328 7ccdca36ad add lua generator 2018-03-28 11:41:55 +08:00
wing328 40d2381317 add kotlin server, set default lib to ktor 2018-03-28 11:27:46 +08:00
wing328 16183cba71 add kotlin client, server generator 2018-03-28 11:09:30 +08:00
wing328 aa697b15b7 add tizen generator 2018-03-28 10:52:01 +08:00
Jim Schubert 696b6a0930 Add missing generator cliOption 2018-03-27 22:11:49 -04:00
wing328 ff50ed187c add cpp client generator 2018-03-28 00:48:46 +08:00
wing328 0b61de9cd5 add cpprest generator 2018-03-28 00:25:48 +08:00
wing328 d07417eeae add cwiki doc generator 2018-03-27 23:16:40 +08:00
wing328 ee7d3b3b81 add clojure client generator 2018-03-27 23:05:49 +08:00
wing328 a58e645372 add apache 2 config generator 2018-03-27 22:50:48 +08:00
wing328 4a8db17077 add apache2 config generator 2018-03-27 22:50:36 +08:00
wing328 aa5a7ad540 add scala client generators 2018-03-27 22:45:21 +08:00
akihito.nakano e3ba2d9936 Merge branch 'oas3_support2' into tweak 2018-03-27 23:09:56 +09:00
wing328 e7743da0e9 add android generator 2018-03-27 21:50:41 +08:00
wing328 545823e39b add PowerShell generator 2018-03-27 21:43:12 +08:00
wing328 f89ba9950a add perl generator 2018-03-27 21:35:54 +08:00
wing328 fb20a6e075 add elixir generator 2018-03-27 21:16:36 +08:00
wing328 19c16fd572 add Dart generator 2018-03-27 20:49:50 +08:00
wing328 2cfde8bd65 add go generators 2018-03-27 20:40:30 +08:00
wing328 852b5b02bd add R client generator 2018-03-27 16:55:16 +08:00
wing328 24cb0f619f add ruby sinatra server generator 2018-03-27 16:41:54 +08:00
wing328 15bb50d822 add php silex generator 2018-03-27 15:24:10 +08:00
wing328 d2ebefd4d5 add php lumen generator 2018-03-27 15:15:08 +08:00
wing328 b799d694f0 add php slim generator 2018-03-27 14:55:46 +08:00
wing328 7cc6591ef9 Merge branch 'oas3_support2' of https://github.com/wing328/generate_test into oas3_support2 2018-03-27 14:34:33 +08:00
wing328 1e634257fe update gitignore 2018-03-27 14:34:01 +08:00
wing328 9e0a3ff069 migrate rails generator 2018-03-27 14:31:38 +08:00
William Cheng 18b2aaec2c Merge pull request #1 from ackintosh/oas3_support2
Fix missing version.properties
2018-03-27 14:18:40 +08:00
akihito.nakano adee16e073 Bump up version of sample spec file 2018-03-27 02:04:29 +09:00
wing328 1c22ec363b add python generator and tests 2018-03-26 23:56:56 +08:00
akihito.nakano b41774fd87 Fix missing version.properties 2018-03-27 00:30:00 +09:00
wing328 9cec2b3673 add back ruby tests 2018-03-26 23:17:33 +08:00
wing328 7fbc8fa31e add haskell generator 2018-03-26 22:39:27 +08:00
wing328 246ed57547 restore objc reserved word: property 2018-03-26 17:28:50 +08:00
wing328 0e9dff995c add objc generator and test 2018-03-26 15:50:50 +08:00
wing328 0e6da5bbd5 add original objc geneator and test 2018-03-26 12:00:55 +08:00
Akihito Nakano d58835e571 [PHP] Improve: Make validation strict (#7724)
* Add test case which reproduce the problem

refs https://github.com/swagger-api/swagger-codegen/pull/7686#issuecomment-368200011
> 1. We should pass true as 3rd argument of in_array()

* Add test case for setter

* Strict validation

* Update samples

* Tweak expected value according to changes in #7723
2018-03-25 23:17:46 +08:00
Akihito Nakano 6d88d073ca [NodeJS] make serverPort configurable via CLI option (#7899)
* Add "serverPort" option

* Use port number passed via CLI option if specified

* Replace hand-written param name with the constant

* Rename serverPort -> defaultServerPort

* Fix failed test

https://travis-ci.org/swagger-api/swagger-codegen/builds/357674590
2018-03-25 23:12:15 +08:00
Jeremy Bohrer fc7e083467 Add interfaces option (#7831)
[TypeScript][Fetch] Add interfaces option
2018-03-25 23:01:18 +08:00
davidbilge 40c30dd2f1 Fix inputSpec for multi module builds (#7883)
Prefix path to `inputSpec` with maven's `${project.basedir}`. The codegen-maven-plugin will look inside the current working directory so whether a relative path works or not is depending on where the maven build is invoked from. Using `${project.basedir}` makes the path absolute.
2018-03-25 22:51:40 +08:00
wing328 b5da183668 add bash generator and test cases 2018-03-25 16:39:50 +08:00
wing328 af4dcb9cbb add back php test cases 2018-03-25 13:51:17 +08:00
wing328 5326152ccd add option to reorder form/body parameter 2018-03-24 18:47:56 +08:00
wing328 6dc5f7f37b add OAI 3.0 spec for petstore and fake petstore 2018-03-24 16:25:12 +08:00
wing328 aafaf64268 add back resource test files for openapi-generator 2018-03-24 16:14:39 +08:00
wing328 01161abe71 rename openapi-generator-cli test folder 2018-03-24 16:03:51 +08:00
wing328 5f9a9bda00 fix array of body parameter type 2018-03-24 00:04:07 +08:00
wing328 1d09962996 fix file, binary array 2018-03-23 21:17:05 +08:00
wing328 7d07458b45 fix issues with form parameter 2018-03-23 18:25:08 +08:00
wing328 ce6efcf5bb fix security 2018-03-23 01:27:41 +08:00
Ben Wells ea2474d707 Fix strict class initialisation in auth classes (#7860) 2018-03-23 01:12:28 +08:00
wing328 a8c64f458f fix NPE with requestbody 2018-03-22 21:57:56 +08:00
etherealjoy 3b031ed2b8 [qt5cpp] delete callback data allocated before signal emission (#7840)
* Small fixes to prevent crash when empty json body is provided.

* Add deleteLater wrapper for pointers passed to user code to prevent memory leak.

* Updates to move Object Wrapper to separate file

* Add Prefix to class name
2018-03-21 20:51:17 +08:00
Philippe M d1850091a7 Improve JMeter Template : Fix Issue 7773 (#7774)
* Improve JMeter Template:
In CSV DataSet ignore first line as it contains headers
Share CSV for Thread-Group instead of doing it across all threads
Use scheduler
Add variables definable through properties for:
- Rampup
- Duration
- Threads
Drop HttpClient 3.1 customization
Remove in Test Plan Element host and port as they are defined in User
Variables

* Improve JMeter Template : Fix Issue 7773
This comment #7773
As per request update samples
2018-03-21 20:46:47 +08:00
HugoMario 22f0b8db43 Merge pull request #7882 from swagger-api/issue-7839-null-fields
removed null fields
2018-03-20 21:07:26 -05:00
Hugo Mercado 74fa3b1e13 removed null fields 2018-03-20 18:07:26 -05:00
Martin Delille fedfb0cda7 Factorize addOption/addSwitch method (#7814) 2018-03-21 00:31:01 +08:00
etherealjoy 73bd24db7d [cpprest] Add support for nested vectors (#7820)
* Small fixes to prevent crash when empty json body is provided.

* cpprest : Add toJson and toHttpContent array support.

* petstore : Run script.

* cpprest : Fix toHttpContent function header.

* petstore : Run script.

* cpprest : Add support for primitive response without enclosing item.

* cpprest : Fix spaces.

* cpprest : Fix build if bodyParam is optional.

* cpprest : Fix vector of vector param.

* Small updates to use utf encoding
Add * operator for ^required
2018-03-21 00:30:17 +08:00
Daiki Matsudate 3b7230b170 [Swift 4] Fix APIHelper to accept array parameter (#7821)
* fix typo

* use URLComponents instead of NSURLComponents

* add encode method for any type

* Add public initializer for modelObject

* change id to _id

* fix APIHelper funcs for array query parameters

* make public to write unit test

* add APIHelperTests

* fix typo

* fix regression
2018-03-21 00:23:47 +08:00
SergeyLyakhov f023327558 [JAVA] 4709: codegen with parcelableMode fails to build if using arrays in swagger. (#7867) 2018-03-21 00:10:24 +08:00
swavans f943332d62 Updated version number (#7880)
updated version number of swagger codegen to current stable
2018-03-20 23:59:15 +08:00
William Cheng 8e34f9a98b update to newer version of ruby (#7879) 2018-03-20 23:58:47 +08:00
Sergey Petrachkov 9443179d10 Update README.md (#7877)
add actonica to the list of users
2018-03-20 23:58:31 +08:00
wing328 f2489b256a fix issues with body parameters 2018-03-19 16:46:45 +08:00
garte f9b2839a30 Check date value before calling to_iso8601 (#7769)
* Check date value before calling to_iso8601

When deserializing a date value the value has to be a string when
calling to_iso8601. Otherwise it fails with a match error due to a
is_binary() guard.

* Fix: to_iso returns tuple with three values.
2018-03-19 15:15:38 +08:00
HugoMario 9d85c82cdd Merge pull request #7864 from swagger-api/issue-7839
added config to yaml mapper to minimize long text.
2018-03-18 07:47:21 -05:00
wing328 6b65b02c56 fix 2.0 spec exception, fix NPE with Parameter 2018-03-18 17:12:59 +08:00
wing328 7b1c7255a7 fix NPE, add new files 2018-03-18 15:28:34 +08:00
wing328 b471fbcc92 project build succecced, only suppport ruby generator 2018-03-18 14:14:46 +08:00
Hugo Mercado 96a9ba16d9 added config to yaml mapper to minimize long text. 2018-03-16 17:50:50 -05:00
Yukio Ejiri e22faf4cd3 [Swift] Add public initializer for modelObject. (#7652)
* Add public initializer for modelObject.

* Update samples.

* Use allVars instead of vars.

* Fix code format.
2018-03-16 00:56:00 +08:00
Martin Delille b5eb0e7de8 Candidature to integrate Qt technical commitee (#7834)
* Candidature to integrate Qt technical commitee

* move to c++ technical commitee
2018-03-15 20:58:52 +08:00
etherealjoy e796e4c369 [C++] Add linux as a reserve keyword (#7844)
* Small fixes to prevent crash when empty json body is provided.

* Add linux as a reserved keyword

* Small reorder of introduced keyword
2018-03-15 20:41:42 +08:00
Martin Delille d82499944b Adding qt project generation fix #7784 (#7799)
* starting adding qt project generation

* update sample after running bin/qt5-petstore.sh

* Add Project.mustache starter

* Fix processOpts function

* Write Project.mustache

* Add prefix
2018-03-15 00:31:03 +08:00
wing328 8851386ac8 comment out enum_string_required in test spec 2018-03-13 23:15:26 +08:00
wing328 721f1c7720 update ruby samples 2018-03-13 14:45:42 +08:00
wing328 4cfbc118e8 renaming for openapi-generator 2018-03-13 14:41:23 +08:00
wing328 f2b28d578f rename plug-in, generator 2018-03-13 14:41:23 +08:00
Jérémie Bresson 25a6a9d444 html: fix typo in class name (#7818)
* html: fix typo in class name

* Update "html" samples
2018-03-13 00:08:48 +08:00
William Cheng e7f4fb3c45 Fix nodejs-server path issue in windows platform (#7808)
* fix nodejs-server path issue in windows platform

* only replace character in apiPackage
2018-03-12 23:21:07 +08:00
Martin Delille 1bb1e44d18 [qt5cpp] Remove qt5 pro.user file (#7813) 2018-03-12 23:17:39 +08:00
Martin Delille 9bd94b4dbb [qt] Fix warning message (#7815)
* [qt] fix warning message

* remove unused model.mustache file
2018-03-12 23:00:45 +08:00
William Cheng 7ef373f4d4 add ramzimaalej to scala tech committee 2018-03-10 13:20:44 +08:00
William Cheng 9e3d8d1c82 add etherealjoy to cpp tech committee 2018-03-10 11:37:03 +08:00
wing328 ff5edfb97a comment out python tornado test due to ssl error 2018-03-09 18:28:43 +08:00
lborupj e73eeb4fdf fix for stripping prefix on single enums (#7726) 2018-03-09 14:33:34 +08:00
etherealjoy 1947220159 Qt5cpp plug memleaks part2 (#7792)
* Small fixes to prevent crash when empty json body is provided.

* Fix some more memory Leaks in the model-body
- Members not deleted in cleanup() method, for maps/arrays of primitive types.
- Avoid undefined behavior when updating class members with data from missing json fields
2018-03-09 00:19:45 +08:00
Simon Sprünker f00a1ef52c [JAVA] Fix #7734: Correct consumes/produces attributes for Spring Controllers (#7760)
* fix #7734: Correct consumes/produces attributes for Spring Controllers

* fix #7734: Update petstore
2018-03-08 22:56:43 +08:00
Charles Capps 4eeb974cb6 [Java][google-api-client] Fix bug with empty POST request not sending content-type (#7787)
* Add overloaded method to take an InputStream for the request body, and fix a bug with collections

* Use fully qualified name for InputStream to avoid potential conflicts

* Add support for Input Stream choosing content type, and fix a bug

* Ensure GET requests send an empty request body!
2018-03-08 22:51:49 +08:00
Alexander Zinovyev cf8d8d56fb [PHP] Fix code example from README. Variable name was missing when using Basic auth. (#7777) 2018-03-08 22:36:35 +08:00
Ramzi Maalej 832919b84c Remove unused dep when model package is empty (#7793) 2018-03-08 22:23:01 +08:00
Dennis Frommknecht 53eeb0c049 fix connection leak on retrofit OAuth token renewal (#7750) 2018-03-08 22:00:22 +08:00
Akihito Nakano 0adbf7e51f [PHP] Improve: update sample tests automatically (#7717)
* Improve: update sample tests automatically

* security test

* Update sample

- bin/php-petstore.sh
- bin/security/php-petstore.sh

The security test has not been updated for a while.
2018-03-08 21:56:48 +08:00
Akihito Nakano 32cf2f16f5 [PHP] Non required enum property (#7723)
* Add required enum property

* Update samples

* Add test case which reproduce the problem

refs https://github.com/swagger-api/swagger-codegen/pull/7686#issuecomment-368200011
> 2. Non-required enum property is listed as invalid when omitted

* If the property is not empty, perform validation

* Update samples

* Use is_null() according to setter implementation

refs https://github.com/ackintosh/swagger-codegen/blob/377247f125988b591685e9f7cedc95fe5e99bcc2/modules/swagger-codegen/src/main/resources/php/model_generic.mustache#L347

* Update samples
2018-03-08 21:54:34 +08:00
Max 227e2458d4 Update README.md (#7772)
Adding Accruent to list of companies using swagger-codegen
2018-03-08 21:38:17 +08:00
etherealjoy 12f3661d6f Qt5cpp plug memleaks (#7695)
* Small fixes to prevent crash when empty json body is provided.

* WIP: plug mem-leaks

* fixup: add the QJsonObject instance in toJsonArray instead of pointer

* fixup: simplify toJsonMap

Actually the original solution is incomplete, because "innerType" maps to a single C++ type. Have a look at Qt's builtin QJsonObject::fromVariantMap.

* Updates to antis81:patch-1 after tests.

* update to remove string allocation

* Updates due to address of members being passed

* Update PetStore Examples

* Small updates for Header includes
2018-03-07 20:54:40 +08:00
William Cheng d5f3619199 add JFCote to the core team 2018-03-06 16:21:20 +08:00
wing328 724a8fb05d update java petstore samples (jersey1) 2018-03-05 19:34:34 +08:00
dennistruemper 70b4b55fae Fix performance linting problem with maps in java ApiClient template (#7685)
* Fix performance linting problem with maps

* Fix the other map performance issue as well
2018-03-05 19:12:39 +08:00
Paul Vogel 3bcf0ff764 [PHP] Add path & file separator (/) to return the correct path when deserializing a file (#7671)
* Add path & file separator (/) to return the correct path

Add the separator between the tempFolderPath and the sanitized filename so that the path to the file is correct.

(Fixes #7670)

* Remove separator from generated file

* Add separator

Add the separator between the tempFolderPath and the sanitized filename so that the path to the file is correct.

(Fixes #7670)

* Update sample code

Via ./bin/php-petstore.sh
2018-03-05 10:32:47 +08:00
Andy Kipp 8e0a0ebd62 Fix python / tornado body handling (#7738)
* Handle empty body

* Update petstore
2018-02-28 16:08:17 +08:00
William Cheng 91da14577a add link to ebay blog post 2018-02-28 14:36:04 +08:00
Per Thomas Lundal 769a65c95f [Elm] Add support for array schemas (#7729)
The following schema definitions kinds are now supported:

MyStringArray:
  type: array
  items:
    type: string

MyObjectArray:
  type: array
  items:
    type: MyObject
2018-02-27 17:58:12 +08:00
Alberto Sartori 56a0268e39 [elm] missing '->' in Main elm template (#7728) 2018-02-26 23:11:21 +08:00
William Cheng ac18722dd4 update ada technical committee 2018-02-26 22:48:48 +08:00
William Cheng c1227dd720 add ackintosh to core team 2018-02-25 16:54:59 +08:00
Adam Conway ff1178ad7e [Java][Spring] fix optional query params missing in generated swagger (#7607)
* Added genericModelSubstitutes if using Optional

As per https://github.com/springfox/springfox/issues/1848  Doesn't seem to fix the problem, but is what springfox recommends so might be aprt of it.

* Added config package to scans

If you have defined apiPackage and basepackage (e.g. as com.example.api) but not defined configPackage then config is still in io.swagger.config and is not included in the component scan.  This means the config is not used when generating the swagger definition from the code.  Fixed by including configPackage also in the scan.

* Ran spring-all-pestore.sh update script

* Converted tabs to spaces

* Ran spring-all-pestore.sh update script
2018-02-23 00:02:38 +08:00
wing328 e5001a0c8d java update petstore clients 2018-02-22 21:51:14 +08:00
Adrien CABARBAYE d4543a99e3 [Java][retrofit2] Fix for Issue #7446 (#7659)
* [Java][retrofit2]  Fix for issue #7446:  file upload sets filename as baseName instead of a dynamic filename. The solution is to use  okhttp3.MultipartBody.Part instead of RequestBody in formParams template.

* Changes corresponding to review comments

* Petstore Samples

* Fixed tests
2018-02-22 21:45:19 +08:00
wing328 b4827beba4 update python petstore samples 2018-02-22 20:59:45 +08:00
micheleISEP edf6be8c07 [Ada] Fix #7569 by defining x-is-model-type when property is local to the YML file (#7655)
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes #7450

* Updated the Ada petstore samples

* Committing "VERSION" file and the rest of the petstore samples

* Changed default project name and package name for Ada, not to have circular dependencies between gpr files.

* Ada code generator now adds x-is-model-type every time a model is defined locally in the YML file.

Fix #7569.
2018-02-22 20:57:15 +08:00
Daniel Zozin b39c35c768 Fix inconsistency between model name and file name in python client (#7684)
Fixes issue #7357 using the same fix as #4958
2018-02-22 20:56:14 +08:00
wing328 92117b879a fix incorrect indentation in petstore spec 2018-02-22 18:17:28 +08:00
wing328 a59c325cb7 update dart, ruby petstore samples 2018-02-22 17:53:51 +08:00
Akihito Nakano 91bd7ac3b9 [PHP] Run unit tests on 'tests' directory (#7675)
* Run unit tests on 'tests' directory

* Fix: move argument to <argument>
2018-02-22 17:31:47 +08:00
Akihito Nakano be14e02875 [PHP] Cleanup test (#7673)
* Regenerate PetApiTest, OrderTest

The same test code as deleted is in the 'tests' directory.

* Move test code 'test' -> 'tests', and Regenerate test/Model/PetTest.php

* Regenerate 'test' directory

rm -rf samples/client/petstore/php/SwaggerClient-php/test && bin/php-petstore.sh
2018-02-22 17:31:18 +08:00
Akihito Nakano 14e1e19803 [PHP] Improve validation on empty arrays (#7686)
* Api should throw exception if an empty array is passed

* Update samples

- bin/php-petstore.sh
- bin/security/php-petstore.sh
2018-02-22 17:15:00 +08:00
nicksanders348 6a81829bb3 remove tab (#7692) 2018-02-22 16:43:44 +08:00
shigeru.nakajima dcad9ae807 [Rails5] make version of the generated Rails stub server to strict Rails 5.0 (#7700) 2018-02-22 15:57:14 +08:00
Nathan Broadbent 3f3d9c7f2a Added FormAPI to the list of companies that are using swagger-codegen (#7687) 2018-02-19 22:12:29 +08:00
Andrew Z Allen 47614bb765 Properly capitalize exported go types (#7636)
Previously if the type was "myEnum" it would be written as

```
type myEnum string

const (
  DEMO MyEnum = "DEMO"
)
```

which would fail because of the capitalization difference. This fixes that.
2018-02-19 00:18:03 +08:00
Ken Gilmer 39fa375e3a [kotlin] Fix NPE for POST/PUT/PATCH with empty request models. (#7629)
* [kotlin] Fix NPE for POST/PUT/PATCH with empty request models.

* [kotlin] Pass content type in empty response as discussed in PR review.
2018-02-18 23:51:02 +08:00
edwd 9fb2c29a46 7644 objc deprecated afnetworking datataskwithrequest (#7645)
* Replacing calls to dataTaskWithRequest:completionHandler:

In objc ApiClient-body.mustache, replacing calls to AFNetworking's deprecated `dataTaskWithRequest:completionHandler:` with calls to `dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:`.

* Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change: ./bin/objc-petstore.sh and ./bin/security/objc-petstore.sh
2018-02-18 22:58:57 +08:00
Benoit Vermont c599906f1a Kotlin: Correct data_class.mustache to use proper property for inner enum data type (#7597)
* Correct data_class.mustache to use proper property

The name of the property is "datatype" lowercase, as can be seen in https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenProperty.java#L10

Using "dataType" does not work, and the type of the inner enum is null.

* Change in petstore
2018-02-18 22:44:35 +08:00
Karol cddcda0fe0 Java Jersey2: Make generated client code thread safe (#7605)
* fix issue-7453; make jersey 2 generated code thread safe by following the withHttpInfo pattern used by many other generated clients

* fix issue-7453; make jersey 2 generated code thread safe by following the withHttpInfo pattern used by many other generated clients
2018-02-18 22:35:08 +08:00
Matthew McGarvey 35ec8ca5ab fix typo (#7641) 2018-02-18 22:28:48 +08:00
William Cheng aa6b217bb9 [Ruby] Add auto-generated rubocop config file (#7637)
* add rubocop to ruby api client

* add new files

* fix ruby generator test case
2018-02-12 14:08:02 +08:00
Frederik Hahne 86697fedb2 7616 correct body params filename (#7635)
* correct body params file name

close #7616

* update gradle gatling plugin
2018-02-12 13:44:35 +08:00
wing328 803cafb995 Merge branch 'master' of https://github.com/swagger-api/swagger-codegen 2018-02-11 17:29:10 +08:00
wing328 8ba9db67f5 remove oudated php, node server samples 2018-02-11 17:28:38 +08:00
Aykut Akin 0b845a57e4 [Rust] Changes hard coded body to dynamic parameter name - Fixes #6569 (#7630) 2018-02-10 22:27:44 +08:00
William Cheng 854b5012be fix NPE when host is undefined (#7633) 2018-02-10 17:11:11 +08:00
Matthew McGarvey 0a28aad73b [MAVEN PLUGIN] Checking for null configOptions before looking for property (#7613)
* Checking for null configOptions

* Inline configOptions check
2018-02-10 16:08:47 +08:00
jarlesat f41683a5ba Update README.md (#7615)
Added Husbanken who uses swagger-codegen to specify, document and generate api-stubs for internal web-services.
2018-02-08 16:32:14 +08:00
wing328 0c3fc84f52 minor enhancemnt to swift3 bin scripts 2018-02-08 15:14:49 +08:00
Aykut Akin 62b93fc5cb [Python][Flask] Handles UUID format - Fixes #7469 (#7507) 2018-02-08 14:57:46 +08:00
Victor Orlovsky 62a930223f [JAVA][Rest-assured] reqSpec() method has been added into api.mustache for requests custom… (#7556)
* reqSpec() method has been added into api.mustache for requests customisation (group operations)

* add - reqSpec() has been added to samples
2018-02-08 14:51:23 +08:00
Alexander Ovchinnikov ee561fcd63 Add withXml option for Go language (#7566)
* Added support for application/xml content-type for GO language
Issue #7463

* Added test scripts for Go lang "withXml" feature

* Added samples for Go land "withXml" feature.

* "withXml" feature for Go language is only available for client.
2018-02-08 14:47:47 +08:00
Jim Schubert 8668175879 [aspnetcore] Fix string enum generation (#7581)
* [aspnetcore] Fix enum strings generation regression

* [aspnetcore] Regenerate sample
2018-02-08 14:43:47 +08:00
Xiaoxiao b184fb1d9c [Swift3] escape URL parameters (#7529)
* Escape URL parameters for Swift4 and update its Petstore sample

* Update the code style

* Update code style

* Update code style

* Remove break statements in switch for AlamofireImplementations
2018-02-08 00:19:04 +08:00
William Cheng 52f606b8dc Fix Swift3 test cases and add pom.xml, travis config for iOS test (#7608)
* add pom.xml for testing objc, swift

* add travis config for testing swift, objc

* test swift, objc clients

* use ruby 2.4.2

* remove stack

* update swift3 petstore

* test with xcode9

* remove testing inline additional properties for swift3

* restore travis, pom
2018-02-07 23:13:48 +08:00
Clinton Christian d38a090395 Add SessionM to list of companies using swagger. (#7598) 2018-02-07 16:46:06 +08:00
Jim Schubert 0e34bcf4e4 [csharp] ctor params should always be camelCase (#7519)
* [csharp] ctor params should always be camelCase

After PR #6305, var names defaulted to PascalCase results in constructor
arguments also being PacalCase. Model properties and constructor
arguments have no reason to be the same case, and in fact may cause
issues (`name = name` will result in a compilation error).

This commit forces all constructor params in models to lowerCase.

This is a necessary change, for instance, if client SDK consumers assign
using named args:

var a = new Model(first = "", second = "")

The PacalCase default and update to constructor arg casing will break
existing consumers of the client.

See #7070 for more details and discussion.

* [csharp] Regenerate samples

* [csharp] Remove client models generated from a different spec.

* [csharp] Escape reserved words on camelcase/lowercase lambdas

* [csharp] Regenerate samples
2018-02-06 22:54:26 +08:00
chrishiggins34 1139f3f053 Add a link to eBook on top (#7588)
The eBook is hard to find as it's in the presentation section (bottom)
2018-02-06 22:35:42 +08:00
William Cheng 87a4e296c0 Add link for the FOSDEM 2018 presentation 2018-02-05 18:07:09 +08:00
Stephane Carrez 9ba74f4840 [Ada] Fix GNAT project and server skeleton to avoid sending a response when an error is returned (#7574)
* Fix the GNAT project for the client and server to avoid using unecessary projects on
the client side

* Define a minimal configuration for user and application definition

* Fix the server skeleton to emit the response only when the status code is 200

* Fix the Ada petstore GNAT project
2018-02-05 17:47:20 +08:00
William Cheng dbe78e23e8 [Lua] Improve auto-generated test files (#7568)
* move lua spec folder, remove extra endline

* remove extra line

* remove duplicated import
2018-02-04 22:06:43 +08:00
William Cheng 6c79052ac4 Add auto-generated Lua spec files for APIs, models (#7562)
* add auto-generated lua spec files for api, models

* use partial header in test files
2018-02-03 00:12:01 +08:00
shwetas1205 dfbef43743 Fixed unicode error and supported allow_nonstandard_methods in tornado based python client (#7560)
* fixing "decoding Unicode is not supported" error for py2 when data is unicode

* allowing nonstandard methods for tornado python client.

* Making sure to return unicode when needed
2018-02-02 23:00:04 +08:00
micheleISEP ea27924f5c [Ada] changed default project/package name, to solve circular dependencies (#7550)
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes #7450

* Updated the Ada petstore samples

* Committing "VERSION" file and the rest of the petstore samples

* Changed default project name and package name for Ada, not to have circular dependencies between gpr files.
2018-02-02 17:36:15 +08:00
REST United 0e52dcd0c0 Add restunited to the list of companies (#7555) 2018-02-02 14:26:07 +08:00
William Cheng 38a2c1dde9 [Lua] Fix Rockpec (#7554)
* fix lua rockspec

* use dot in the rockspec namespace
2018-02-02 14:03:58 +08:00
wing328 73231bda1f Merge branch 'wingsofovnia-fix/issue-6553-completable' 2018-02-02 13:53:40 +08:00
wing328 5a2c3a6571 Merge branch 'fix/issue-6553-completable' of https://github.com/wingsofovnia/swagger-codegen into wingsofovnia-fix/issue-6553-completable 2018-02-02 12:19:44 +08:00
William Cheng fec0363f7d [Java] Add back byte array enhancement (#7546)
* add back byte array enhanceement

* add okio dependency to java rest assured api client
2018-02-01 21:49:22 +08:00
Michael Simons 9c79297d6a Use latest version in dependencies snippet (#7545)
Please use the latest version in the snippet as the older ones may contain nasty bugs (like this one https://github.com/swagger-api/swagger-codegen/issues/6122). Thanks.
2018-02-01 21:22:41 +08:00
William Cheng 13e3db59e3 Add operationIdOriginal to store the original operationId (#7522)
* add operationIdOriginal to store the original operationId

* store the original operation Id in DefaultCodegen
2018-02-01 19:25:25 +08:00
wing328 d01a60cb14 update ts petstore files 2018-02-01 19:20:35 +08:00
wing328 3adbd86760 remove corrupted ts files 2018-02-01 19:18:14 +08:00
wing328 1fbc3768a2 use python 3.6.3 as default in travis build 2018-02-01 17:28:55 +08:00
Tomasz Prus f6e0e297eb [python-asyncio] tests and fixes (#7235)
* fix: creating ssl context and passing args/files/forms

* feat: python-async add tests

* chore: rebuild petstore sample for python, tornado and asyncio

* feat: add python asyncio to travis

* feat: print coverage (python-asyncio)
2018-02-01 17:26:38 +08:00
Erik Timmers 157e6b7fab [angular] Add option to generate tagged unions (#7245)
Using the option `taggedUnions` will create a union type for each parent
type instead of extending interfaces. The union types are tagged by using
the discriminator values.

And also:
* Add support for aliases;
* Add support for read-only properties.
2018-02-01 17:20:50 +08:00
William Cheng 36f69a034d remove trailing spaces in qt5 c++ templates (#7525) 2018-02-01 13:35:09 +08:00
Jon Schoning 2d0bafb6b2 [haskell-http-client] default InlineMimeTypes=true (#7534)
- default CLI option InlineMimeTypes to True, since it produces cleaner code

- update bounds on dependancies
2018-02-01 12:26:13 +08:00
William Cheng 6b9d38d40a remove trailing spaces in ada template (#7527) 2018-01-30 14:39:13 +08:00
wing328 4b428e89b6 resume docker build for swagger codegen cli 2018-01-30 11:46:11 +08:00
wing328 2178abe472 resume docker build for swagger generator 2018-01-30 11:24:39 +08:00
William Cheng 8aa5642845 add dart style guide 2018-01-30 11:06:42 +08:00
Jörn Ahrens f1638a659a [Dart] Allow setting an accessToken for OAuth (#7528)
* dart - allow setting an accessToken for oauth

* Remove unneeded accessToken member
2018-01-30 11:04:04 +08:00
William Cheng eb35870d11 remove trailing spaces in r templates (#7526) 2018-01-30 11:02:13 +08:00
wing328 5d92717dc9 update jaxrs to listent at port 10080 2018-01-30 00:23:08 +08:00
wing328 36b042d605 update ts aurelia petstore samples 2018-01-29 16:42:16 +08:00
Konstantin Simon Maria Möllers 7faaa091cd Fix generated module imports in Aurelia APIs (#7465) (#7520) 2018-01-29 15:46:51 +08:00
wing328 7c20316755 update artifict id for jaxrs datelib j8 2018-01-29 13:51:21 +08:00
wing328 cf21ac0327 update spring petstore samples 2018-01-29 01:38:13 +08:00
Adam Conway d14318cf25 [JAVA][Spring]Optional params with delegate (#7180)
* Fixed data type for optional parameters in delegate

When generating using the delegatePattern and including an optional parameter, the api used a type of Optional<T> while the delegate used just T.  This resulted in a java error in the generated code wen trying to call one from the other.
Fixed by using correct data type in delegate

Fix #7179

* Updated samples using supplied (Windows) scripts

* Revert "Updated samples using supplied (Windows) scripts"

This reverts commit 58b9c618085ac4201cfb011def96e14caaaff3f8.
2018-01-29 01:31:47 +08:00
Victor Orlovsky abdc6759d3 @viclovsky has been added to template creators (#7517) 2018-01-29 01:16:21 +08:00
wing328 87cdddcf17 add CI test for JAXRS datelibrary java8 2018-01-29 00:35:09 +08:00
Dennis Kieselhorst 298ca8d352 #7123 use correct jackson date library when using Java 8 (#7285) 2018-01-29 00:23:06 +08:00
wing328 6bc84eeee1 add rest-assured to circleci jdk8 test 2018-01-28 22:33:24 +08:00
Victor Orlovsky 6debf749ae [NEW API CLIENT] Rest-assured (#7492)
* Rest-assured http client has been added

ApiClient has been added

@Deprecated has been added for operation

{{{returnType}}} has been fixed

build.gradle.mustache, build.sbt.mustache, api_doc_mustache has been added

Samples has been added for rest-assured

Useless supporting files has been removed for rest-assured

Sample has been added for rest-assured

* Tests has been added

* Doc and tests has been fixed, JSON.mustache moved to common
2018-01-28 22:29:23 +08:00
William Cheng c69925b53a [Kotlin] Fix issues with threetenbp (#7516)
* fix kotlin threetenbp client

* fix typo in kotlin sample path
2018-01-28 21:40:22 +08:00
wing328 a811a48c3f minor fix to kotlin client genrator due to merge conflict 2018-01-28 17:18:15 +08:00
magiepooh 914275fe79 [kotlin] support selection of datelibrary (#7054)
* [kotlin] support selection of datelibrary

* remove additional property from string

* replace string with boolean
2018-01-28 17:16:01 +08:00
jarlesat 88c5112f2e Adds support for returning response in jaxrs-spec interfaces (#7442)
* Issue 7440 Added support for returning response in jaxrs-spec interfaces.

* Issue-7386 Updates samples for jaxrs-spec interfaces introduced in issue 7386.
2018-01-28 15:19:30 +08:00
William Cheng 6cd40e02b3 add macjohnny to the TS technical committee 2018-01-28 15:01:05 +08:00
Jon Schoning 9fba9c3255 [haskell-http-client] add config options: cabalPackage, cabalVersion, baseModule, requestType, configType (#7515)
- add new config options:

    cabalPackage
      Set the cabal package name, which consists of one or more alphanumeric words separated by hyphens

    cabalVersion
      Set the cabal version number, consisting of a sequence of one or more integers separated by dots

    baseModule
      Set the base module namespace

    requestType
      Set the name of the type used to generate requests

    configType
      Set the name of the type used for configuration
2018-01-28 14:59:04 +08:00
Stephane Carrez 0de7f972fe Fix the Ada server skeleton to check the authsMethods in the Shared_Instance generic package (#7514)
[Ada] fix PUT request and authentication checks for the server skeleton
2018-01-28 14:55:36 +08:00
Stephane Carrez 4bd8fc6e8a Fix 7511: [Ada] Client call is not correct with multiple parameters and application/x-www-urlencoded (#7512)
* Fix calling the 'Call' procedure to submit the request for the Ada client when a request
has form parameters

* Rebuild the files by running bin/ada-petstore.sh
2018-01-28 14:54:36 +08:00
micheleISEP 3035bc629b [Ada] Hotfix/ada model sort (#7491)
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes #7450

* Updated the Ada petstore samples

* Committing "VERSION" file and the rest of the petstore samples

* Redone the algorithm to sort the models by their dependencies, to create correct *-model.ads files.

To fix #7485

* changed tabs into spaces
2018-01-28 14:48:51 +08:00
Jean-François Côté d1933b5fca Fix a problem in the generation of typescript-jquery when we have enum in a query param (#7506) 2018-01-28 14:48:33 +08:00
William Cheng 1d661f3683 add jimschubert as kotline server template creator 2018-01-27 17:48:24 +08:00
Jim Schubert 7cad47dd39 [kotlin-server] --library=ktor (barebones implementation) (#7412)
* [tools] Make sed in new.sh more cross-platform

The -r option passed to sed is a GNU sed option for extended regex
evaluation. The -E option evaluates the same option, and is part of the
POSIX standard, meaning this option is available in GNU sed as well as
Apple's BSD variant.

This commit removes the need for users to install gnu-sed on Mac.

* [ktor] Initial ktor (kotlin-server)

This adds a very barebones implementation for a ktor server generator.

This supports metrics and typed locations. All endpoins are stubbed to
return HTTP/1.1 501 Not Implemented.

* [ktor] Initial sample

* [ktor] Adding options for select feature installs

Options available:

* featureAutoHead
* featureConditionalHeaders
* featureHSTS
* featureCORS
* featureCompression

* [ktor] Start of auth functionality

* [ktor] API key auth placeholder

* Add basic support for oauth2 configurations

ktor doesn't seem to explicitly accept oauth flow properties in its
configuration object. This may be a blocker for 'implicit' flow
definitions.

* Added example response objects

* [ktor] Route for apis with bodies, some cleanup

ktor locations are only supported for routes with path/query parameters.
Routes with body or file parameters must be declared with traditional
route api.

This commit also includes lambdas for simplifying processing in
library-based server generator code. As an example, ktor requires
lowercase http methods while spring (a potential future generator)
would require an uppercase such as HttpMethod.GET. It doesn't make sense
to modify these in the operations post-process method because that
format wouldn't be universally desirable.

The lambdas included in the KotlinServerCodegen:
* lowercase: converts all text to lowercase
* uppercase: converts all text to UPPERCASE
* titlecase: converts words (with configurable delim) to Title Case
* indented|indented_8|indented_12|indented_16: these helpers apply the
  same desired indent to all lines of an included fragment's text.

* Fix some javadoc issues in lambda classes

* Update kotlin-server-petstore.bat

Change `kotlin` to `kotlin-server`

* Fix javadoc error messages in CI
2018-01-27 17:43:46 +08:00
William Cheng a2410b210c Add auto-generated rockspec file to Lua API client (#7475)
* add luarocks spec

* remove trailing spaces

* remove rockspec filename option

* update lua rockspec

* update rockspec based on feedback

* remove configuration which is not needed

* remove api_client, which is no longer needed
2018-01-27 17:09:45 +08:00
wing328 15b3dfbb80 update java petstore samples 2018-01-26 10:02:24 +08:00
Benjamin Roedell 47111b3241 Issue 4824 fix gson deserialize format byte (#7473)
* Build sample prior to code changes so differences are easier to decipher

* Add byte array type adapter for okhttp-gson (java8 only)

* Unit revealed that Gson (or GsonFire) defaults to escape = (equal sign) out of base64 string.  Add disableHtmlEscaping() to gsonbuilder.

* Update specs and samples to include format=byte and include junit test of byte array serialization and deserialization.

* Implement recommendations by @cbornet including: Use okio.ByteString for base64 conversions instead of java 8 lib since the okhttp-gson client already includes okio. Remove setting to disableHtmlEscaping. Rename LocalByteArrayAdapter to ByteArrayAdapter.

* Update spec and sample for java okhttp-gson library client

* Undo addition of profilePhoto property.  A format byte property is already available under the format_test definition.

* Put previously deleted tests back. Modified testFindPetsByTags() to verify exception since the server now returns a 500 for this request.

* Update test to pass when run against docker containerized server swaggerapi/petstore (heads up, this test fails if calling out to the internet published version of http://petstore.swagger.io)
2018-01-26 09:52:49 +08:00
William Cheng 2d898511a8 Add Play server samples to CircleCI (#7501)
* add play server samples to circle ci

* add pom.xml for java play framework
2018-01-26 09:48:51 +08:00
Jens Radtke 76907cacde fix: declare property headerSelector (#7495)
The property was created dynamically, it's a more clean approach to
declare it as a member of the class.
2018-01-26 00:49:35 +08:00
William Cheng 2394fac677 update swagger annoatation version to 1.5.17 (#7500) 2018-01-25 23:29:20 +08:00
William Cheng df10c725ab Add lua test script, minor fix to Lua API files (#7490)
* add lua test script, minor fix to api files

* fix model import, avoid null header issue

* add space before equal sign
2018-01-25 22:01:04 +08:00
Jean-François Côté e33b350c89 Fix an issue in Play Framework generator where a CSV is empty and transfered to the controllerImp with an empty item. (#7496) 2018-01-25 21:53:20 +08:00
etondoze d1a296412e Upgraded swagger-parser and swagger-core versions (#7497) 2018-01-25 21:35:11 +08:00
ehyche a3d0f1d4bd Swift4: make generated models structs instead of classes (#7345)
* Split up model template into partials

* Change models from class to struct.

This fixes issue https://github.com/swagger-api/swagger-codegen/issues/6941.

In this change, we make our Swift4 generated model objects struct instead of class. However, in order to do this, we needed to handle the following edge cases:

* Inheritance and polymorphism (allOf)
  * With classes, we use inheritance. So therefore, the parent properties are ONLY on the parent generated class, and the model object which derives from the parent class picks up those properties through inheritance.
  * However, structs do not support inheritance. So we simply duplicate the parent allOf properties in the child struct.
* We have to handle the case where the property name on the struct may be different than the property name in the JSON. By default, the Codable protocol assumes that the JSON property name is the same as the struct property name. If they need to be different, then we generate a CodingKeys string enum, which contains the mapping between struct property name and JSON property name.
* additionalProperties. We cannot use the default Codable implementation for the additionalProperties, since it will look for an actual dictionary called "additionalProperties" in the JSON. Therefore, for model objects which have additionalProperties, we must generate our own implementation for the Decodable and Encodable protocols.

I have run ./bin/swift4-all.sh and ./bin/swift4-test.sh to re-generate all of the sources, and I have verified that the generated code in samples/clients/test/swift4/default builds and the unit tests pass.

* Update VERSION in .swagger-codegen

* Update generated code for swift4-test schema
2018-01-25 21:33:11 +08:00
Jeffrey Slort 2b84118c9f removed isomorphic-fetch typing dependency (#6894)
* removed isomorphic-fetch typing dependency
removed postinstall command

* space

* regenerated samples

* updated security samples

* fixed missing url module

* added prepublish hook

* regenerated samples

* added npm build to build
2018-01-25 21:20:58 +08:00
wing328 0b4b25afff update all c# pestore samples 2018-01-25 21:17:57 +08:00
kaasasolut 6caf7699e3 Fix little bug in csharp READMEs (#7494)
* Fix little bug in csharp READMEs

* Fix another little README bug
2018-01-25 18:40:42 +08:00
Esteban Marin 20305139b5 [Feature][TypeScript] request param enum as literal unions (#7433)
* #7365: use enums string / number literals for request parameter if it is an enum

* #7365: use enums string / number literals for request parameter if it is an enum

* #7365: use enums string / number literals for request parameter if it is an enum

* #7365: improve docs

* #7365: move code to AbstractTypeScriptClientCodegen, remove redundant code in TypeScriptAngularClientCodegen, change type Object to Number in numericEnumValuesToEnumTypeUnion()

* #7365: move code to AbstractTypeScriptClientCodegen, remove redundant code in TypeScriptAngularClientCodegen, change type Object to Number in numericEnumValuesToEnumTypeUnion()

* #7365: allow parameter data type customizations

* #7365: re-enable disabled unit test assertions

* #7365: remove enum handling from type declaration generation

* #7365: generate all typescript samples

* #7365: re-enable disabled unit test assertion
2018-01-25 18:36:14 +08:00
William Cheng 6d4d9056f4 add joernahrens for refactoring dart client 2018-01-25 18:25:07 +08:00
Jörn Ahrens a5e26a44ff [Dart] - Rework Dart client generator to be flutter-compatible (#7418)
* copy mustache templates from dart generator

* Start with generator by copying the DartClientCodegen for now

* at least we know this is not for a browser..

* First working version for a simple swagger configuration

* remove browserClient parameter, since it doesn't make sense for flutter

* Take care of complex types to support object hierarchies

* add null safety

* add small test for options

* add flutter-petstore scripts

* generate flutter petstore output

* Add new flutter test project

* move generated client to make it usable

* use generated swagger petstore plugin

* add support for lists of objects

* add DateTime support

* fix listFromJson implementation

* fix NPEs in DateTime operations + place order in sample

* Small readme changes

* bugfixes

* Use flutter-compatible implementation as default dart implementation

* fix generated samples

* Make lists serializable, now all dart test cases are working again

* better list implementation

* use StringBuffer

* removed FlutterClientCodegen

* fix browser client

* fix dependencies

* swagger-browser-client for browserClient testcases

* fix scripts

* removed flutter scripts

* add map support and simplify code via using .toJson contract

* remove unneeded devDependencies

* Regenerated samples

* fix call to mapFromJson, it is not a constructor

* remove pointless string serialization

* regenerated dart samples
2018-01-25 18:18:53 +08:00
Aykut Akin a3c97753fe Fixes #7107 - [Rust] Handles UUID as string (#7471) 2018-01-24 12:54:57 +08:00
Articus 60e3339aa6 [Feature][PHP] Update for ze-ph generator (#7472)
* update for ze-ph generator stub to support Zend Expressive 2.1 and Path Handler 0.3

* ze-ph: for each operation generator creates special DTO model from its query parameters

* ze-ph: generation of extra TODO's for complex container type and update for samples
2018-01-24 12:36:24 +08:00
wing328 5a3a33b3c8 update java vertx server samples 2018-01-24 12:32:45 +08:00
ccozzolino 0b2d805699 Expose getter/setter for serverPort to facilitate testing (#7480) 2018-01-24 12:31:20 +08:00
William Cheng fe22472634 add a link to ebook (polish version) 2018-01-22 23:25:48 +08:00
William Cheng 61e58d6496 Add R namespace file (#7467)
* add r namespace file

* rename NAMESPACE mustache file
2018-01-22 22:32:22 +08:00
William Cheng cf4df630b7 Add Spring Petstore samples (async, java8-localdatetime) to CircleCI (#7468)
* add ci for spring mvc: async, localdatetime

* update artifactId for new spring samples
2018-01-22 21:35:51 +08:00
William Cheng c3c67b6ef1 Revised core team members 2018-01-22 21:33:29 +08:00
micheleISEP 43f0e86923 Ada code generator corrected: "=>" instead of "->". Fixes #7450 (#7456)
* Ada generator generates "=>" (correct syntax) instead of "->". Fixes #7450

* Updated the Ada petstore samples

* Committing "VERSION" file and the rest of the petstore samples
2018-01-22 17:40:34 +08:00
Neeme Praks fe2a443394 Fixes issue #7177 (SpringCodeGen dateLibrary "java8-localdatetime" option is ignored). (#7178) 2018-01-22 17:31:13 +08:00
jarlesat 5ea3d3bb18 Issue-7438 Fix that prevents generating interfaces when interfaceOnly is false. (#7439) 2018-01-22 15:57:17 +08:00
Reijhanniel Jearl Campos 9e1bbe0c1c #7093 - Add maven wrapper (#7356) 2018-01-22 14:35:34 +08:00
wing328 6651f6bfa1 Merge remote-tracking branch 'origin/2.4.0' 2018-01-22 14:16:55 +08:00
Jim Schubert 8724719960 [csharp] Support arrays of arrays for properties and models (#7400)
* [csharp] Support composition on toJson

Previous implementation assumed specification only supports polymorphic
associations (via discrimator), although the code didn't seem to be
setup correctly for that in the first place. That is, the parent object
must define the discriminator (see
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#models-with-polymorphism-support),
so NOT HAS parent AND HAS discriminator doesn't make sense.

From a C# perspective, base classes should have the method marked
virtual and derived classes should override the method. This supports
both composition and polymorphic definitions.

* [csharp] this.Configuration in api template

Unprefixed Configuration property access leads to ambiguous references
when spec defines a Configuration model.

* [csharp] Models/properties support nested arrays

Previous implementation didn't support multiple levels of array with
array items as OpenAPI spec supports. This means an object defined as
type: array with items = type: array|items=double (which is common in
GIS) would not be possible.

This implementation assumes generics in the nested type definitions, so
the above would generate List<List<double?>> for model parent types as
well as property type declarations.

* [csharp] Regenerate integration test sample

* [csharp] Set "Client" case sensitive as reserved

* [csharp] Regenerate security sample

* [csharp] Regenerate samples
2018-01-22 14:14:17 +08:00
Jim Schubert 1c4e6b7d46 [csharp] Fix ToJson to work with composition and polymorphism (#7399)
* [csharp] Support composition on toJson

Previous implementation assumed specification only supports polymorphic
associations (via discrimator), although the code didn't seem to be
setup correctly for that in the first place. That is, the parent object
must define the discriminator (see
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#models-with-polymorphism-support),
so NOT HAS parent AND HAS discriminator doesn't make sense.

From a C# perspective, base classes should have the method marked
virtual and derived classes should override the method. This supports
both composition and polymorphic definitions.

* [csharp] Regenerate integration test files

* [csharp] Regenerate samples

* [csharp] Regenerate security sample
2018-01-22 14:13:50 +08:00
Jim Schubert ed7af73f6b [csharp] Reference this.Configuration in client api template (#7394)
* [csharp] this.Configuration in api template

Unprefixed Configuration property access leads to ambiguous references
when spec defines a Configuration model.

* [csharp] Regenerate samples
2018-01-22 14:04:19 +08:00
jarlesat 99fc272465 [JAX-RS][Spec] Removes throws Exception. (#7437)
* Issue-7435 Removes throws Exception.

* Issue-7435 Updates jaxrs-samples.
2018-01-22 13:48:59 +08:00
Tobias Wich 524f162e63 Use supportsES6 flag in ts compilation for language typescript-angular (#7408) 2018-01-22 13:40:20 +08:00
Stephane Carrez 7d2b49085f Fix 7457: [Ada] wrong order for generated structures in *-models.ads (#7462)
* Fix the comparison between two model types to compare them recursively
and make sure we sort the model types according to their dependencies

* Run bin/ada-petstore.sh to update the generated Ada client samples
2018-01-22 13:27:39 +08:00
Stephane Carrez 2b2b85eec7 Fix 7459: [Ada] wrong JSON in POST operations (#7460)
* Fix Ada client generated code to avoid having a spurious body name for parameters passed in the body

* Run bin/ada-petstore.sh to update the generated Ada client samples
2018-01-22 13:21:09 +08:00
Tristan Sloughter c73118524c [erlang-client] Erlang request utils (#7257)
* [erlang-client] fix body param from being included path and base path to remove host

* [erlang-client] move request logic out of api functions to utils module

* [erlang-client] add support for passing http client configuration to requests

* [erlang-client] update auth handling

* [erlang-client] remove underscore2, replacing with original underscore + replaceAll
2018-01-22 13:18:35 +08:00
wing328 01a076c3fe reenable pushing snapshot to maven repo 2018-01-21 23:21:42 +08:00
William Cheng e7c9ab344c Create CODE_OF_CONDUCT.md 2018-01-21 23:02:06 +08:00
William Cheng 174b14ba1e Merge pull request #7426 from swagger-api/2.4.0
Merge 2.4.0 into master
2018-01-21 23:01:21 +08:00
wing328 6b7b8771cf comment out update to docker image 2018-01-21 21:52:24 +08:00
magnolia 6db63c7a1f deleted unnecessary notes (#7454)
https://github.com/swagger-api/swagger-codegen/issues/7398
2018-01-20 14:31:43 +08:00
ccozzolino 59ff4c198b [Java][library: vertx] Add default value and required parameter support to vertx server temp… (#7410)
* Add default value and required parameter support to vertx server templates. Fix for #7409.

* Added missing serviceId declaration to workaround #allParams section clearing the vendorExtensions map
2018-01-20 14:31:06 +08:00
Esteban Marin ef832e7157 [Feature][Angular] improve docs angular import (#7363)
* #7354: improve docs about importing multiple ApiModules, prevent https://github.com/angular/angular/issues/20575#issuecomment-356261374

* #7354: prevent https://github.com/angular/angular/issues/20575#issuecomment-356261374 add error message about importing the HttpModule / HttpClientModule

* #7354: generate sample files

* #7354: generate README.md also for non-npm packages
2018-01-20 14:24:33 +08:00
Jinkui Shi 197b4481ef [doc] akka-scala and Java README normalize (#7382)
* normalize scala-akka and Java README.mustache

* move version info to the project info section
2018-01-20 14:15:16 +08:00
Alessio Fachechi 6bf84d5fa7 fix of issue #7386 (#7401) 2018-01-20 14:05:32 +08:00
Kane Lai a61d23265d Fixed incorrect renaming of header and query param to camel cases for Kotlin Client template (#7420)
* - Fixed incorrect renaming of header and query param to camel cases

* Generated petstore code base on modified Kotlin template
2018-01-19 17:30:04 +08:00
chiman-jang 8e270f4651 add vendorExtensions field in CodegenSecurity class (ref: #7236) (#7415) 2018-01-19 16:24:10 +08:00
magnolia 7853308c8e Rebuild Scalatra sample (#7431)
When creating the following PR, sample was generated without reflecting the last change.

https://github.com/swagger-api/swagger-codegen/pull/7393

With this commit, it will be synchronized
2018-01-19 16:20:41 +08:00
magnolia 1ee85de94e Added Intelli J ignore (#7423)
.idea
*.iml
2018-01-19 16:20:12 +08:00
etherealjoy ea4b948428 [qt5cpp] Add nullptr guard to prevent crash when empty model is being serialized (#7434)
* Small fixes to prevent crash when empty json body is provided.

* Updated PetStore example for Qt5
2018-01-19 15:36:45 +08:00
William Cheng 30c1448d78 Fix build.gradle for Java RESTEasy client (#7448)
* update release 2.3.1

* add jeff9finger to java tech committee

* fix build.gradle for java resteasy
2018-01-19 13:21:39 +08:00
William Cheng 7ddb87b4e5 add jeff9finger to java tech committee 2018-01-19 11:09:12 +08:00
William Cheng 2fd38fbbe2 update release 2.3.1 2018-01-17 12:36:45 +08:00
magnolia 7b8e409cf9 Added gitignore generation function (#7402)
Copy gitignore template from client
2018-01-15 21:00:26 +08:00
William Cheng 389344726e Split CircleCI test into JDK7, JDK8 specified tests (#7405)
* split out circleci pom for jdk7, jdk8

* update circle config to use jdk7 pom
2018-01-15 16:46:33 +08:00
Jinkui Shi 612cfb7af4 [Akka-scala] Clean unused dependencies such swagger-core #7329 (#7329) 2018-01-15 14:14:10 +08:00
Euan Kemp 027df610b1 [Rust] Handle error response statuses (#6865)
* [Rust] Consider error statuscodes to be errors

* [Rust] Introduce 'ApiError' type for 4xx/5xx resp

This updates the previous commit which added an 'ErrorStatus' variant to
an 'ApiError' variant.

It does not specialize the error to the specific possible error
responses yet, rather returning a 'serde_json::Value' for any case.

This will lose any error messages which cannot be parsed as json and
instead return a json-parse error.

A future change should update the generated signatures such that the
returned future's error type is specialized to the specific errors that
may be returned by that api (and possibly a catchall json::Value still).

* [Rust] Regenerate petstore samples

* [Rust] Add error example to petstore sample
2018-01-15 11:38:11 +08:00
wing328 06d0078366 Merge branch 'joeboyscout04-issue-7044' into 2.4.0 2018-01-15 10:45:31 +08:00
wing328 15e7255154 Merge branch 'issue-7044' of https://github.com/joeboyscout04/swagger-codegen into joeboyscout04-issue-7044 2018-01-14 23:41:46 +08:00
wing328 44211c8811 Merge branch '2.4.0' of https://github.com/swagger-api/swagger-codegen into 2.4.0 2018-01-14 23:19:28 +08:00
Carl E Leiby 25a127240a Generated retrofit2 petstore files 2018-01-14 23:18:28 +08:00
Carl E Leiby 72221b1cf9 Adding @Deprecated to retrofit2 client interfaces. 2018-01-14 23:17:45 +08:00
Reijhanniel Jearl Campos 3bd2da9a8b [Java] #3204 - Fix build warnings (#7364)
* [Java] #3024 - Add build-helper-maven-plugin version to retrofit client template

* [Java] #3024 - Add build-helper-maven-plugin version to feign client template

* [Java] #3024 - Add build-helper-maven-plugin version to jersey client template

* [Java] #3024 - Add build-helper-maven-plugin version to resteasy client template
2018-01-14 21:13:56 +08:00
wing328 44853c31b6 update rust default user agent to promote swagger codegen 2018-01-14 18:25:04 +08:00
Tristan Bourvon 66be7a7910 [Rust] Add user agent handling for rust template (master) (#7375)
* Add user agent handling for rust template

* Run ./bin/rust-petstore.sh
2018-01-14 18:18:58 +08:00
wing328 ea8b184931 update circle pom to include scalatra folder 2018-01-14 18:13:25 +08:00
magnolia d5c355a596 [Scalatra] Updated the version of Scalatra to the latest (2.6.2) (#7393)
* Updated the version of Scalatra to the latest (2.6.2)

 - Updated Scalatra 2.6.2 (latest)
 - Updated Scala 2.12.4
 - Updated sbt 1.1.0
 - Reduced dependent artifacts to a minimum
 - Cleaned up build.sbt
 - Changed the package name from client to server
 - Set log output (logback)
 - Updated web.xml for servlet 3.1

* rename package 'com.wordnik' -> 'io.swagger'

* Added rolling file appender to logback.xml
2018-01-14 18:11:37 +08:00
Euan Kemp 3029b7b0fb [Rust] Format example with rustfmt (#7339)
This was handled via 'cargo fmt' on the current nightly rust. I also
moved a few lines around and deleted an old comment.
2018-01-14 18:03:12 +08:00
etherealjoy 0bf430a803 Qt5cpp Add support for nested containers (#7340)
* Disable creation of empty json fields and fields for primitives which were not set, but using default values
modelnamePrefix will be the one passed from command line or SWG if none

* Updates after review
Also common http files are splitted
Update Petstore examples

* Small Fixes for cleaning up arrays of arrays/maps

* Changes
- Api Body pass by Reference, avoid seg fault due to deletion of auto constructed object passed as parameter.
- Support Maps and Arrays upto a depth of 2
- Refactor Helpers to handle Maps and simplify code

* Remove size check due to possible incorrect type

* Update PetStore Examples for Qt5 C++ and small fixes for QDate/QDateTime

* Updates after review. Fixes typo and remove usage of auto keyword.

* Restored usage of auto keyword.
2018-01-14 17:47:54 +08:00
Akihito Nakano 809e1f4c93 [PHP] Cleanup tests (#7333)
* Regenerate test/UserApiTest.php

The same implementation as testLoginUser() is in tests/UserApiTest.php

* Delete test/Client/ObjectSerializerTest.php

The same implementation is in tests/ObjectSerializerTest.php

* Update Petstore sample

- bin/php-petstore.sh
- bin/security/php-petstore.sh
2018-01-14 17:47:08 +08:00
William Cheng 094f69bc9e fix missing "`", removed duplicated Huawei entries 2018-01-14 17:44:46 +08:00
wing328 2c628aa587 Merge branch '2.4.0' of https://github.com/swagger-api/swagger-codegen into 2.4.0 2018-01-14 17:41:37 +08:00
Darío Hereñú 94746bb23d Typo
on @266. Plus minor fixes (proposal)
2018-01-14 17:41:21 +08:00
Ben Mordue 429b96ae7e [JAVA] equals and hashCode for models with byte[] and binary strings (#7341)
* equals and hashCode methods for POJOs with byte array vars

* Also fix equals and hashCode for binary vars

* Ran script to update samples
2018-01-14 17:39:32 +08:00
Marian Steinbach 90859575eb Fixing variable name typo (instane -> instance) (#7353) 2018-01-14 17:37:37 +08:00
wing328 fb73b8c4de update r petstore samples 2018-01-14 17:18:40 +08:00
wing328 97298bdb03 Merge branch '2.4.0' of https://github.com/swagger-api/swagger-codegen into 2.4.0 2018-01-14 17:14:43 +08:00
sneumann 9e06f7063f Fix assignment of new object instance to variable (#7379)
* #7359 Fix - use reflection to instantiate non-generated class (#7360)

* add tests for java vertx petstore

* add swagger example to README.md (#7368)

* Fix assignment of new object instance to variable

Fixes `Error in foobar$fromJSONString(s) : object 'CategoryObject' not found`
Discussion in https://github.com/swagger-api/swagger-codegen/issues/6520#issuecomment-357132746 ,
thanks @wing328 for encouraging.
2018-01-14 17:14:35 +08:00
Euan Kemp 0f6696089f [Go] Use consistent indentation in readme (#7336)
* [Go] Use consistent indentation in readme

* [Go] Regenerate petstore sample
2018-01-14 17:05:18 +08:00
antihax 72abb20f2e [Go] Fix operation files clobbering model files. [2.4.0] (#7337)
* Prevent operation files clobbering model files.

* Update Tests
2018-01-14 17:00:17 +08:00
Illia Ovchynnikov 642c0566de Use Rx2 Completalbe for Void Retrofit2 responses 2018-01-13 14:15:44 +01:00
wing328 73c338be58 Merge remote-tracking branch 'origin/master' into 2.4.0 2018-01-13 15:54:41 +08:00
wing328 3930b5b0a1 Merge remote-tracking branch 'origin/master' into 2.4.0 2018-01-11 13:40:35 +08:00
Five & Done 1bb9207c9b Standardize all isRestfulxxx methods. (#7352)
* [Scala] Fix async helper methods when body is optional (#7274)

* [Scala] Fix async helper methods when body is optional

Closes #7272

* Update petstore sample

* Standardize all isRestfulxxx methods.

Change 'equals' method to 'equalsIgnoreCase' for isRestfulIndex method in Operations.  This matches isRestfulCreate, isRestfulShow, isRestfulDestroy
2018-01-11 12:48:37 +08:00
Jean-François Côté ebf4efe3ea Fix issue #6867 : The apiPackage option was ignored (#7316)
* Fix issue #6867 : The apiPackage option is ignored in the template for Java Play Framework.

* use openjdk7 in travis to ensure it works with jdk7
2018-01-10 13:15:49 +08:00
Joseph Elliott 673be4e88f exclude commons package from org.apache.oltu.oauth2 to provide a more long-term fix. 2018-01-08 14:41:57 +01:00
Joseph Elliott c642d8a89b Roll back oltu_version to 1.0.0 to fix #7044 2018-01-08 14:25:32 +01:00
wing328 16e3226c8a Merge remote-tracking branch 'origin/master' into 2.4.0 2018-01-08 18:01:20 +08:00
Mehdi Jouan c7f12d6c2d [Spring][Java] fix support of long values for @Max and @Min annotations (#7227)
* add support of long values for @Max and @Min annotations

* run shell scripts for java and spring

* fix import issue after running shell script
2018-01-08 00:22:06 +08:00
William Cheng f7779c545e refactor abstract scala codegen (#7334) 2018-01-08 00:20:38 +08:00
wing328 a85162fe33 Merge branch '2.4.0' of https://github.com/swagger-api/swagger-codegen into 2.4.0 2018-01-08 00:15:26 +08:00
wing328 8348d535ab Merge branch 'ehyche-ehyche_update_reserved_words_swift4' into 2.4.0 2018-01-08 00:14:17 +08:00
wing328 99823c04b9 update Swift4ModelTest.java with _id 2018-01-08 00:13:49 +08:00
wing328 0a6826d284 Merge branch 'ehyche_update_reserved_words_swift4' of https://github.com/ehyche/swagger-codegen into ehyche-ehyche_update_reserved_words_swift4 2018-01-08 00:05:49 +08:00
Sunrin SHIMURA f5adbec1ff [Rust-Server] Use string literal based mime initialization (#7212)
* Use string literal based mime initialization to avoid invalid token error

* canonicalize mimetypes before checking
2018-01-08 00:00:12 +08:00
wing328 e51223eef1 Revert "Replaced \t with spaces (#7265)"
This reverts commit 14a2c81adb.
2018-01-07 23:46:33 +08:00
Jean-François Côté 193432ef52 Added optional extra JQueryAjaxSettings at the class and function level (#7238) 2018-01-07 23:21:43 +08:00
wing328 007974e3de Merge remote-tracking branch 'origin/master' into 2.4.0 2018-01-07 23:13:24 +08:00
craffael 9a284776d8 [Java] Fix serialization of the discriminator field when using GSON (#7075)
* set discriminator on object construction...

* regenerate all java samples

* run bin/java-msf4j-petstore-server.sh

* remove extra newline
2018-01-07 23:10:32 +08:00
westse ea3d039717 [scala] make stripPackage name configurable via property (#7226)
* Make stripPackage name configurable via property
- Needed because some APIs (e.g. Kubernetes) include version information in packages. Stripping causes many generated API and model classes to be named the same, causing a last-one-wins situation which is unacceptable.

* Per PR review, ensure stripPackageName Boolean property and log warning
2018-01-07 21:47:25 +08:00
etherealjoy c7ff303779 [qt5cpp] Disable creation of empty json fields and handle prefix in model generation (#7206)
* Disable creation of empty json fields and fields for primitives which were not set, but using default values
modelnamePrefix will be the one passed from command line or SWG if none

* Updates after review
Also common http files are splitted
Update Petstore examples
2018-01-07 17:50:44 +08:00
wing328 0469975632 minor enhancement to scala gatling 2018-01-07 17:38:55 +08:00
ryandavis84 6d2d4298df Gatling generator2 issue #6927 (#6934)
* Initial commit, Generates everything necessary to run a performnace test against a swagger api.  Just have to fill out the CSV feeder files with your data.

* adding samples and gatling-petstore.sh file

* Extending the AbstractScalaCodeGen

* Checking in the CodegenConfig file as it is needed to generate

* removing escaped reserved words

* Changed model to be able to make all variables utilize an underscore while json fields are still just the variable name

* Changing underscore to var as interpolation can not start with a _ in scala

* Fixing path params

* allow you to pass in a system property to define which config to use as a workload profile, use rate and instance multipliers to scale up and down your test, added ramp down after the test is completed, added global assertions.

* Addressing PR feedback

* missed semi-colon

* Bringing everything up to date with the renames that were suggested
2018-01-07 17:18:36 +08:00
ehyche 97ad90578d Split up model template into partials (#7297) 2018-01-07 16:57:58 +08:00
Jon Schoning bca2b9fb5b [haskell-http-client] handle */* mimetype correctly & split api modules & allowNonUniqueOperationIds (#7254)
* [haskell-http-client] handle */* mimetype correctly

* [haskell-http-client] generate separate api modules, for each child api

* [haskell-http-client] add cliOption "allowNonUniqueOperationIds"

When cli option "allowNonUniqueOperationIds" is true,
allows *different* API modules to contain the same operationId,
and then each API must be imported qualified.
2018-01-07 11:59:55 +08:00
Oleksandr Slynko 919f867eba [go] Fix go client formatting (#7283)
* Fix some go client formatting issues

* Fix go client go imports

* Run `goimports -w .` on examples directory

* Sort imports in api

* Add new line between each property

Before secret feature was used to add new line using two property
declaration in the same line. There should be no new line before
first property. The easiest way is to use `-first` special
property
https://github.com/samskivert/jmustache#-first-and--last

New line are required so `goimports` won't reformat  whitespaces between
property name and type.

* Change whitespaces to tabs

* Fix whitespaces in api_client

There is a new line between each service to prevent `goimports` from
adding whitespaces between types and names

* Fix more whitespaces

There was a need to set special delimeter for formatting in the commit.
Go slices use curly braces and `jmustache` got confused when found
triple curly braces.

* Fix whitespaces in configuration.mustache

* Fix whitespaces for api response

* Support for optional description

Do not add whitespace if description is missing

* Add new lines between enum values to prevent formatting

* Generate go code from current code

- imports are not sorted :(
- there are extra whitespaces for different languages. I don't know why

* Run generate for security tests
2018-01-07 11:53:55 +08:00
etherealjoy 6afc0e9344 Fix for #7198, use QJsonObject instead of QJsonArray for maps (#7204)
[C++][Qt5] use QJsonObject instead of QJsonArray for maps
2018-01-07 11:50:22 +08:00
Akihito Nakano 4e5ec4c71c [PHP] Cleanup StoreApiTest (#7248)
* Move test codes in "test" to "tests".

* Simplify class name specification

* Regenerate test/Api/StoreApiTest.php

testGetInventory already exists in tests/StoreApiTest.php
2018-01-07 11:46:31 +08:00
Dennis Kieselhorst ee5709177a [Java] update CXF to latest release (3.2.1) (#7284)
* update CXF to latest release (3.2.1)

* update CXF to latest release (3.2.1) - samples update
2018-01-07 11:43:34 +08:00
Akihito Nakano 50d217894c [PHP] Cleanup EnumTest (#7282)
* Move test codes in "test" to "tests"

- EnumClassTest
- EnumTestTest

* Regenerate test/Model/Enum(Class|Test)Test.php
2018-01-07 11:42:44 +08:00
Bernat Ràfales 9b5bba0193 Correct minor typo in Ruby gemspec files (#7263)
[Ruby] Correct minor typo in Ruby gemspec files
2018-01-07 11:41:14 +08:00
marcindanek85 14a2c81adb Replaced \t with spaces (#7265)
* Added copying array type descriptors (isBoolean, isNumber, etc) to specify the type of items in array

* Replaced \t with spaces
2018-01-07 11:40:10 +08:00
Akihito Nakano fa9fc4b45b Delete ApiClient (#7305) 2018-01-07 11:34:17 +08:00
Akihito Nakano 68a4552741 Tweak test doc comment (#7280) 2018-01-07 11:23:05 +08:00
Akihito Nakano fa3e72e6e3 [PHP] Cleanup AnimalFarmTest (#7279)
* Move test codes in "test" to "tests"

* Regenerate test/Model/AnimalFarmTest.php
2018-01-07 11:21:53 +08:00
William Cheng 4bb6d8993c fix removeOperationIdPrefix in additional properties (#7301) 2018-01-07 11:15:13 +08:00
William Cheng a5009b592e add shijinkui to scala technical committee 2018-01-07 11:05:58 +08:00
wing328 7f0dca7ac2 update version to 2.4.0-SNAPSHOT 2018-01-07 11:04:05 +08:00
Jinkui Shi 30bd6f680d [akka-scala] License info add in template header #7321 (#7322)
* [akka-scala] License info add in template header #7321

* generate petstore by akka-scala teplate
2018-01-07 11:00:57 +08:00
Eric Hyche 6c6cf1c09c Re-organize the reserved words for Swift4 2018-01-02 10:32:55 -05:00
22395 changed files with 1372525 additions and 854996 deletions
+117
View File
@@ -0,0 +1,117 @@
let fs = require('fs');
let path = require('path');
let util = require('util');
let yaml = require('./js-yaml.js');
let samples = require('./samples.json');
class LabelMatch {
constructor (match, label) {
this.match = match;
this.label = label;
}
}
class FileError {
constructor (file, actualLabels, expectedLabels) {
this.file = file;
this.actual = actualLabels;
this.expected = expectedLabels;
}
}
class TextError {
constructor (text, actualLabels, expectedLabels) {
this.text = text;
this.actual = actualLabels;
this.expected = expectedLabels;
}
}
let labels = [];
function labelsForFile(file) {
let body = fs.readFileSync(file);
return labelsForText(body)
}
function labelsForText(text) {
let addLabels = new Set();
let body = text;
for (const v of labels) {
if (v.match.test(body)) {
addLabels.add(v.label)
}
// reset regex state
v.match.lastIndex = 0
}
return addLabels;
}
try {
let config = yaml.safeLoad(fs.readFileSync('../auto-labeler.yml', 'utf8'));
if (config && config.labels && Object.keys(config.labels).length > 0) {
for (const labelName in config.labels) {
if (config.labels.hasOwnProperty(labelName)) {
let matchAgainst = config.labels[labelName];
if (Array.isArray(matchAgainst)) {
matchAgainst.forEach(regex => {
// noinspection JSCheckFunctionSignatures
labels.push(new LabelMatch(new RegExp(regex, 'g'), labelName));
})
}
}
}
}
if (labels.length === 0) {
// noinspection ExceptionCaughtLocallyJS
throw new Error("Expected to parse config.labels, but failed.")
}
let fileErrors = [];
samples.files.forEach(function(tester){
let file = path.normalize(path.join('..', '..', 'bin', tester.input));
let expectedLabels = new Set(tester.matches);
let actualLabels = labelsForFile(file);
let difference = new Set([...actualLabels].filter(x => !expectedLabels.has(x)));
if (difference.size > 0) {
fileErrors.push(new FileError(file, actualLabels, expectedLabels));
}
});
let textErrors = [];
samples.text.forEach(function(tester){
let expectedLabels = new Set(tester.matches);
let actualLabels = labelsForText(tester.input);
let difference = new Set([...actualLabels].filter(x => !expectedLabels.has(x)));
if (difference.size > 0) {
textErrors.push(new TextError(tester.input, actualLabels, expectedLabels));
}
});
// These are separate (file vs text) in case we want to preview where these would fail in the file. not priority at the moment.
if (fileErrors.length > 0) {
console.warn('There were %d file tester errors', fileErrors.length);
fileErrors.forEach(function(errs) {
console.log("file: %j\n actual: %j\n expected: %j", errs.file, util.inspect(errs.actual), util.inspect(errs.expected))
});
}
if (textErrors.length > 0) {
console.warn('There were %d text tester errors', textErrors.length);
textErrors.forEach(function(errs){
console.log("input: %j\n actual: %j\n expected: %j", errs.text, util.inspect(errs.actual), util.inspect(errs.expected))
})
}
let totalErrors = fileErrors.length + textErrors.length;
if (totalErrors === 0) {
console.log('Success!');
} else {
console.log('Failure: %d total errors', totalErrors);
}
} catch (e) {
console.log(e);
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -7,11 +7,11 @@ Also please indicate in the issue title which language/library is concerned. Eg:
<!-- describe what is the question, suggestion or issue and why this is a problem for you. -->
##### Swagger-codegen version
##### openapi-generator version
<!-- which version of swagger-codegen are you using, is it a regression? -->
<!-- which version of openapi-generator are you using, is it a regression? -->
##### Swagger declaration file content or url
##### OpenAPI declaration file content or url
<!-- if it is a bug, a json or yaml that produces it.
If you post the code inline, please wrap it with
@@ -37,7 +37,7 @@ link it here.
##### Related issues/PRs
<!-- has a similar issue/PR been reported/opened before? Please do a search in https://github.com/swagger-api/swagger-codegen/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
<!-- has a similar issue/PR been reported/opened before? Please do a search in https://github.com/openapitools/openapi-generator/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
##### Suggest a fix/enhancement
+10
View File
@@ -0,0 +1,10 @@
---
name: Announcement
about: Announcements related to the project
title: "[Announcement] TITLE"
labels: Announcement
assignees: ''
---
+54
View File
@@ -0,0 +1,54 @@
---
name: Bug report
about: Create a bug report to help us improve
title: "[BUG] Description"
labels: 'Issue: Bug'
assignees: ''
---
<!--
Please follow the issue template below for bug reports.
Also please indicate in the issue title which language/library is concerned. Eg: [BUG][JAVA] Bug generating foo with bar
-->
##### Description
<!-- describe what is the question, suggestion or issue and why this is a problem for you. -->
##### openapi-generator version
<!-- which version of openapi-generator are you using, is it a regression? -->
##### OpenAPI declaration file content or url
<!-- if it is a bug, a json or yaml that produces it.
If you post the code inline, please wrap it with
```yaml
(here your code)
```
(for YAML code) or
```json
(here your code)
```
(for JSON code), so it becomes more readable. If it is longer than about ten lines,
please create a Gist (https://gist.github.com) or upload it somewhere else and
link it here.
-->
##### Command line used for generation
<!-- including the language, libraries and various options -->
##### Steps to reproduce
<!-- unambiguous set of steps to reproduce the bug.-->
##### Related issues/PRs
<!-- has a similar issue/PR been reported/opened before? Please do a search in https://github.com/openapitools/openapi-generator/issues?utf8=%E2%9C%93&q=is%3Aissue%20 -->
##### Suggest a fix
<!-- if you can't fix the bug yourself, perhaps you can point to what might be
causing the problem (line of code or commit), or simply make a suggestion -->
+24
View File
@@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[REQ] Feature Request Description"
labels: 'Enhancement: Feature'
assignees: ''
---
### Is your feature request related to a problem? Please describe.
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
## Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. -->
## Describe alternatives you've considered
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
## Additional context
<!-- Add any other context or screenshots about the feature request here. -->
+3 -3
View File
@@ -1,9 +1,9 @@
### PR checklist
- [ ] Read the [contribution guidelines](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md).
- [ ] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
- [ ] 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` and `./bin/security/{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\`.
- [ ] Filed the PR against the correct branch: `3.0.0` branch for changes related to OpenAPI spec 3.0. Default: `master`.
- [ ] Copied the [technical committee](https://github.com/swagger-api/swagger-codegen/#swagger-codegen-technical-committee) to review the pull request if your PR is targeting a particular programming language.
- [ ] Filed the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`~~, `3.4.x`, `4.0.x`~~. Default: `master`.
- [ ] Copied the [technical committee](https://github.com/openapitools/openapi-generator/#62---openapi-generator-technical-committee) to review the pull request if your PR is targeting a particular programming language.
### Description of the PR
+290
View File
@@ -0,0 +1,290 @@
comment: |
👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.
The team will review the labels and make any necessary changes.
labels:
'Announcement':
- '\s*?\[[Aa]nnouncement\]\s*?'
'Breaking change (with fallback)':
- '\s*?[bB]reaking [cC]hange [wW]ith [fF]allback\s*?'
'Breaking change (without fallback)':
- '\s*?[bB]reaking [cC]hange [wW]ithout [fF]allback\s*?'
'Client: Ada':
- '\s*?\[ada\]\s*?'
- '\s*?-[gl] ada(?!-)\b'
'Client: Android':
- '\s*?\[android\]\s*?'
- '\s*?-[gl] android(?!-)\b'
'Client: Apex':
- '\s*?\[apex\]\s*?'
- '\s*?-[gl] apex(?!-)\b'
'Client: Bash':
- '\s*?\[bash\]\s*?'
- '\s*?-[gl] bash(?!-)\b'
'Client: C':
- '\s*?\[[cC]\]\s*?'
- '\s*?-[gl] c(?!-)\b'
# 'Client: Ceylon':
'Client: C++':
- '\s*?\[cpp(-.*)?-client\]\s*?'
- '\s*?-[gl] cpp(-.*)?-client\s*?'
- '\s*?-[gl] cpp-restsdk(?!-)\b'
- '\s*?-[gl] cpp-tizen(?!-)\b'
'Client: C-Sharp':
- '\s*?-[gl] csharp(?!-)\b'
- '\s*?[cC]-[sS]harp [cC]lient\s*?'
- '\s*?-[gl] csharp-dotnet2\s*?'
- '\s*?-[gl] csharp-refactor?\s*?'
- '\s*?\[[Cc]#\]'
- '\s*?\[csharp\]\s*?'
'Client: Clojure':
- '\s*?\[clojure\]\s*?'
- '\s*?-[gl] clojure(?!-)\b'
# 'Client: Crystal':
'Client: Dart':
- '\s*?\[dart\]\s*?'
- '\s*?-[gl] dart(?!-)\b'
'Client: Dukescript':
- '\s*?\[dukescript\]\s*?'
- '\s*?-g dukescript\s*?'
'Client: Eiffel':
- '\s*?\[eiffel\]\s*?'
- '\s*?-[gl] eiffel(?!-)\b'
'Client: Elixir':
- '\s*?\[elixir\]\s*?'
- '\s*?-[gl] elixir(?!-)\b'
'Client: Elm':
- '\s*?\[elm\]\s*?'
- '\s*?-[gl] elm(?!-)\b'
'Client: Erlang':
- '\s*?\[erlang(-.*)?-client\]\s*?'
- '\s*?-[gl] erlang(-.*)?-client\s*?'
- '\s*?\[erlang-proper\]\s*?'
- '\s*?-[gl] erlang-proper\s*?'
'Client: Flash/ActionScript':
- '\s*?\[flash\]\s*?'
- '\s*?-[gl] flash(?!-)\b'
'Client: Go':
- '\s*?\[go\]\s*?'
- '\s*?-[gl] go(?!-)\b'
'Client: Groovy':
- '\s*?\[groovy\]\s*?'
- '\s*?-[gl] groovy(?!-)\b'
'Client: HTML':
- '\s*?\[html[2]?\]\s*?'
- '\s*?-[gl] html[2]?\s*?'
'Client: Haskell':
- '\s*?\[haskell(-.*)?-client\]\s*?'
- '\s*?-[gl] haskell(-.*)?-client\s*?'
'Client: JMeter':
- '\s*?\[jmeter\]\s*?'
- '\s*?-[gl] jmeter\s*?'
'Client: Java':
- '\s*?\[java\]\s*?'
- '\s*?-[gl] java(?!-)\b'
'Client: JavaScript/Node.js':
- '\s*?\[javascript\]\s*?'
- '\s*?-[gl] javascript\s*?'
- '\s*?-[gl] javascript-(\S)*\s*?'
# 'Client: Julia': # NOTE: Not yet implemented
'Client: Kotlin':
- '\s*?\[kotlin\]\s*?'
- '\s*?-[gl] kotlin(?!-)\b'
'Client: Lisp':
- '\s*?\[lisp\]\s*?'
- '\s*?-[gl] lisp(?!-)\b'
'Client: Lua':
- '\s*?\[lua\]\s*?'
- '\s*?-[gl] lua(?!-)\b'
'Client: Objc':
- '\s*?\[objc\]\s*?'
- '\s*?-[gl] objc\s*?'
# 'Client: OCaml':
'Client: Perl':
- '\s*?\[perl\]\s*?'
- '\s*?-[gl] perl(?!-)\b'
# 'Client: PHP':
'Client: PowerShell':
- '\s*?\[powershell\]\s*?'
- '\s*?-[gl] powershell\s*?'
'Client: Python':
- '\s*?\[python\]\s*?'
- '\s*?-[gl] python(?!-)\b'
'Client: QT':
- '\s*?\[cpp-qt5-client\]\s*?'
- '\s*?-[gl] cpp-qt5-client\s*?'
'Client: R':
- '\s*?\[[rR]\]\s*?'
- '\s*?-[gl] r(?!-)\b'
'Client: Reason ML':
- '\s*?\[reasonml\]\s*?'
- '\s*?-[g] reasonml\s*?'
'Client: Retrofit':
- '\s*?retrofit.*?\s*?'
'Client: Ruby':
- '\s*?\[ruby\]\s*?'
- '\s*?-[gl] ruby(?!-)\b'
'Client: Rust':
- '\s*?\[rust\]\s*?'
- '\s*?-[gl] rust(?!-)\b'
'Client: Scala':
- '\s*?\[scalaz\]\s*?'
- '\s*?-[gl] scalaz\s*?'
- '\s*?\[scala-(?!finch)[a-z]+\]\b'
- '\s*?-[gl] scala-(?!finch)[a-z]+?(?!-)\b'
'Client: Swift':
- '\s*?\[swift[34]+\]\s*?'
- '\s*?-[gl] swift[34]+\s*?'
- '\s*?-[gl] swift2-deprecated\s*?'
'Client: TypeScript':
- '\s*?\[typescript-[\-a-z]+\]\s*?'
- '\s*?-[gl] typescript-[\-a-z]+\s*?'
# 'Client: VB/VB.net': # NOTE: Not yet implemented
# 'Client: Visual Basic': # TODO: REMOVE UNUSED LABEL
'Config: Apache':
- '\s*?\[apache2\]\s*?'
- '\s*?-[gl] apache2\s*?'
'Docker':
- '\s*?\[docker\]\s*?'
'Documentation: Cwiki':
- '\s*?\[cwiki\]\s*?'
- '\s*?-[gl] cwiki\s*?'
'Documentation: Dynamic HTML':
- '\s*?\[dynamic-html\]\s*?'
- '\s*?-[gl] dynamic-html\s*?'
'Enhancement: CI/Test':
- '\s*?\[ci\]\s*?'
'Enhancement: Code format':
- '\s*?\[format(ting)?\]\s*?'
# 'Enhancement: Compatibility':
'Enhancement: Feature':
- '\s*?\[feat(ure)?s*?'
'Enhancement: General':
- '\s*?\[general\]\s*?'
- '\s*?\[core\]\s*?'
# 'Enhancement: New generator':
'Enhancement: Performance':
- '\s*?\[perf\]\s*?'
# 'Feature List: API clients':
# 'Feature List: API documentations':
# 'Feature List: API servers':
# 'Feature: Authentication':
# 'Feature: Composition / Inheritance':
# 'Feature: Documentation':
# 'Feature: Enum':
# 'Feature: Generator':
'Feature: OAS 3.0 spec support':
- '\s*?\[oas3[\.0]?\]\s*?'
# 'General: Awaiting feedback':
'General: Discussion':
- '\s*?\[discussion\]\s*?'
'General: Question':
- '\s*?\[question\]\s*?'
'General: Suggestion':
- '\s*?\[suggestion\]\s*?'
'General: Support':
- '\s*?\[support\]\s*?'
'Issue: Bug':
- '\s*?\[bug(s)?\]\s*?'
- '\s*?\[fix(es)?\]\s*?'
# 'Issue: Invalid spec':
# 'Issue: Migration':
# 'Issue: Non-operational':
# 'Issue: Platform':
# 'Issue: Regression':
'Issue: Security':
- '\s*?\[security\]\s*?'
# 'Issue: Unable to reproduce':
# 'Issue: Undo changes':
# 'Issue: Usage/Installation':
# 'Issue: Workaround available':
'OpenAPI Generator CLI':
- '\s*?\[cli\]\s*?'
'OpenAPI Generator Gradle Plugin':
- '\s*?\[gradle\]\s*?'
'OpenAPI Generator Maven Plugin':
- '\s*?\[maven\]\s*?'
'OpenAPI Generator Online':
- '\s*?\[online\]\s*?'
'Schema: MySQL':
- '\s*?\[mysql\]\s*?'
- '\s*?-[gl] mysql\s*?'
'Schema: GraphQL':
- '\s*?\[graphql-schema\]\s*?'
- '\s*?-[gl] graphql-schema\s*?'
'Server: Ada':
- '\s*?\[ada(-.*)?-server\]\s*?'
- '\s*?-[gl] ada(-.*)?-server\s*?'
'Server: C++':
- '\s*?\[cpp(-.*)?-server\]\s*?'
- '\s*?-[gl] cpp(-.*)?-server\s*?'
'Server: C-Sharp':
- '\s*?\[aspnetcore\]\s*?'
- '\s*?-[gl] aspnetcore\s*?'
- '\s*?\[csharp-nancyfx\]\s*?'
- '\s*?-[gl] csharp-nancyfx\s*?'
# 'Server: Ceylon': # TODO: REMOVE UNUSED LABEL
'Server: Eiffel':
- '\s*?\[eiffel(-.*)?-server\]\s*?'
- '\s*?-[gl] eiffel(-.*)?-server\s*?'
'Server: Elixir':
- '\s*?\[elixir(-.*)?-server\]\s*?'
- '\s*?-[gl] elixir(-.*)?-server\s*?'
'Server: Erlang':
- '\s*?\[erlang-server\]\s*?'
- '\s*?-[gl] erlang-server\s*?'
'Server: Go':
- '\s*?\[go(-.*)?-server\]\s*?'
- '\s*?-[gl] go(-.*)?-server\s*?'
'Server: GraphQL':
- '\s*?\[graphql(-.*)?-server\]\s*?'
- '\s*?-[gl] graphql(-.*)?-server\s*?'
'Server: Haskell':
- '\s*?\[haskell]\s*?'
- '\s*?-[gl] haskell(?!-)\b'
'Server: Java':
- '\s*?\[java-.*?\]\s*?'
- '\s*?-[gl] java-.*?\s*?'
- '\s*?-[gl] jaxrx-.*?\s*?'
'Server: Kotlin':
- '\s*?\[ktor]\s*?'
- '\s*?\[kotlin-spring]\s*?'
- '\s*?\[kotlin(-.*)?-server\]\s*?'
- '\s*?-[gl] kotlin(-.*)?-server\s*?'
- '\s*?-[gl] kotlin-spring\s*?'
'Server: Nodejs':
- '\s*?\[nodejs(-.*)?-server\]\s*?'
- '\s*?-[gl] nodejs(-.*)?-server\s*?'
'Server: PHP':
- '\s*?\[php-.*?\]\s*?'
- '\s*?-[gl] php-.*?\s*?'
'Server: Perl':
- '\s*?\[perl(-.*)?-server\]\s*?'
- '\s*?-g perl(-.*)?-server\s*?'
'Server: Python':
- '\s*?\[python-.*?\]\s*?'
- '\s*?-[gl] python-.*?\s*?'
'Server: Ruby':
- '\s*?\[ruby-.*?\]\s*?'
- '\s*?-[gl] ruby-.*?\s*?'
'Server: Rust':
- '\s*?\[rust(-.*)?-server\]\s*?'
- '\s*?-[gl] rust(-.*)?-server\s*?'
'Server: Scala':
- '\s*?\[scala(-.*)?-server\]\s*?'
- '\s*?-[gl] scala(-.*)?-server\s*?'
- '\s*?\[scalatra\]\s*?'
- '\s*?-[gl] scalatra\s*?'
- '\s*?\[scala-finch\]\s*?'
- '\s*?-[gl] scala-finch\s*?'
'Server: Spring':
- '\s*?\[spring\]\s*?'
- '\s*?-[g] spring\s*?'
# 'Swagger-Parser':
'WIP':
- '\s*?\[wip\]\s*?'
- '\s*?\[WIP\]\s*?'
- '\bWIP:.*?'
'help wanted':
- '\s*?\[help wanted\]\s*?'
+53 -16
View File
@@ -3,9 +3,11 @@
out/
*.ipr
*.iws
*.gpg
classpath.txt
version.properties
!modules/swagger-codegen-cli/src/main/resources/version.properties
modules/openapi-generator-gradle-plugin/bin/
!modules/openapi-generator-cli/src/main/resources/version.properties
.project
.classpath
lib/*
@@ -50,6 +52,7 @@ samples/server/petstore/nodejs/node_modules
samples/server/petstore/nodejs-server/node_modules
# qt5 cpp
*.pro.user
samples/client/petstore/qt5cpp/PetStore/moc_*
samples/client/petstore/qt5cpp/PetStore/*.o
samples/client/petstore/qt5cpp/build-*
@@ -57,6 +60,12 @@ samples/client/petstore/qt5cpp/PetStore/PetStore
samples/client/petstore/qt5cpp/PetStore/Makefile
samples/client/petstore/qt5cpp/PetStore/PetStore.pro.user
# cpprestsdk
samples/client/petstore/cpp-restsdk/CMakeCache.txt
samples/client/petstore/cpp-restsdk/CMakeFiles/
samples/client/petstore/cpp-restsdk/Makefile
samples/client/petstore/cpp-restsdk/cmake_install.cmake
#Java/Android
**/.gradle
samples/client/petstore/java/hello.txt
@@ -81,19 +90,9 @@ samples/client/petstore/scala/build/
samples/client/petstore/java/resttemplate/hello.txt
samples/client/petstore/java/retrofit2/hello.txt
samples/client/petstore/java/feign/hello.txt
#PHP
samples/client/petstore/php/SwaggerClient-php/composer.lock
samples/client/petstore/php/SwaggerClient-php/vendor/
samples/client/petstore/silex/SwaggerServer/composer.lock
samples/client/petstore/silex/SwaggerServer/venodr/
**/vendor/
**/composer.lock
#PHP-Symfony
samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/cache/
samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/logs/
samples/client/petstore/java/jersey2-java6/project/
samples/client/petstore/java/jersey2-java8/project/
samples/client/petstore/java/jersey2/project/
# Perl
samples/client/petstore/perl/deep_module_test/
@@ -117,14 +116,14 @@ samples/client/petstore/swift/**/SwaggerClientTests/SwaggerClient.xcworkspace/xc
samples/client/petstore/swift/**/SwaggerClientTests/Pods/
#samples/client/petstore/swift/**/SwaggerClientTests/Pods/Pods.xcodeproj/xcuserdata
#samples/client/petstore/swift/**/SwaggerClientTests/Pods/Pods.xcodeproj/xcshareddata/xcschemes
samples/client/petstore/swift/**/SwaggerClientTests/Podfile.lock
samples/client/petstore/swift/**/SwaggerClientTests/Podfile.lock
# Swift3
samples/client/petstore/swift3/**/SwaggerClientTests/SwaggerClient.xcodeproj/xcuserdata
samples/client/petstore/swift3/**/SwaggerClientTests/SwaggerClient.xcworkspace/xcuserdata
#samples/client/petstore/swift3/**/SwaggerClientTests/Pods/
#samples/client/petstore/swift3/**/SwaggerClientTests/Pods/Pods.xcodeproj/xcuserdata
#samples/client/petstore/swift3/**/SwaggerClientTests/Pods/Pods.xcodeproj/xcshareddata/xcschemes
samples/client/petstore/swift3/**/SwaggerClientTests/Podfile.lock
samples/client/petstore/swift3/**/SwaggerClientTests/Podfile.lock
# C#
*.csproj.user
@@ -147,6 +146,8 @@ samples/client/petstore/csharp/SwaggerClient/bin/Debug/
samples/client/petstore/csharp/SwaggerClient/packages
samples/client/petstore/csharp/SwaggerClient/TestResult.xml
samples/client/petstore/csharp/SwaggerClientWithPropertyChanged/IO.Swagger.userprefs
samples/client/petstore/csharp-refactor/OpenAPIClient/TestResult.xml
samples/client/petstore/csharp-refactor/OpenAPIClient/nuget.exe
# Python
*.pyc
@@ -156,6 +157,9 @@ samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt
samples/client/petstore/python/.coverage
samples/client/petstore/python/.projectile
samples/client/petstore/python/.venv/
samples/client/petstore/python-asyncio/.venv/
samples/client/petstore/python-asyncio/.pytest_cache/
samples/client/petstore/python-tornado/.venv/
# ts
samples/client/petstore/typescript-node/npm/node_modules
@@ -173,12 +177,19 @@ samples/server/petstore/aspnetcore/.vs/
effective.pom
# kotlin
samples/client/petstore/kotlin/src/main/kotlin/test/
samples/client/petstore/kotlin-threetenbp/build
samples/client/petstore/kotlin-string/build
samples/server/petstore/kotlin-server/ktor/build
samples/openapi3/client/petstore/kotlin/build
\?
# haskell
.stack-work
.cabal-sandbox
cabal.project.local
samples/client/petstore/haskell-http-client/docs/haddock-bundle.min.js
samples/client/petstore/haskell-http-client/docs/meta.json
samples/client/petstore/haskell-http-client/docs/quick-jump.css
# R
.Rproj.user
@@ -187,3 +198,29 @@ cabal.project.local
samples/client/petstore/elixir/_build/
samples/client/petstore/elixir/deps/
samples/client/petstore/elixir/mix.lock
# groovy
samples/client/petstore/groovy/build
# erlang
samples/client/petstore/erlang-client/_build/
samples/client/petstore/erlang-client/rebar.lock
samples/client/petstore/erlang-proper/_build/
samples/client/petstore/erlang-proper/rebar.lock
samples/server/petstore/erlang-server/_build/
samples/server/petstore/erlang-server/rebar.lock
# dart
samples/client/petstore/dart/petstore/packages
samples/client/petstore/dart/flutter_petstore/test/packages
samples/client/petstore/dart/petstore/test/packages
# JS
samples/client/petstore/javascript/package-lock.json
# elm
samples/client/petstore/elm/index.html
# C
samples/client/petstore/c/build
samples/client/petstore/c/*.so
+36
View File
@@ -0,0 +1,36 @@
## The builder labeled image acts as a transient container which is meant to
## hold all non-artifact code.
##
## You can build _just_ this part with:
## docker --target builder -t container-name:builder -f .hub.cli.dockerfile .
FROM jimschubert/8-jdk-alpine-mvn:1.0 as builder
RUN set -x && \
apk add --no-cache bash
ENV GEN_DIR /opt/openapi-generator
WORKDIR ${GEN_DIR}
COPY . ${GEN_DIR}
# Pre-compile openapi-generator-cli
RUN mvn -am -pl "modules/openapi-generator-cli" package
## The final (release) image
## The resulting container here only needs the target jar
## and ca-certificates (to be able to query HTTPS hosted specs)
FROM openjdk:8-jre-alpine
ENV GEN_DIR /opt/openapi-generator
RUN apk --no-cache add ca-certificates bash
RUN mkdir -p ${GEN_DIR}/modules/openapi-generator-cli/target
WORKDIR ${GEN_DIR}/modules/openapi-generator-cli/target
COPY --from=builder ${GEN_DIR}/modules/openapi-generator-cli/target/openapi-generator-cli.jar ${GEN_DIR}/modules/openapi-generator-cli/target/openapi-generator-cli.jar
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["help"]
+35
View File
@@ -0,0 +1,35 @@
## The builder labeled image acts as a transient container which is meant to
## hold all non-artifact code.
##
## You can build _just_ this part with:
## docker --target builder -t container-name:builder -f .hub.online.dockerfile .
FROM jimschubert/8-jdk-alpine-mvn:1.0 as builder
RUN set -x && \
apk add --no-cache bash
ENV GEN_DIR /opt/openapi-generator
WORKDIR ${GEN_DIR}
COPY . ${GEN_DIR}
# Pre-compile openapi-generator-online
RUN mvn -am -pl "modules/openapi-generator-online" package
## The final (release) image
## The resulting container here only needs the target jar
FROM openjdk:8-jre-alpine
ENV GEN_DIR /opt/openapi-generator
ENV TARGET_DIR /generator
RUN mkdir -p ${TARGET_DIR}
WORKDIR ${TARGET_DIR}
COPY --from=builder ${GEN_DIR}/modules/openapi-generator-online/target/openapi-generator-online.jar ${TARGET_DIR}/openapi-generator-online.jar
ENV GENERATOR_HOST=http://localhost
EXPOSE 8080
CMD ["java", "-jar", "/generator/openapi-generator-online.jar"]
BIN
View File
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.3/apache-maven-3.3.3-bin.zip
+92 -21
View File
@@ -1,7 +1,7 @@
sudo: required
language: java
jdk:
- openjdk7
- openjdk8
cache:
directories:
@@ -9,8 +9,9 @@ cache:
- $HOME/.ivy2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/samples/client/petstore/php/SwaggerClient-php/vendor
- $HOME/samples/client/petstore/ruby/venodr/bundle
- $HOME/samples/client/petstore/javascript/node_modules
- $HOME/samples/client/petstore/php/OpenAPIToolsClient-php/vendor
- $HOME/samples/client/petstore/ruby/vendor/bundle
- $HOME/samples/client/petstore/python/.venv/
- $HOME/samples/client/petstore/typescript-node/npm/node_modules
- $HOME/samples/client/petstore/typescript-node/npm/typings/
@@ -24,22 +25,45 @@ cache:
- $HOME/samples/client/petstore/typescript-fetch/npm/with-npm-version/typings
- $HOME/samples/client/petstore/typescript-angular/node_modules
- $HOME/samples/client/petstore/typescript-angular/typings
- $HOME/samples/server/petstore/rust-server/target
- $HOME/perl5
- $HOME/.cargo
- $HOME/.stack
- $HOME/.pub-cache
- $HOME/samples/server/petstore/cpp-pistache/pistache
- $HOME/.npm
- $HOME/.rvm/gems/ruby-2.4.1
- $HOME/website/node_modules/
services:
- docker
# comment out the host table change to use the public petstore server
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-5
chrome: stable
hosts:
- petstore.swagger.io
before_install:
# install haskell
- curl -sSL https://get.haskellstack.org/ | sh
- stack upgrade
- stack --version
# install rust
- curl https://sh.rustup.rs -sSf | sh -s -- -y -v
# required when sudo: required for the Ruby petstore tests
- gem install bundler
- npm install -g typescript
- npm install -g npm
- npm install -g elm@0.18.0-exp5
- npm config set registry http://registry.npmjs.org/
- sudo pip install virtualenv
# set python 3.6.3 as default
- source ~/virtualenv/python3.6/bin/activate
# to run petstore server locally via docker
- docker pull swaggerapi/petstore
- docker run -d -e SWAGGER_HOST=http://petstore.swagger.io -e SWAGGER_BASE_PATH=/v2 -p 80:8080 swaggerapi/petstore
@@ -49,6 +73,19 @@ before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq bats
- sudo apt-get install -qq curl
# install dart
#- sudo apt-get update
#- sudo apt-get install apt-transport-https
#- sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
#- sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
#- sudo apt-get update
#- sudo apt-get install dart
# switch to php7
- phpenv global 7.1
- php -v
# install perl module
#- cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
#- cpanm Test::Exception Test::More Log::Any LWP::UserAgent JSON URI:Query Module::Runtime DateTime Module::Find Moose::Role
# comment out below as installation failed in travis
# Add rebar3 build tool and recent Erlang/OTP for Erlang petstore server tests.
# - Travis CI does not support rebar3 [yet](https://github.com/travis-ci/travis-ci/issues/6506#issuecomment-275189490).
@@ -60,12 +97,24 @@ before_install:
- cat /etc/hosts
# show java version
- java -version
- if [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
openssl aes-256-cbc -K $encrypted_6e2c8bba47c6_key -iv $encrypted_6e2c8bba47c6_iv -in sec.gpg.enc -out sec.gpg -d ;
gpg --keyserver keyserver.ubuntu.com --recv-key $SIGNING_KEY ;
gpg --check-trustdb ;
fi;
- pushd .; cd website; npm install; popd
install:
# Add Godeps dependencies to GOPATH and PATH
- eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.4 bash)"
- export GOPATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace"
- export PATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace/bin:$PATH"
#- eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.4 bash)"
#- export GOPATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace"
- export PATH="${TRAVIS_BUILD_DIR}/Godeps/_workspace/bin:$HOME/.cargo/bin:$PATH:/usr/lib/dart/bin"
#- go version
- gcc -v
- echo $CC
- echo $CXX
#- pub version
#- dart --version
script:
# fail fast
@@ -77,20 +126,42 @@ script:
# fail if generators contain tab '\t'
- /bin/bash ./bin/utils/detect_tab_in_java_class.sh
# run integration tests defined in maven pom.xml
- mvn clean install
- mvn -q --batch-mode verify -Psamples
# Below has been moved to CircleCI
# docker: build generator image and push to Docker Hub
#- if [ $DOCKER_HUB_USERNAME ]; then docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD && docker build -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/swagger-generator && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_GENERATOR_IMAGE_NAME; fi; fi
- ./run-in-docker.sh mvn --quiet --batch-mode clean install
- mvn --quiet --batch-mode verify -Psamples
after_success:
# push to maven repo
- if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
if [ "$TRAVIS_BRANCH" = "master" ]; then
mvn clean deploy -DskipTests=true -B -U -P release --settings CI/settings.xml;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
pushd .;
cd modules/openapi-generator-gradle-plugin;
./gradlew -Psigning.keyId="$SIGNING_KEY" -Psigning.password="$SIGNING_PASSPHRASE" -Psigning.secretKeyRingFile="${TRAVIS_BUILD_DIR}/sec.gpg" -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" uploadArchives --no-daemon;
echo "Finished ./gradlew uploadArchives";
popd;
elif ([[ "$TRAVIS_BRANCH" =~ ^[0-9]+\.[0-9]+\.x$ ]]) ; then
mvn clean deploy --settings CI/settings.xml;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
pushd .;
cd modules/openapi-generator-gradle-plugin;
./gradlew -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" uploadArchives --no-daemon;
echo "Finished ./gradlew uploadArchives";
popd;
fi;
fi;
## docker: build and push openapi-generator-online to DockerHub
- if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && docker build -t $DOCKER_GENERATOR_IMAGE_NAME ./modules/openapi-generator-online && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_GENERATOR_IMAGE_NAME:latest $DOCKER_GENERATOR_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_GENERATOR_IMAGE_NAME && echo "Pushed to $DOCKER_GENERATOR_IMAGE_NAME"; fi; fi
## docker: build cli image and push to Docker Hub
#- if [ $DOCKER_HUB_USERNAME ]; then docker login --email=$DOCKER_HUB_EMAIL --username=$DOCKER_HUB_USERNAME --password=$DOCKER_HUB_PASSWORD && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/swagger-codegen-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME; fi; fi
#after_success:
# # push a snapshot version to maven repo
# - if [ $SONATYPE_USERNAME ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_BRANCH" = "master" ]; then
# mvn clean deploy --settings .travis/settings.xml;
# echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
# fi;
- if [ $DOCKER_HUB_USERNAME ]; then echo "$DOCKER_HUB_PASSWORD" | docker login --username=$DOCKER_HUB_USERNAME --password-stdin && cp docker-entrypoint.sh ./modules/openapi-generator-cli && docker build -t $DOCKER_CODEGEN_CLI_IMAGE_NAME ./modules/openapi-generator-cli && if [ ! -z "$TRAVIS_TAG" ]; then docker tag $DOCKER_CODEGEN_CLI_IMAGE_NAME:latest $DOCKER_CODEGEN_CLI_IMAGE_NAME:$TRAVIS_TAG; fi && if [ ! -z "$TRAVIS_TAG" ] || [ "$TRAVIS_BRANCH" = "master" ]; then docker push $DOCKER_CODEGEN_CLI_IMAGE_NAME && echo "Pushed to $DOCKER_CODEGEN_CLI_IMAGE_NAME"; fi; fi
## publish latest website, variables below are secure environment variables which are unavailable to PRs from forks.
- if [ "$TRAVIS_BRANCH" = "master" ] && [ -z $TRAVIS_TAG ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
cd website;
git config --global user.name "${GH_NAME}";
git config --global user.email "${GH_EMAIL}";
echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc;
npm install;
GIT_USER="${GH_NAME}" npm run-script publish-gh-pages;
fi;
env:
- DOCKER_GENERATOR_IMAGE_NAME=swaggerapi/swagger-generator DOCKER_CODEGEN_CLI_IMAGE_NAME=swaggerapi/swagger-codegen-cli
- DOCKER_GENERATOR_IMAGE_NAME=openapitools/openapi-generator-online DOCKER_CODEGEN_CLI_IMAGE_NAME=openapitools/openapi-generator-cli NODE_ENV=test CC=gcc-5 CXX=g++-5
-18
View File
@@ -1,18 +0,0 @@
<settings>
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
+67
View File
@@ -0,0 +1,67 @@
sudo: required
language: objective-c
osx_image: xcode8.1
cache:
directories:
- $HOME/.m2
- $HOME/.ivy2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.stack
- $HOME/samples/client/petstore/php/OpenAPIToolsClient-php/vendor
- $HOME/samples/client/petstore/ruby/venodr/bundle
- $HOME/samples/client/petstore/python/.venv/
- $HOME/samples/client/petstore/typescript-node/npm/node_modules
- $HOME/samples/client/petstore/typescript-node/npm/typings/
- $HOME/samples/client/petstore/typescript-fetch/tests/default/node_modules
- $HOME/samples/client/petstore/typescript-fetch/tests/default/typings
- $HOME/samples/client/petstore/typescript-fetch/builds/default/node_modules
- $HOME/samples/client/petstore/typescript-fetch/builds/default/typings
- $HOME/samples/client/petstore/typescript-fetch/builds/es6-target/node_modules
- $HOME/samples/client/petstore/typescript-fetch/builds/es6-target/typings
- $HOME/samples/client/petstore/typescript-fetch/builds/with-npm-version/node_modules
- $HOME/samples/client/petstore/typescript-fetch/npm/with-npm-version/typings
- $HOME/samples/client/petstore/typescript-angularjs/node_modules
- $HOME/samples/client/petstore/typescript-angularjs/typings
- $HOME/.cocoapods/repos/master
timeout: 1000
# comment out the host table change to use the public petstore server
addons:
hosts:
- petstore.swagger.io
before_install:
- export SW=`pwd`
- rvm list
- rvm use 2.3.3
- gem environment
- gem install bundler -N --no-ri --no-rdoc
- gem install cocoapods -v 1.2.1 -N --no-ri --no-rdoc
- gem install xcpretty -N --no-ri --no-rdoc
- pod --version
# comment out below to avoid errors
#- pod repo update
- pod setup --silent > /dev/null
- mkdir -p ~/.local/bin
- export PATH=$HOME/.local/bin:$PATH
# start local petstore server
- git clone -b docker --single-branch https://github.com/wing328/swagger-samples
- cd swagger-samples/java/java-jersey-jaxrs
- sudo mvn jetty:run &
- cd $SW
# show host table to confirm petstore.swagger.io is mapped to localhost
- cat /etc/hosts
# show java version
- java -version
# show brew version
- brew --version
# show xcpretty version
- xcpretty -v
# show go version
- go version
script:
# run integration tests defined in maven pom.xml
- mvn -q --batch-mode verify -Psamples
+29
View File
@@ -0,0 +1,29 @@
dist: trusty
sudo: required
language: java
addons:
apt:
packages:
- openjdk-6-jdk
jdk: openjdk6
cache:
directories:
- $HOME/.m2
- $HOME/.ivy2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
install:
- jdk_switcher use openjdk6
- java -version
- curl -s "https://get.sdkman.io" | bash
- source "$HOME/.sdkman/bin/sdkman-init.sh"
- sdk version
- sdk install gradle 2.9
- sdk list gradle
- sdk version
- gradle --version
script:
- cd samples/client/petstore/java/jersey2-java6 && gradle test
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
#
# A bash script to run CircleCI node/test in parallel
#
NODE_INDEX=${CIRCLE_NODE_INDEX:-0}
if [ "$NODE_INDEX" = "1" ]; then
echo "Running node $NODE_INDEX to test 'samples.circleci' defined in pom.xml ..."
#cp CI/pom.xml.circleci pom.xml
java -version
mvn --quiet verify -Psamples.circleci
elif [ "$NODE_INDEX" = "2" ]; then
echo "Running node $NODE_INDEX to test ensure-up-to-date"
java -version
#export GO_POST_PROCESS_FILE="/usr/local/bin/gofmt -w"
# not formatting the code as different go versions may format the code a bit different
./bin/utils/ensure-up-to-date
else
echo "Running node $NODE_INDEX to test 'samples.circleci.jdk7' defined in pom.xml ..."
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
java -version
#cp CI/pom.xml.circleci.java7 pom.xml
mvn --quiet verify -Psamples.circleci.jdk7
fi
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{19F1DEBC-DE5E-4517-8062-F000CD499087}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Org.OpenAPITools.Test</RootNamespace>
<AssemblyName>Org.OpenAPITools.Test</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml" />
<Reference Include="Newtonsoft.Json">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="JsonSubTypes">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\JsonSubTypes.1.5.1\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\JsonSubTypes.1.5.1\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\JsonSubTypes.1.5.1\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\JsonSubTypes.1.5.1\lib\net45\JsonSubTypes.dll</HintPath>
</Reference>
<Reference Include="RestSharp">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\RestSharp.106.5.4\lib\net452\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\RestSharp.106.5.4\lib\net452\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\RestSharp.106.5.4\lib\net452\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\RestSharp.106.5.4\lib\net452\RestSharp.dll</HintPath>
</Reference>
<Reference Include="nunit.framework">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MsBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\Org.OpenAPITools\Org.OpenAPITools.csproj">
<Project>{321C8C3F-0156-40C1-AE42-D59761FB9B6C}</Project>
<Name>Org.OpenAPITools</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="linux-logo.png" />
</ItemGroup>
</Project>
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
OpenAPI spec version: 1.0.0
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{19F1DEBC-DE5E-4517-8062-F000CD499087}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Org.OpenAPITools.Test</RootNamespace>
<AssemblyName>Org.OpenAPITools.Test</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml" />
<Reference Include="Newtonsoft.Json">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="JsonSubTypes">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\JsonSubTypes.1.2.0\lib\net45\JsonSubTypes.dll</HintPath>
</Reference>
<Reference Include="RestSharp">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\RestSharp.105.1.0\lib\net45\RestSharp.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\RestSharp.105.1.0\lib\net45\RestSharp.dll</HintPath>
</Reference>
<Reference Include="nunit.framework">
<HintPath Condition="Exists('$(SolutionDir)\packages')">$(SolutionDir)\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\packages')">..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\..\packages')">..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<HintPath Condition="Exists('..\..\vendor')">..\..\vendor\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="**\*.cs" Exclude="obj\**" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MsBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\Org.OpenAPITools\Org.OpenAPITools.csproj">
<Project>{321C8C3F-0156-40C1-AE42-D59761FB9B6C}</Project>
<Name>Org.OpenAPITools</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="linux-logo.png" />
</ItemGroup>
</Project>
@@ -0,0 +1,122 @@
apply plugin: 'idea'
apply plugin: 'eclipse'
group = 'org.openapitools'
version = '1.0.0'
buildscript {
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.+'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
}
if(hasProperty('target') && target == 'android') {
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
// Rename the aar correctly
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.aar')) {
def fileName = "${project.name}-${variant.baseName}-${version}.aar"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
dependencies {
provided 'javax.annotation:jsr250-api:1.0'
}
}
afterEvaluate {
android.libraryVariants.all { variant ->
def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
task.description = "Create jar artifact for ${variant.name}"
task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDir
task.destinationDir = project.file("${project.buildDir}/outputs/jar")
task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
artifacts.add('archives', task);
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
artifacts {
archives sourcesJar
}
} else {
apply plugin: 'java'
apply plugin: 'maven'
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6
install {
repositories.mavenInstaller {
pom.artifactId = 'petstore-jersey2-java6'
}
}
task execute(type:JavaExec) {
main = System.getProperty('mainClass')
classpath = sourceSets.main.runtimeClasspath
}
}
ext {
swagger_annotations_version = "1.5.20"
jackson_version = "2.9.6"
jersey_version = "2.6"
commons_io_version=2.5
commons_lang3_version=3.6
junit_version = "4.12"
threetenbp_version = "2.6.4"
}
dependencies {
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile "org.glassfish.jersey.core:jersey-client:$jersey_version"
compile "org.glassfish.jersey.media:jersey-media-multipart:$jersey_version"
compile "org.glassfish.jersey.media:jersey-media-json-jackson:$jersey_version"
compile "com.fasterxml.jackson.core:jackson-core:$jackson_version"
compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
compile "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
compile "commons-io:commons-io:$commons_io_version"
compile "org.apache.commons:commons-lang3:$commons_lang3_version"
compile "com.github.joschi.jackson:jackson-datatype-threetenbp:$threetenbp_version"
compile "com.brsanthu:migbase64:2.2"
testCompile "junit:junit:$junit_version"
}
@@ -0,0 +1,15 @@
package org.openapitools.client;
import org.junit.*;
import static org.junit.Assert.*;
public class ConfigurationTest {
@Test
public void testDefaultApiClient() {
ApiClient apiClient = Configuration.getDefaultApiClient();
assertNotNull(apiClient);
assertEquals("http://petstore.swagger.io:80/v2", apiClient.getBasePath());
assertFalse(apiClient.isDebugging());
}
}
@@ -0,0 +1,33 @@
package org.openapitools.client;
import org.junit.*;
import static org.junit.Assert.*;
public class StringUtilTest {
@Test
public void testContainsIgnoreCase() {
assertTrue(StringUtil.containsIgnoreCase(new String[]{"abc"}, "abc"));
assertTrue(StringUtil.containsIgnoreCase(new String[]{"abc"}, "ABC"));
assertTrue(StringUtil.containsIgnoreCase(new String[]{"ABC"}, "abc"));
assertTrue(StringUtil.containsIgnoreCase(new String[]{null, "abc"}, "ABC"));
assertTrue(StringUtil.containsIgnoreCase(new String[]{null, "abc"}, null));
assertFalse(StringUtil.containsIgnoreCase(new String[]{"abc"}, "def"));
assertFalse(StringUtil.containsIgnoreCase(new String[]{}, "ABC"));
assertFalse(StringUtil.containsIgnoreCase(new String[]{}, null));
}
@Test
public void testJoin() {
String[] array = {"aa", "bb", "cc"};
assertEquals("aa,bb,cc", StringUtil.join(array, ","));
assertEquals("aa, bb, cc", StringUtil.join(array, ", "));
assertEquals("aabbcc", StringUtil.join(array, ""));
assertEquals("aa bb cc", StringUtil.join(array, " "));
assertEquals("aa\nbb\ncc", StringUtil.join(array, "\n"));
assertEquals("", StringUtil.join(new String[]{}, ","));
assertEquals("abc", StringUtil.join(new String[]{"abc"}, ","));
}
}
@@ -0,0 +1,292 @@
package org.openapitools.client;
import org.openapitools.client.auth.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiClientTest {
ApiClient apiClient = null;
@Before
public void setup() {
apiClient = new ApiClient();
}
@Test
public void testParseAndFormatDate() {
// default date format
String dateStr = "2015-11-07T03:49:09.356Z";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T05:49:09.356+02:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
// custom date format: without milli-seconds, custom time zone
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
apiClient.setDateFormat(format);
dateStr = "2015-11-07T13:49:09+10:00";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T00:49:09-03:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T13:49:09+10:00")));
}
@Test
public void testIsJsonMime() {
assertFalse(apiClient.isJsonMime(null));
assertFalse(apiClient.isJsonMime(""));
assertFalse(apiClient.isJsonMime("text/plain"));
assertFalse(apiClient.isJsonMime("application/xml"));
assertFalse(apiClient.isJsonMime("application/jsonp"));
assertFalse(apiClient.isJsonMime("example/json"));
assertFalse(apiClient.isJsonMime("example/foo+bar+jsonx"));
assertFalse(apiClient.isJsonMime("example/foo+bar+xjson"));
assertTrue(apiClient.isJsonMime("application/json"));
assertTrue(apiClient.isJsonMime("application/json; charset=UTF8"));
assertTrue(apiClient.isJsonMime("APPLICATION/JSON"));
assertTrue(apiClient.isJsonMime("application/problem+json"));
assertTrue(apiClient.isJsonMime("APPLICATION/PROBLEM+JSON"));
assertTrue(apiClient.isJsonMime("application/json\t"));
assertTrue(apiClient.isJsonMime("example/foo+bar+json"));
assertTrue(apiClient.isJsonMime("example/foo+json;x;y"));
assertTrue(apiClient.isJsonMime("example/foo+json\t;"));
assertTrue(apiClient.isJsonMime("Example/fOO+JSON"));
}
@Test
public void testSelectHeaderAccept() {
String[] accepts = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"APPLICATION/XML", "APPLICATION/JSON"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain,application/xml", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{};
assertNull(apiClient.selectHeaderAccept(accepts));
}
@Test
public void testSelectHeaderContentType() {
String[] contentTypes = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"APPLICATION/JSON", "APPLICATION/XML"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
}
@Test
public void testGetAuthentications() {
Map<String, Authentication> auths = apiClient.getAuthentications();
Authentication auth = auths.get("api_key");
assertNotNull(auth);
assertTrue(auth instanceof ApiKeyAuth);
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) auth;
assertEquals("header", apiKeyAuth.getLocation());
assertEquals("api_key", apiKeyAuth.getParamName());
auth = auths.get("petstore_auth");
assertTrue(auth instanceof OAuth);
assertSame(auth, apiClient.getAuthentication("petstore_auth"));
assertNull(auths.get("unknown"));
try {
auths.put("my_auth", new HttpBasicAuth());
fail("the authentications returned should not be modifiable");
} catch (UnsupportedOperationException e) {
}
}
@Ignore("There is no more basic auth in petstore security definitions")
@Test
public void testSetUsernameAndPassword() {
HttpBasicAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof HttpBasicAuth) {
auth = (HttpBasicAuth) _auth;
break;
}
}
auth.setUsername(null);
auth.setPassword(null);
apiClient.setUsername("my-username");
apiClient.setPassword("my-password");
assertEquals("my-username", auth.getUsername());
assertEquals("my-password", auth.getPassword());
// reset values
auth.setUsername(null);
auth.setPassword(null);
}
@Test
public void testSetApiKeyAndPrefix() {
ApiKeyAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof ApiKeyAuth) {
auth = (ApiKeyAuth) _auth;
break;
}
}
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
apiClient.setApiKey("my-api-key");
apiClient.setApiKeyPrefix("Token");
assertEquals("my-api-key", auth.getApiKey());
assertEquals("Token", auth.getApiKeyPrefix());
// reset values
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
}
@Test
public void testParameterToPairWhenNameIsInvalid() throws Exception {
List<Pair> pairs_a = apiClient.parameterToPair(null, new Integer(1));
List<Pair> pairs_b = apiClient.parameterToPair("", new Integer(1));
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToPairWhenValueIsNull() throws Exception {
List<Pair> pairs = apiClient.parameterToPair("param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToPairWhenValueIsEmptyString() throws Exception {
// single empty string
List<Pair> pairs = apiClient.parameterToPair("param-a", " ");
assertEquals(1, pairs.size());
}
@Test
public void testParameterToPairWhenValueIsNotCollection() throws Exception {
String name = "param-a";
Integer value = 1;
List<Pair> pairs = apiClient.parameterToPair(name, value);
assertEquals(1, pairs.size());
assertEquals(value, Integer.valueOf(pairs.get(0).getValue()));
}
@Test
public void testParameterToPairWhenValueIsCollection() throws Exception {
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
List<Pair> pairs = apiClient.parameterToPair("param-a", values);
assertEquals(0, pairs.size());
}
@Test
public void testParameterToPairsWhenNameIsInvalid() throws Exception {
List<Integer> objects = new ArrayList<Integer>();
objects.add(new Integer(1));
List<Pair> pairs_a = apiClient.parameterToPairs("csv", null, objects);
List<Pair> pairs_b = apiClient.parameterToPairs("csv", "", objects);
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsNull() throws Exception {
List<Pair> pairs = apiClient.parameterToPairs("csv", "param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsEmptyStrings() throws Exception {
// list of empty strings
List<String> strs = new ArrayList<String>();
strs.add(" ");
strs.add(" ");
strs.add(" ");
List<Pair> concatStrings = apiClient.parameterToPairs("csv", "param-a", strs);
assertEquals(1, concatStrings.size());
assertFalse(concatStrings.get(0).getValue().isEmpty()); // should contain some delimiters
}
@Test
public void testParameterToPairsWhenValueIsCollection() throws Exception {
Map<String, String> collectionFormatMap = new HashMap<String, String>();
collectionFormatMap.put("csv", ",");
collectionFormatMap.put("tsv", "\t");
collectionFormatMap.put("ssv", " ");
collectionFormatMap.put("pipes", "|");
collectionFormatMap.put("", ","); // no format, must default to csv
collectionFormatMap.put("unknown", ","); // all other formats, must default to csv
String name = "param-a";
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
// check for multi separately
List<Pair> multiPairs = apiClient.parameterToPairs("multi", name, values);
assertEquals(values.size(), multiPairs.size());
for (int i = 0; i < values.size(); i++) {
assertEquals(apiClient.escapeString(apiClient.parameterToString(values.get(i))), multiPairs.get(i).getValue());
}
// all other formats
for (String collectionFormat : collectionFormatMap.keySet()) {
List<Pair> pairs = apiClient.parameterToPairs(collectionFormat, name, values);
assertEquals(1, pairs.size());
String delimiter = collectionFormatMap.get(collectionFormat);
if (!delimiter.equals(",")) {
// commas are not escaped because they are reserved characters in URIs
delimiter = apiClient.escapeString(delimiter);
}
String[] pairValueSplit = pairs.get(0).getValue().split(delimiter);
// must equal input values
assertEquals(values.size(), pairValueSplit.length);
for (int i = 0; i < values.size(); i++) {
assertEquals(apiClient.escapeString(apiClient.parameterToString(values.get(i))), pairValueSplit[i]);
}
}
}
}
@@ -0,0 +1,47 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiKeyAuthTest {
@Test
public void testApplyToParamsInQuery() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
auth.setApiKey("my-api-key");
auth.applyToParams(queryParams, headerParams);
assertEquals(1, queryParams.size());
for (Pair queryParam : queryParams) {
assertEquals("my-api-key", queryParam.getValue());
}
// no changes to header parameters
assertEquals(0, headerParams.size());
}
@Test
public void testApplyToParamsInHeaderWithPrefix() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
auth.setApiKey("my-api-token");
auth.setApiKeyPrefix("Token");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
assertEquals("Token my-api-token", headerParams.get("X-API-TOKEN"));
}
}
@@ -0,0 +1,52 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class HttpBasicAuthTest {
HttpBasicAuth auth = null;
@Before
public void setup() {
auth = new HttpBasicAuth();
}
@Test
public void testApplyToParams() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
auth.setUsername("my-username");
auth.setPassword("my-password");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
// the string below is base64-encoded result of "my-username:my-password" with the "Basic " prefix
String expected = "Basic bXktdXNlcm5hbWU6bXktcGFzc3dvcmQ=";
assertEquals(expected, headerParams.get("Authorization"));
// null username should be treated as empty string
auth.setUsername(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of ":my-password" with the "Basic " prefix
expected = "Basic Om15LXBhc3N3b3Jk";
assertEquals(expected, headerParams.get("Authorization"));
// null password should be treated as empty string
auth.setUsername("my-username");
auth.setPassword(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of "my-username:" with the "Basic " prefix
expected = "Basic bXktdXNlcm5hbWU6";
assertEquals(expected, headerParams.get("Authorization"));
}
}
@@ -0,0 +1,63 @@
package org.openapitools.client.model;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class EnumValueTest {
@Test
public void testEnumClass() {
assertEquals(EnumClass._ABC.toString(), "_abc");
assertEquals(EnumClass._EFG.toString(), "-efg");
assertEquals(EnumClass._XYZ_.toString(), "(xyz)");
}
@Test
public void testEnumTest() {
// test enum value
EnumTest enumTest = new EnumTest();
enumTest.setEnumString(EnumTest.EnumStringEnum.LOWER);
enumTest.setEnumInteger(EnumTest.EnumIntegerEnum.NUMBER_1);
enumTest.setEnumNumber(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1);
assertEquals(EnumTest.EnumStringEnum.UPPER.toString(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.UPPER.getValue(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.LOWER.toString(), "lower");
assertEquals(EnumTest.EnumStringEnum.LOWER.getValue(), "lower");
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_1.toString(), "1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_1.getValue() == 1);
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.toString(), "-1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.getValue() == -1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.toString(), "1.1");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.getValue() == 1.1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.toString(), "-1.2");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.getValue() == -1.2);
try {
// test serialization (object => json)
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
ObjectWriter ow = mapper.writer();
String json = ow.writeValueAsString(enumTest);
assertEquals(json, "{\"enum_string\":\"lower\",\"enum_string_required\":null,\"enum_integer\":1,\"enum_number\":1.1,\"outerEnum\":null}");
// test deserialization (json => object)
EnumTest fromString = mapper.readValue(json, EnumTest.class);
assertEquals(fromString.getEnumString().toString(), "lower");
assertEquals(fromString.getEnumInteger().toString(), "1");
assertEquals(fromString.getEnumNumber().toString(), "1.1");
} catch (Exception e) {
fail("Exception thrown during serialization/deserialzation of JSON: " + e.getMessage());
}
}
}
@@ -0,0 +1,45 @@
package org.openapitools.client;
import org.openapitools.client.model.Order;
import java.lang.Exception;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import org.junit.*;
import static org.junit.Assert.*;
public class JSONTest {
JSON json = null;
Order order = null;
@Before
public void setup() {
json = new JSON();
order = new Order();
}
@Test
public void testDefaultDate() throws Exception {
final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
final String dateStr = "2015-11-07T14:11:05.267Z";
order.setShipDate(dateFormat.parse(dateStr, OffsetDateTime::from));
String str = json.getContext(null).writeValueAsString(order);
Order o = json.getContext(null).readValue(str, Order.class);
assertEquals(dateStr, dateFormat.format(o.getShipDate()));
}
@Test
public void testCustomDate() throws Exception {
final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("Etc/GMT+2"));
final String dateStr = "2015-11-07T14:11:05-02:00";
order.setShipDate(dateFormat.parse(dateStr, OffsetDateTime::from));
String str = json.getContext(null).writeValueAsString(order);
Order o = json.getContext(null).readValue(str, Order.class);
assertEquals(dateStr, dateFormat.format(o.getShipDate()));
}
}
@@ -0,0 +1,250 @@
package org.openapitools.client;
import org.openapitools.client.auth.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiClientTest {
ApiClient apiClient = null;
@Before
public void setup() {
apiClient = new ApiClient();
}
@Test
public void testParseAndFormatDate() {
// default date format
String dateStr = "2015-11-07T03:49:09.356Z";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T05:49:09.356+02:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
// custom date format: without milli-seconds, custom time zone
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
apiClient.setDateFormat(format);
dateStr = "2015-11-07T13:49:09+10:00";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T00:49:09-03:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T13:49:09+10:00")));
}
@Test
public void testIsJsonMime() {
assertFalse(apiClient.isJsonMime(null));
assertFalse(apiClient.isJsonMime(""));
assertFalse(apiClient.isJsonMime("text/plain"));
assertFalse(apiClient.isJsonMime("application/xml"));
assertFalse(apiClient.isJsonMime("application/jsonp"));
assertFalse(apiClient.isJsonMime("example/json"));
assertFalse(apiClient.isJsonMime("example/foo+bar+jsonx"));
assertFalse(apiClient.isJsonMime("example/foo+bar+xjson"));
assertTrue(apiClient.isJsonMime("application/json"));
assertTrue(apiClient.isJsonMime("application/json; charset=UTF8"));
assertTrue(apiClient.isJsonMime("APPLICATION/JSON"));
assertTrue(apiClient.isJsonMime("application/problem+json"));
assertTrue(apiClient.isJsonMime("APPLICATION/PROBLEM+JSON"));
assertTrue(apiClient.isJsonMime("application/json\t"));
assertTrue(apiClient.isJsonMime("example/foo+bar+json"));
assertTrue(apiClient.isJsonMime("example/foo+json;x;y"));
assertTrue(apiClient.isJsonMime("example/foo+json\t;"));
assertTrue(apiClient.isJsonMime("Example/fOO+JSON"));
}
@Test
public void testSelectHeaderAccept() {
String[] accepts = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"APPLICATION/XML", "APPLICATION/JSON"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain,application/xml", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{};
assertNull(apiClient.selectHeaderAccept(accepts));
}
@Test
public void testSelectHeaderContentType() {
String[] contentTypes = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"APPLICATION/JSON", "APPLICATION/XML"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
}
@Test
public void testGetAuthentications() {
Map<String, Authentication> auths = apiClient.getAuthentications();
Authentication auth = auths.get("api_key");
assertNotNull(auth);
assertTrue(auth instanceof ApiKeyAuth);
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) auth;
assertEquals("header", apiKeyAuth.getLocation());
assertEquals("api_key", apiKeyAuth.getParamName());
auth = auths.get("petstore_auth");
assertTrue(auth instanceof OAuth);
assertSame(auth, apiClient.getAuthentication("petstore_auth"));
assertNull(auths.get("unknown"));
try {
auths.put("my_auth", new HttpBasicAuth());
fail("the authentications returned should not be modifiable");
} catch (UnsupportedOperationException e) {
}
}
@Ignore("There is no more basic auth in petstore security definitions")
@Test
public void testSetUsernameAndPassword() {
HttpBasicAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof HttpBasicAuth) {
auth = (HttpBasicAuth) _auth;
break;
}
}
auth.setUsername(null);
auth.setPassword(null);
apiClient.setUsername("my-username");
apiClient.setPassword("my-password");
assertEquals("my-username", auth.getUsername());
assertEquals("my-password", auth.getPassword());
// reset values
auth.setUsername(null);
auth.setPassword(null);
}
@Test
public void testSetApiKeyAndPrefix() {
ApiKeyAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof ApiKeyAuth) {
auth = (ApiKeyAuth) _auth;
break;
}
}
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
apiClient.setApiKey("my-api-key");
apiClient.setApiKeyPrefix("Token");
assertEquals("my-api-key", auth.getApiKey());
assertEquals("Token", auth.getApiKeyPrefix());
// reset values
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
}
@Test
public void testParameterToPairsWhenNameIsInvalid() throws Exception {
List<Pair> pairs_a = apiClient.parameterToPairs("csv", null, new Integer(1));
List<Pair> pairs_b = apiClient.parameterToPairs("csv", "", new Integer(1));
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsNull() throws Exception {
List<Pair> pairs = apiClient.parameterToPairs("csv", "param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsEmptyStrings() throws Exception {
// single empty string
List<Pair> pairs = apiClient.parameterToPairs("csv", "param-a", " ");
assertEquals(1, pairs.size());
// list of empty strings
List<String> strs = new ArrayList<String>();
strs.add(" ");
strs.add(" ");
strs.add(" ");
List<Pair> concatStrings = apiClient.parameterToPairs("csv", "param-a", strs);
assertEquals(1, concatStrings.size());
assertFalse(concatStrings.get(0).getValue().isEmpty()); // should contain some delimiters
}
@Test
public void testParameterToPairsWhenValueIsNotCollection() throws Exception {
String name = "param-a";
Integer value = 1;
List<Pair> pairs = apiClient.parameterToPairs("csv", name, value);
assertEquals(1, pairs.size());
assertEquals(value, Integer.valueOf(pairs.get(0).getValue()));
}
@Test
public void testParameterToPairsWhenValueIsCollection() throws Exception {
Map<String, String> collectionFormatMap = new HashMap<String, String>();
collectionFormatMap.put("csv", ",");
collectionFormatMap.put("tsv", "\t");
collectionFormatMap.put("ssv", " ");
collectionFormatMap.put("pipes", "\\|");
collectionFormatMap.put("", ","); // no format, must default to csv
collectionFormatMap.put("unknown", ","); // all other formats, must default to csv
String name = "param-a";
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
// check for multi separately
List<Pair> multiPairs = apiClient.parameterToPairs("multi", name, values);
assertEquals(values.size(), multiPairs.size());
// all other formats
for (String collectionFormat : collectionFormatMap.keySet()) {
List<Pair> pairs = apiClient.parameterToPairs(collectionFormat, name, values);
assertEquals(1, pairs.size());
String delimiter = collectionFormatMap.get(collectionFormat);
String[] pairValueSplit = pairs.get(0).getValue().split(delimiter);
// must equal input values
assertEquals(values.size(), pairValueSplit.length);
}
}
}
@@ -0,0 +1,58 @@
package org.openapitools.client;
import org.openapitools.client.model.Order;
import org.junit.Before;
import org.junit.Test;
import org.threeten.bp.OffsetDateTime;
import org.threeten.bp.ZoneId;
import org.threeten.bp.format.DateTimeFormatter;
import static org.junit.Assert.*;
public class JSONTest {
private JSON json = null;
private Order order = null;
@Before
public void setup() {
json = new ApiClient().getJSON();
order = new Order();
}
@Test
public void testDefaultDate() throws Exception {
final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
final String dateStr = "2015-11-07T14:11:05.267Z";
order.setShipDate(dateFormat.parse(dateStr, OffsetDateTime.FROM));
String str = json.getContext(null).writeValueAsString(order);
Order o = json.getContext(null).readValue(str, Order.class);
assertEquals(dateStr, dateFormat.format(o.getShipDate()));
}
@Test
public void testCustomDate() throws Exception {
final DateTimeFormatter dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("Etc/GMT+2"));
final String dateStr = "2015-11-07T14:11:05-02:00";
order.setShipDate(dateFormat.parse(dateStr, OffsetDateTime.FROM));
String str = json.getContext(null).writeValueAsString(order);
Order o = json.getContext(null).readValue(str, Order.class);
assertEquals(dateStr, dateFormat.format(o.getShipDate()));
}
@Test
public void testSqlDateSerialization() throws Exception {
String str = json.getContext(null).writeValueAsString(new java.sql.Date(10));
assertEquals("\"1970-01-01\"", str);
}
@Test
public void testSqlDateDeserialization() throws Exception {
final String str = "1970-01-01";
java.sql.Date date = json.getContext(null).readValue("\"" + str + "\"", java.sql.Date.class);
assertEquals(date.toString(), str);
}
}
@@ -0,0 +1,47 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiKeyAuthTest {
@Test
public void testApplyToParamsInQuery() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
auth.setApiKey("my-api-key");
auth.applyToParams(queryParams, headerParams);
assertEquals(1, queryParams.size());
for (Pair queryParam : queryParams) {
assertEquals("my-api-key", queryParam.getValue());
}
// no changes to header parameters
assertEquals(0, headerParams.size());
}
@Test
public void testApplyToParamsInHeaderWithPrefix() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
auth.setApiKey("my-api-token");
auth.setApiKeyPrefix("Token");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
assertEquals("Token my-api-token", headerParams.get("X-API-TOKEN"));
}
}
@@ -0,0 +1,52 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class HttpBasicAuthTest {
HttpBasicAuth auth = null;
@Before
public void setup() {
auth = new HttpBasicAuth();
}
@Test
public void testApplyToParams() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
auth.setUsername("my-username");
auth.setPassword("my-password");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
// the string below is base64-encoded result of "my-username:my-password" with the "Basic " prefix
String expected = "Basic bXktdXNlcm5hbWU6bXktcGFzc3dvcmQ=";
assertEquals(expected, headerParams.get("Authorization"));
// null username should be treated as empty string
auth.setUsername(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of ":my-password" with the "Basic " prefix
expected = "Basic Om15LXBhc3N3b3Jk";
assertEquals(expected, headerParams.get("Authorization"));
// null password should be treated as empty string
auth.setUsername("my-username");
auth.setPassword(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of "my-username:" with the "Basic " prefix
expected = "Basic bXktdXNlcm5hbWU6";
assertEquals(expected, headerParams.get("Authorization"));
}
}
@@ -0,0 +1,63 @@
package org.openapitools.client.model;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class EnumValueTest {
@Test
public void testEnumClass() {
assertEquals(EnumClass._ABC.toString(), "_abc");
assertEquals(EnumClass._EFG.toString(), "-efg");
assertEquals(EnumClass._XYZ_.toString(), "(xyz)");
}
@Test
public void testEnumTest() {
// test enum value
EnumTest enumTest = new EnumTest();
enumTest.setEnumString(EnumTest.EnumStringEnum.LOWER);
enumTest.setEnumInteger(EnumTest.EnumIntegerEnum.NUMBER_1);
enumTest.setEnumNumber(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1);
assertEquals(EnumTest.EnumStringEnum.UPPER.toString(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.UPPER.getValue(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.LOWER.toString(), "lower");
assertEquals(EnumTest.EnumStringEnum.LOWER.getValue(), "lower");
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_1.toString(), "1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_1.getValue() == 1);
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.toString(), "-1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.getValue() == -1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.toString(), "1.1");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.getValue() == 1.1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.toString(), "-1.2");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.getValue() == -1.2);
try {
// test serialization (object => json)
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
ObjectWriter ow = mapper.writer();
String json = ow.writeValueAsString(enumTest);
assertEquals(json, "{\"enum_string\":\"lower\",\"enum_string_required\":null,\"enum_integer\":1,\"enum_number\":1.1,\"outerEnum\":null}");
// test deserialization (json => object)
EnumTest fromString = mapper.readValue(json, EnumTest.class);
assertEquals(fromString.getEnumString().toString(), "lower");
assertEquals(fromString.getEnumInteger().toString(), "1");
assertEquals(fromString.getEnumNumber().toString(), "1.1");
} catch (Exception e) {
fail("Exception thrown during serialization/deserialzation of JSON: " + e.getMessage());
}
}
}
@@ -0,0 +1,330 @@
package org.openapitools.client;
import org.openapitools.client.auth.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.TimeZone;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiClientTest {
ApiClient apiClient;
JSON json;
@Before
public void setup() {
apiClient = new ApiClient();
json = apiClient.getJSON();
}
@Test
public void testIsJsonMime() {
assertFalse(apiClient.isJsonMime(null));
assertFalse(apiClient.isJsonMime(""));
assertFalse(apiClient.isJsonMime("text/plain"));
assertFalse(apiClient.isJsonMime("application/xml"));
assertFalse(apiClient.isJsonMime("application/jsonp"));
assertFalse(apiClient.isJsonMime("example/json"));
assertFalse(apiClient.isJsonMime("example/foo+bar+jsonx"));
assertFalse(apiClient.isJsonMime("example/foo+bar+xjson"));
assertTrue(apiClient.isJsonMime("application/json"));
assertTrue(apiClient.isJsonMime("application/json; charset=UTF8"));
assertTrue(apiClient.isJsonMime("APPLICATION/JSON"));
assertTrue(apiClient.isJsonMime("application/problem+json"));
assertTrue(apiClient.isJsonMime("APPLICATION/PROBLEM+JSON"));
assertTrue(apiClient.isJsonMime("application/json\t"));
assertTrue(apiClient.isJsonMime("example/foo+bar+json"));
assertTrue(apiClient.isJsonMime("example/foo+json;x;y"));
assertTrue(apiClient.isJsonMime("example/foo+json\t;"));
assertTrue(apiClient.isJsonMime("Example/fOO+JSON"));
assertTrue(apiClient.isJsonMime("application/json-patch+json"));
}
@Test
public void testSelectHeaderAccept() {
String[] accepts = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"APPLICATION/XML", "APPLICATION/JSON"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain,application/xml", apiClient.selectHeaderAccept(accepts));
accepts = new String[]{};
assertNull(apiClient.selectHeaderAccept(accepts));
}
@Test
public void testSelectHeaderContentType() {
String[] contentTypes = {"application/json", "application/xml"};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"APPLICATION/JSON", "APPLICATION/XML"};
assertEquals("APPLICATION/JSON", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals("application/json; charset=UTF8", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"text/plain", "application/xml"};
assertEquals("text/plain", apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{};
assertEquals("application/json", apiClient.selectHeaderContentType(contentTypes));
}
@Test
public void testGetAuthentications() {
Map<String, Authentication> auths = apiClient.getAuthentications();
Authentication auth = auths.get("api_key");
assertNotNull(auth);
assertTrue(auth instanceof ApiKeyAuth);
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) auth;
assertEquals("header", apiKeyAuth.getLocation());
assertEquals("api_key", apiKeyAuth.getParamName());
auth = auths.get("petstore_auth");
assertTrue(auth instanceof OAuth);
assertSame(auth, apiClient.getAuthentication("petstore_auth"));
assertNull(auths.get("unknown"));
try {
auths.put("my_auth", new HttpBasicAuth());
fail("the authentications returned should not be modifiable");
} catch (UnsupportedOperationException e) {
}
}
/*
@Test
public void testSetUsernameAndPassword() {
HttpBasicAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof HttpBasicAuth) {
auth = (HttpBasicAuth) _auth;
break;
}
}
auth.setUsername(null);
auth.setPassword(null);
apiClient.setUsername("my-username");
apiClient.setPassword("my-password");
assertEquals("my-username", auth.getUsername());
assertEquals("my-password", auth.getPassword());
// reset values
auth.setUsername(null);
auth.setPassword(null);
}
*/
@Test
public void testSetApiKeyAndPrefix() {
ApiKeyAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof ApiKeyAuth) {
auth = (ApiKeyAuth) _auth;
break;
}
}
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
apiClient.setApiKey("my-api-key");
apiClient.setApiKeyPrefix("Token");
assertEquals("my-api-key", auth.getApiKey());
assertEquals("Token", auth.getApiKeyPrefix());
// reset values
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
}
@Test
public void testGetAndSetConnectTimeout() {
// connect timeout defaults to 10 seconds
assertEquals(10000, apiClient.getConnectTimeout());
assertEquals(10000, apiClient.getHttpClient().getConnectTimeout());
apiClient.setConnectTimeout(0);
assertEquals(0, apiClient.getConnectTimeout());
assertEquals(0, apiClient.getHttpClient().getConnectTimeout());
apiClient.setConnectTimeout(10000);
}
@Test
public void testGetAndSetReadTimeout() {
// read timeout defaults to 10 seconds
assertEquals(10000, apiClient.getReadTimeout());
assertEquals(10000, apiClient.getHttpClient().getReadTimeout());
apiClient.setReadTimeout(0);
assertEquals(0, apiClient.getReadTimeout());
assertEquals(0, apiClient.getHttpClient().getReadTimeout());
apiClient.setReadTimeout(10000);
}
@Test
public void testGetAndSetWriteTimeout() {
// write timeout defaults to 10 seconds
assertEquals(10000, apiClient.getWriteTimeout());
assertEquals(10000, apiClient.getHttpClient().getWriteTimeout());
apiClient.setWriteTimeout(0);
assertEquals(0, apiClient.getWriteTimeout());
assertEquals(0, apiClient.getHttpClient().getWriteTimeout());
apiClient.setWriteTimeout(10000);
}
@Test
public void testParameterToPairWhenNameIsInvalid() throws Exception {
List<Pair> pairs_a = apiClient.parameterToPair(null, new Integer(1));
List<Pair> pairs_b = apiClient.parameterToPair("", new Integer(1));
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToPairWhenValueIsNull() throws Exception {
List<Pair> pairs = apiClient.parameterToPair("param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToPairWhenValueIsEmptyString() throws Exception {
// single empty string
List<Pair> pairs = apiClient.parameterToPair("param-a", " ");
assertEquals(1, pairs.size());
}
@Test
public void testParameterToPairWhenValueIsNotCollection() throws Exception {
String name = "param-a";
Integer value = 1;
List<Pair> pairs = apiClient.parameterToPair(name, value);
assertEquals(1, pairs.size());
assertEquals(value, Integer.valueOf(pairs.get(0).getValue()));
}
@Test
public void testParameterToPairWhenValueIsCollection() throws Exception {
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
List<Pair> pairs = apiClient.parameterToPair("param-a", values);
assertEquals(0, pairs.size());
}
@Test
public void testParameterToPairsWhenNameIsInvalid() throws Exception {
List<Integer> objects = new ArrayList<Integer>();
objects.add(new Integer(1));
List<Pair> pairs_a = apiClient.parameterToPairs("csv", null, objects);
List<Pair> pairs_b = apiClient.parameterToPairs("csv", "", objects);
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsNull() throws Exception {
List<Pair> pairs = apiClient.parameterToPairs("csv", "param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToPairsWhenValueIsEmptyStrings() throws Exception {
// list of empty strings
List<String> strs = new ArrayList<String>();
strs.add(" ");
strs.add(" ");
strs.add(" ");
List<Pair> concatStrings = apiClient.parameterToPairs("csv", "param-a", strs);
assertEquals(1, concatStrings.size());
assertFalse(concatStrings.get(0).getValue().isEmpty()); // should contain some delimiters
}
@Test
public void testParameterToPairsWhenValueIsCollection() throws Exception {
Map<String, String> collectionFormatMap = new HashMap<String, String>();
collectionFormatMap.put("csv", ",");
collectionFormatMap.put("tsv", "\t");
collectionFormatMap.put("ssv", " ");
collectionFormatMap.put("pipes", "|");
collectionFormatMap.put("", ","); // no format, must default to csv
collectionFormatMap.put("unknown", ","); // all other formats, must default to csv
String name = "param-a";
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
// check for multi separately
List<Pair> multiPairs = apiClient.parameterToPairs("multi", name, values);
assertEquals(values.size(), multiPairs.size());
for (int i = 0; i < values.size(); i++) {
assertEquals(apiClient.escapeString(apiClient.parameterToString(values.get(i))), multiPairs.get(i).getValue());
}
// all other formats
for (String collectionFormat : collectionFormatMap.keySet()) {
List<Pair> pairs = apiClient.parameterToPairs(collectionFormat, name, values);
assertEquals(1, pairs.size());
String delimiter = collectionFormatMap.get(collectionFormat);
if (!delimiter.equals(",")) {
// commas are not escaped because they are reserved characters in URIs
delimiter = apiClient.escapeString(delimiter);
}
String[] pairValueSplit = pairs.get(0).getValue().split(delimiter);
// must equal input values
assertEquals(values.size(), pairValueSplit.length);
for (int i = 0; i < values.size(); i++) {
assertEquals(apiClient.escapeString(apiClient.parameterToString(values.get(i))), pairValueSplit[i]);
}
}
}
@Test
public void testSanitizeFilename() {
assertEquals("sun", apiClient.sanitizeFilename("sun"));
assertEquals("sun.gif", apiClient.sanitizeFilename("sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("../sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("/var/tmp/sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("./sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("..\\sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("\\var\\tmp\\sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename("c:\\var\\tmp\\sun.gif"));
assertEquals("sun.gif", apiClient.sanitizeFilename(".\\sun.gif"));
}
}
@@ -0,0 +1,202 @@
package org.openapitools.client;
import com.google.gson.reflect.TypeToken;
import org.openapitools.client.model.Order;
import java.lang.Exception;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import okio.ByteString;
import org.junit.*;
import org.threeten.bp.LocalDate;
import org.threeten.bp.OffsetDateTime;
import org.threeten.bp.ZoneId;
import org.threeten.bp.ZoneOffset;
import org.threeten.bp.format.DateTimeFormatter;
import static org.junit.Assert.*;
public class JSONTest {
private ApiClient apiClient = null;
private JSON json = null;
private Order order = null;
@Before
public void setup() {
apiClient = new ApiClient();
json = apiClient.getJSON();
order = new Order();
}
@Test
public void testSqlDateTypeAdapter() {
final String str = "\"2015-11-07\"";
final java.sql.Date date = java.sql.Date.valueOf("2015-11-07");
assertEquals(str, json.serialize(date));
assertEquals(json.deserialize(str, java.sql.Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356" + getCurrentTimezoneOffset() + "\"", java.sql.Date.class).toString(), date.toString());
// custom date format: without day
DateFormat format = new SimpleDateFormat("yyyy-MM", Locale.ROOT);
apiClient.setSqlDateFormat(format);
String dateStr = "\"2015-11\"";
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11-07T03:49:09Z\"", java.sql.Date.class)));
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11\"", java.sql.Date.class)));
}
@Test
public void testDateTypeAdapter() {
Calendar cal = new GregorianCalendar(2015, 10, 7, 3, 49, 9);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
assertEquals(json.deserialize("\"2015-11-07T05:49:09+02\"", Date.class), cal.getTime());
cal.set(Calendar.MILLISECOND, 300);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.3Z\"", Date.class), cal.getTime());
cal.set(Calendar.MILLISECOND, 356);
Date date = cal.getTime();
final String utcDate = "\"2015-11-07T03:49:09.356Z\"";
assertEquals(json.deserialize(utcDate, Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356+00:00\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T05:49:09.356+02:00\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T02:49:09.356-01:00\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356Z\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356+00\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T02:49:09.356-0100\"", Date.class), date);
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356456789Z\"", Date.class), date);
assertEquals(utcDate, json.serialize(date));
// custom datetime format: without milli-seconds, custom time zone
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
apiClient.setDateFormat(format);
String dateStr = "\"2015-11-07T13:49:09+10:00\"";
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11-07T03:49:09+00:00\"", Date.class)));
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11-07T03:49:09Z\"", Date.class)));
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11-07T00:49:09-03:00\"", Date.class)));
try {
// invalid time zone format
json.deserialize("\"2015-11-07T03:49:09+00\"", Date.class);
fail("json parsing should fail");
} catch (RuntimeException e) {
// OK
}
try {
// unexpected miliseconds
json.deserialize("\"2015-11-07T03:49:09.000Z\"", Date.class);
fail("json parsing should fail");
} catch (RuntimeException e) {
// OK
}
}
@Test
public void testOffsetDateTimeTypeAdapter() {
final String str = "\"2016-09-09T08:02:03.123-03:00\"";
OffsetDateTime date = OffsetDateTime.of(2016, 9, 9, 8, 2, 3, 123000000, ZoneOffset.of("-3"));
assertEquals(str, json.serialize(date));
//Use toString() instead of isEqual to verify that the offset is preserved
assertEquals(json.deserialize(str, OffsetDateTime.class).toString(), date.toString());
}
@Test
public void testLocalDateTypeAdapter() {
final String str = "\"2016-09-09\"";
final LocalDate date = LocalDate.of(2016, 9, 9);
assertEquals(str, json.serialize(date));
assertEquals(json.deserialize(str, LocalDate.class), date);
}
@Test
public void testDefaultDate() throws Exception {
final DateTimeFormatter datetimeFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
final String dateStr = "2015-11-07T14:11:05.267Z";
order.setShipDate(datetimeFormat.parse(dateStr, OffsetDateTime.FROM));
String str = json.serialize(order);
Type type = new TypeToken<Order>() { }.getType();
Order o = json.deserialize(str, type);
assertEquals(dateStr, datetimeFormat.format(o.getShipDate()));
}
@Test
public void testCustomDate() throws Exception {
final DateTimeFormatter datetimeFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(ZoneId.of("Etc/GMT+2"));
final String dateStr = "2015-11-07T14:11:05-02:00";
order.setShipDate(datetimeFormat.parse(dateStr, OffsetDateTime.FROM));
String str = json.serialize(order);
Type type = new TypeToken<Order>() { }.getType();
Order o = json.deserialize(str, type);
assertEquals(dateStr, datetimeFormat.format(o.getShipDate()));
}
@Test
public void testByteArrayTypeAdapterSerialization() {
// Arrange
final String expectedBytesAsString = "Let's pretend this a jpg or something";
final byte[] expectedBytes = expectedBytesAsString.getBytes(StandardCharsets.UTF_8);
// Act
String serializedBytesWithQuotes = json.serialize(expectedBytes);
// Assert
String serializedBytes = serializedBytesWithQuotes.substring(1, serializedBytesWithQuotes.length() - 1);
if (json.getGson().htmlSafe()) {
serializedBytes = serializedBytes.replaceAll("\\\\u003d", "=");
}
ByteString actualAsByteString = ByteString.decodeBase64(serializedBytes);
byte[] actualBytes = actualAsByteString.toByteArray();
assertEquals(expectedBytesAsString, new String(actualBytes, StandardCharsets.UTF_8));
}
@Test
public void testByteArrayTypeAdapterDeserialization() {
// Arrange
final String expectedBytesAsString = "Let's pretend this a jpg or something";
final byte[] expectedBytes = expectedBytesAsString.getBytes(StandardCharsets.UTF_8);
final ByteString expectedByteString = ByteString.of(expectedBytes);
final String serializedBytes = expectedByteString.base64();
final String serializedBytesWithQuotes = "\"" + serializedBytes + "\"";
Type type = new TypeToken<byte[]>() { }.getType();
// Act
byte[] actualDeserializedBytes = json.deserialize(serializedBytesWithQuotes, type);
// Assert
assertEquals(expectedBytesAsString, new String(actualDeserializedBytes, StandardCharsets.UTF_8));
}
// Obtained 22JAN2018 from stackoverflow answer by PuguaSoft https://stackoverflow.com/questions/11399491/java-timezone-offset
// Direct link https://stackoverflow.com/a/16680815/3166133
public static String getCurrentTimezoneOffset() {
TimeZone tz = TimeZone.getDefault();
Calendar cal = GregorianCalendar.getInstance(tz, Locale.ROOT);
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
String offset = String.format(Locale.ROOT,"%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
offset = (offsetInMillis >= 0 ? "+" : "-") + offset;
return offset;
}
}
@@ -0,0 +1,76 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class ApiKeyAuthTest {
@Test
public void testApplyToParamsInQuery() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
auth.setApiKey("my-api-key");
auth.applyToParams(queryParams, headerParams);
assertEquals(1, queryParams.size());
for (Pair queryParam : queryParams) {
assertEquals("my-api-key", queryParam.getValue());
}
// no changes to header parameters
assertEquals(0, headerParams.size());
}
@Test
public void testApplyToParamsInQueryWithNullValue() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
auth.setApiKey(null);
auth.applyToParams(queryParams, headerParams);
// no changes to parameters
assertEquals(0, queryParams.size());
assertEquals(0, headerParams.size());
}
@Test
public void testApplyToParamsInHeaderWithPrefix() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
auth.setApiKey("my-api-token");
auth.setApiKeyPrefix("Token");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
assertEquals("Token my-api-token", headerParams.get("X-API-TOKEN"));
}
@Test
public void testApplyToParamsInHeaderWithNullValue() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
auth.setApiKey(null);
auth.setApiKeyPrefix("Token");
auth.applyToParams(queryParams, headerParams);
// no changes to parameters
assertEquals(0, queryParams.size());
assertEquals(0, headerParams.size());
}
}
@@ -0,0 +1,62 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.openapitools.client.Pair;
import org.junit.*;
import static org.junit.Assert.*;
public class HttpBasicAuthTest {
HttpBasicAuth auth = null;
@Before
public void setup() {
auth = new HttpBasicAuth();
}
@Test
public void testApplyToParams() {
List<Pair> queryParams = new ArrayList<Pair>();
Map<String, String> headerParams = new HashMap<String, String>();
auth.setUsername("my-username");
auth.setPassword("my-password");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
// the string below is base64-encoded result of "my-username:my-password" with the "Basic " prefix
String expected = "Basic bXktdXNlcm5hbWU6bXktcGFzc3dvcmQ=";
assertEquals(expected, headerParams.get("Authorization"));
// null username should be treated as empty string
auth.setUsername(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of ":my-password" with the "Basic " prefix
expected = "Basic Om15LXBhc3N3b3Jk";
assertEquals(expected, headerParams.get("Authorization"));
// null password should be treated as empty string
auth.setUsername("my-username");
auth.setPassword(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of "my-username:" with the "Basic " prefix
expected = "Basic bXktdXNlcm5hbWU6";
assertEquals(expected, headerParams.get("Authorization"));
// null username and password should be ignored
queryParams = new ArrayList<Pair>();
headerParams = new HashMap<String, String>();
auth.setUsername(null);
auth.setPassword(null);
auth.applyToParams(queryParams, headerParams);
// no changes to parameters
assertEquals(0, queryParams.size());
assertEquals(0, headerParams.size());
}
}
@@ -0,0 +1,70 @@
/*
* OpenAPI Petstore
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package org.openapitools.client.model;
import org.apache.commons.lang3.builder.EqualsBuilder;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
/**
* Model tests for ArrayOfArrayOfNumberOnly
*/
public class ArrayOfArrayOfNumberOnlyTest {
private final ArrayOfArrayOfNumberOnly model = new ArrayOfArrayOfNumberOnly();
/**
* Model tests for ArrayOfArrayOfNumberOnly
*/
@Test
public void test() {
// TODO: test ArrayOfArrayOfNumberOnly
}
/**
* Test the property 'arrayArrayNumber'
*/
@Test
public void arrayArrayNumberTest() {
BigDecimal b1 = new BigDecimal("12.3");
BigDecimal b2 = new BigDecimal("5.6");
List<BigDecimal> arrayArrayNumber = new ArrayList<BigDecimal>();
arrayArrayNumber.add(b1);
arrayArrayNumber.add(b2);
model.getArrayArrayNumber().add(arrayArrayNumber);
// create another instance for comparison
BigDecimal b3 = new BigDecimal("12.3");
BigDecimal b4 = new BigDecimal("5.6");
ArrayOfArrayOfNumberOnly model2 = new ArrayOfArrayOfNumberOnly();
List<BigDecimal> arrayArrayNumber2 = new ArrayList<BigDecimal>();
arrayArrayNumber2.add(b1);
arrayArrayNumber2.add(b2);
model2.getArrayArrayNumber().add(arrayArrayNumber2);
Assert.assertTrue(model2.equals(model));
}
}
@@ -0,0 +1,56 @@
package org.openapitools.client.model;
import org.junit.Test;
import com.google.gson.Gson;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class EnumValueTest {
@Test
public void testEnumClass() {
assertEquals(EnumClass._ABC.toString(), "_abc");
assertEquals(EnumClass._EFG.toString(), "-efg");
assertEquals(EnumClass._XYZ_.toString(), "(xyz)");
}
@Test
public void testEnumTest() {
// test enum value
EnumTest enumTest = new EnumTest();
enumTest.setEnumString(EnumTest.EnumStringEnum.LOWER);
enumTest.setEnumInteger(EnumTest.EnumIntegerEnum.NUMBER_1);
enumTest.setEnumNumber(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1);
assertEquals(EnumTest.EnumStringEnum.UPPER.toString(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.UPPER.getValue(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.LOWER.toString(), "lower");
assertEquals(EnumTest.EnumStringEnum.LOWER.getValue(), "lower");
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_1.toString(), "1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_1.getValue() == 1);
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.toString(), "-1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.getValue() == -1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.toString(), "1.1");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.getValue() == 1.1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.toString(), "-1.2");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.getValue() == -1.2);
// test serialization
Gson gson = new Gson();
String json = gson.toJson(enumTest);
assertEquals(json, "{\"enum_string\":\"lower\",\"enum_integer\":1,\"enum_number\":1.1}");
// test deserialization
EnumTest fromString = gson.fromJson(json, EnumTest.class);
assertEquals(fromString.getEnumString().toString(), "lower");
assertEquals(fromString.getEnumString().getValue(), "lower");
assertEquals(fromString.getEnumInteger().toString(), "1");
assertTrue(fromString.getEnumInteger().getValue() == 1);
assertEquals(fromString.getEnumNumber().toString(), "1.1");
assertTrue(fromString.getEnumNumber().getValue() == 1.1);
}
}
@@ -0,0 +1,103 @@
/*
* OpenAPI Petstore
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package org.openapitools.client.model;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.openapitools.client.model.Category;
import org.openapitools.client.model.Tag;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
/**
* Model tests for Pet
*/
public class PetTest {
private final Pet model = new Pet();
/**
* Model tests for Pet
*/
@Test
public void testPet() {
// test Pet
model.setId(1029L);
model.setName("Dog");
Pet model2 = new Pet();
model2.setId(1029L);
model2.setName("Dog");
Assert.assertTrue(model.equals(model2));
}
/**
* Test the property 'id'
*/
@Test
public void idTest() {
// TODO: test id
}
/**
* Test the property 'category'
*/
@Test
public void categoryTest() {
// TODO: test category
}
/**
* Test the property 'name'
*/
@Test
public void nameTest() {
// TODO: test name
}
/**
* Test the property 'photoUrls'
*/
@Test
public void photoUrlsTest() {
// TODO: test photoUrls
}
/**
* Test the property 'tags'
*/
@Test
public void tagsTest() {
// TODO: test tags
}
/**
* Test the property 'status'
*/
@Test
public void statusTest() {
// TODO: test status
}
}
@@ -0,0 +1,254 @@
package org.openapitools.client;
import org.openapitools.client.auth.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import org.junit.*;
import org.springframework.http.MediaType;
import org.springframework.util.MultiValueMap;
import static org.junit.Assert.*;
public class ApiClientTest {
ApiClient apiClient = null;
@Before
public void setup() {
apiClient = new ApiClient();
}
/**
*
*/
@Test
public void testParseAndFormatDate() {
// default date format
String dateStr = "2015-11-07T03:49:09.356Z";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09.356Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T05:49:09.356+02:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
// custom date format: without milli-seconds, custom time zone
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
apiClient.setDateFormat(format);
dateStr = "2015-11-07T13:49:09+10:00";
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09+00:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T03:49:09Z")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T00:49:09-03:00")));
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T13:49:09+10:00")));
}
@Test
public void testIsJsonMime() {
assertFalse(apiClient.isJsonMime((String) null));
assertFalse(apiClient.isJsonMime(""));
assertFalse(apiClient.isJsonMime("text/plain"));
assertFalse(apiClient.isJsonMime("application/xml"));
assertFalse(apiClient.isJsonMime("application/jsonp"));
assertFalse(apiClient.isJsonMime("example/json"));
assertFalse(apiClient.isJsonMime("example/foo+bar+jsonx"));
assertFalse(apiClient.isJsonMime("example/foo+bar+xjson"));
assertTrue(apiClient.isJsonMime("application/json"));
assertTrue(apiClient.isJsonMime("application/json; charset=UTF8"));
assertTrue(apiClient.isJsonMime("APPLICATION/JSON"));
assertTrue(apiClient.isJsonMime("application/problem+json"));
assertTrue(apiClient.isJsonMime("APPLICATION/PROBLEM+JSON"));
assertTrue(apiClient.isJsonMime("application/json\t"));
assertTrue(apiClient.isJsonMime("example/foo+bar+json"));
assertTrue(apiClient.isJsonMime("example/foo+json;x;y"));
assertTrue(apiClient.isJsonMime("example/foo+json\t;"));
assertTrue(apiClient.isJsonMime("Example/fOO+JSON"));
}
@Test
public void testSelectHeaderAccept() {
String[] accepts = {"application/json", "application/xml"};
assertEquals(Arrays.asList(MediaType.parseMediaType("application/json")), apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"APPLICATION/XML", "APPLICATION/JSON"};
assertEquals(Arrays.asList(MediaType.parseMediaType("APPLICATION/JSON")), apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals(Arrays.asList(MediaType.parseMediaType("application/json; charset=UTF8")), apiClient.selectHeaderAccept(accepts));
accepts = new String[]{"text/plain", "application/xml"};
assertEquals(Arrays.asList(MediaType.parseMediaType("text/plain"),MediaType.parseMediaType("application/xml")), apiClient.selectHeaderAccept(accepts));
accepts = new String[]{};
assertNull(apiClient.selectHeaderAccept(accepts));
}
@Test
public void testSelectHeaderContentType() {
String[] contentTypes = {"application/json", "application/xml"};
assertEquals(MediaType.parseMediaType("application/json"), apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"APPLICATION/JSON", "APPLICATION/XML"};
assertEquals(MediaType.parseMediaType("APPLICATION/JSON"), apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"application/xml", "application/json; charset=UTF8"};
assertEquals(MediaType.parseMediaType("application/json; charset=UTF8"), apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{"text/plain", "application/xml"};
assertEquals(MediaType.parseMediaType("text/plain"), apiClient.selectHeaderContentType(contentTypes));
contentTypes = new String[]{};
assertEquals(MediaType.parseMediaType("application/json"), apiClient.selectHeaderContentType(contentTypes));
}
@Test
public void testGetAuthentications() {
Map<String, Authentication> auths = apiClient.getAuthentications();
Authentication auth = auths.get("api_key");
assertNotNull(auth);
assertTrue(auth instanceof ApiKeyAuth);
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) auth;
assertEquals("header", apiKeyAuth.getLocation());
assertEquals("api_key", apiKeyAuth.getParamName());
auth = auths.get("petstore_auth");
assertTrue(auth instanceof OAuth);
assertSame(auth, apiClient.getAuthentication("petstore_auth"));
assertNull(auths.get("unknown"));
try {
auths.put("my_auth", new HttpBasicAuth());
fail("the authentications returned should not be modifiable");
} catch (UnsupportedOperationException e) {
}
}
@Ignore("There is no more basic auth in petstore security definitions")
@Test
public void testSetUsernameAndPassword() {
HttpBasicAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof HttpBasicAuth) {
auth = (HttpBasicAuth) _auth;
break;
}
}
auth.setUsername(null);
auth.setPassword(null);
apiClient.setUsername("my-username");
apiClient.setPassword("my-password");
assertEquals("my-username", auth.getUsername());
assertEquals("my-password", auth.getPassword());
// reset values
auth.setUsername(null);
auth.setPassword(null);
}
@Test
public void testSetApiKeyAndPrefix() {
ApiKeyAuth auth = null;
for (Authentication _auth : apiClient.getAuthentications().values()) {
if (_auth instanceof ApiKeyAuth) {
auth = (ApiKeyAuth) _auth;
break;
}
}
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
apiClient.setApiKey("my-api-key");
apiClient.setApiKeyPrefix("Token");
assertEquals("my-api-key", auth.getApiKey());
assertEquals("Token", auth.getApiKeyPrefix());
// reset values
auth.setApiKey(null);
auth.setApiKeyPrefix(null);
}
@Test
public void testParameterToMultiValueMapWhenNameIsInvalid() throws Exception {
MultiValueMap<String, String> pairs_a = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, null, new Integer(1));
MultiValueMap<String, String> pairs_b = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, "", new Integer(1));
assertTrue(pairs_a.isEmpty());
assertTrue(pairs_b.isEmpty());
}
@Test
public void testParameterToMultiValueMapWhenValueIsNull() throws Exception {
MultiValueMap<String, String> pairs = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, "param-a", null);
assertTrue(pairs.isEmpty());
}
@Test
public void testParameterToMultiValueMapWhenValueIsEmptyStrings() throws Exception {
// single empty string
MultiValueMap<String, String> pairs = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, "param-a", " ");
assertEquals(1, pairs.size());
// list of empty strings
List<String> strs = new ArrayList<String>();
strs.add(" ");
strs.add(" ");
strs.add(" ");
MultiValueMap<String, String> concatStrings = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, "param-a", strs);
assertEquals(1, concatStrings.get("param-a").size());
assertFalse(concatStrings.get("param-a").isEmpty()); // should contain some delimiters
}
@Test
public void testParameterToMultiValueMapWhenValueIsNotCollection() throws Exception {
String name = "param-a";
Integer value = 1;
MultiValueMap<String, String> pairs = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.CSV, name, value);
assertEquals(1, pairs.get(name).size());
assertEquals(value, Integer.valueOf(pairs.get(name).get(0)));
}
@Test
public void testParameterToMultiValueMapWhenValueIsCollection() throws Exception {
Map<ApiClient.CollectionFormat, String> collectionFormatMap = new HashMap<ApiClient.CollectionFormat, String>();
collectionFormatMap.put(ApiClient.CollectionFormat.CSV, ",");
collectionFormatMap.put(ApiClient.CollectionFormat.TSV, "\t");
collectionFormatMap.put(ApiClient.CollectionFormat.SSV, " ");
collectionFormatMap.put(ApiClient.CollectionFormat.PIPES, "\\|");
collectionFormatMap.put(null, ","); // no format, must default to csv
String name = "param-a";
List<Object> values = new ArrayList<Object>();
values.add("value-a");
values.add(123);
values.add(new Date());
// check for multi separately
MultiValueMap<String, String> multiValueMap = apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.MULTI, name, values);
assertEquals(values.size(), multiValueMap.get(name).size());
// all other formats
for (ApiClient.CollectionFormat collectionFormat : collectionFormatMap.keySet()) {
MultiValueMap<String, String> pairs = apiClient.parameterToMultiValueMap(collectionFormat, name, values);
assertEquals(1, pairs.size());
String delimiter = collectionFormatMap.get(collectionFormat);
String[] pairValueSplit = pairs.get(name).get(0).split(delimiter);
assertEquals(values.size(), pairValueSplit.length);
}
}
}
@@ -0,0 +1,47 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.junit.*;
import org.springframework.http.HttpHeaders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import static org.junit.Assert.*;
public class ApiKeyAuthTest {
@Test
public void testApplyToParamsInQuery() {
MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
HttpHeaders headerParams = new HttpHeaders();
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
auth.setApiKey("my-api-key");
auth.applyToParams(queryParams, headerParams);
assertEquals(1, queryParams.size());
assertEquals("my-api-key", queryParams.get("api_key").get(0));
// no changes to header parameters
assertEquals(0, headerParams.size());
}
@Test
public void testApplyToParamsInHeaderWithPrefix() {
MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
HttpHeaders headerParams = new HttpHeaders();
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
auth.setApiKey("my-api-token");
auth.setApiKeyPrefix("Token");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
assertEquals("Token my-api-token", headerParams.get("X-API-TOKEN").get(0));
}
}
@@ -0,0 +1,54 @@
package org.openapitools.client.auth;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import org.junit.*;
import org.springframework.http.HttpHeaders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import static org.junit.Assert.*;
public class HttpBasicAuthTest {
HttpBasicAuth auth = null;
@Before
public void setup() {
auth = new HttpBasicAuth();
}
@Test
public void testApplyToParams() {
MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
HttpHeaders headerParams = new HttpHeaders();
auth.setUsername("my-username");
auth.setPassword("my-password");
auth.applyToParams(queryParams, headerParams);
// no changes to query parameters
assertEquals(0, queryParams.size());
assertEquals(1, headerParams.size());
// the string below is base64-encoded result of "my-username:my-password" with the "Basic " prefix
String expected = "Basic bXktdXNlcm5hbWU6bXktcGFzc3dvcmQ=";
assertEquals(expected, headerParams.get("Authorization").get(0));
// null username should be treated as empty string
auth.setUsername(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of ":my-password" with the "Basic " prefix
expected = "Basic Om15LXBhc3N3b3Jk";
assertEquals(expected, headerParams.get("Authorization").get(1));
// null password should be treated as empty string
auth.setUsername("my-username");
auth.setPassword(null);
auth.applyToParams(queryParams, headerParams);
// the string below is base64-encoded result of "my-username:" with the "Basic " prefix
expected = "Basic bXktdXNlcm5hbWU6";
assertEquals(expected, headerParams.get("Authorization").get(2));
}
}
@@ -0,0 +1,63 @@
package org.openapitools.client.model;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class EnumValueTest {
@Test
public void testEnumClass() {
assertEquals(EnumClass._ABC.toString(), "_abc");
assertEquals(EnumClass._EFG.toString(), "-efg");
assertEquals(EnumClass._XYZ_.toString(), "(xyz)");
}
@Test
public void testEnumTest() {
// test enum value
EnumTest enumTest = new EnumTest();
enumTest.setEnumString(EnumTest.EnumStringEnum.LOWER);
enumTest.setEnumInteger(EnumTest.EnumIntegerEnum.NUMBER_1);
enumTest.setEnumNumber(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1);
assertEquals(EnumTest.EnumStringEnum.UPPER.toString(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.UPPER.getValue(), "UPPER");
assertEquals(EnumTest.EnumStringEnum.LOWER.toString(), "lower");
assertEquals(EnumTest.EnumStringEnum.LOWER.getValue(), "lower");
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_1.toString(), "1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_1.getValue() == 1);
assertEquals(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.toString(), "-1");
assertTrue(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1.getValue() == -1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.toString(), "1.1");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_1_DOT_1.getValue() == 1.1);
assertEquals(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.toString(), "-1.2");
assertTrue(EnumTest.EnumNumberEnum.NUMBER_MINUS_1_DOT_2.getValue() == -1.2);
try {
// test serialization (object => json)
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
ObjectWriter ow = mapper.writer();
String json = ow.writeValueAsString(enumTest);
assertEquals(json, "{\"enum_string\":\"lower\",\"enum_string_required\":null,\"enum_integer\":1,\"enum_number\":1.1,\"outerEnum\":null}");
// test deserialization (json => object)
EnumTest fromString = mapper.readValue(json, EnumTest.class);
assertEquals(fromString.getEnumString().toString(), "lower");
assertEquals(fromString.getEnumInteger().toString(), "1");
assertEquals(fromString.getEnumNumber().toString(), "1.1");
} catch (Exception e) {
fail("Exception thrown during serialization/deserialzation of JSON: " + e.getMessage());
}
}
}
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>KotlinPetstoreStringTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>kotlin-string</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>bundle-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>gradle</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>KotlinPetstoreThreetenbpTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>kotlin-threetenbp</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>bundle-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>gradle</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,26 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>TypeScriptAngularBuildPestoreClientTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>TS Fetch Default Petstore Client</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,59 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>TypeScriptAngularBuildES6PestoreClientTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>TS Fetch ES6 Petstore Client</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>npm-install</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>npm-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,73 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>TypeScriptAngularBuildWithNPMVersionPestoreClientTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>TS Fetch Petstore Client (with npm)</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>npm-install</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>npm-build</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>run</argument>
<argument>build</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>npm-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,59 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>TypeScriptFetchPestoreClientTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>TS Fetch Petstore Test Client</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>npm-install</id>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>install</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>npm-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>npm</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-api-package-override</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-api-package-override Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-controller-only</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-controller-only Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-fake-endpoints</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-fake-endpoints Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-no-bean-validation</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-no-bean-validation Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-no-exception-handling</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-no-exception-handling Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-no-interface</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-no-interface Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-no-swagger-ui</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-no-swagger-ui Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests-no-wrap-calls</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework-no-wrap-calls Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>PlayServerTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>java-play-framework Project</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>Play Test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>sbt</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,46 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>KotlinPetstoreKtorTests</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>kotlin-server-ktor</name>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>bundle-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>gradle</executable>
<arguments>
<argument>test</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
+36
View File
@@ -0,0 +1,36 @@
<settings>
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
<server>
<id>ossrh</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles>
<profile>
<id>release</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg</gpg.executable>
<gpg.keyname>${env.SIGNING_KEY}</gpg.keyname>
<gpg.passphrase>${env.SIGNING_PASSPHRASE}</gpg.passphrase>
<gpg.secretKeyring>${env.TRAVIS_BUILD_DIR}/sec.gpg</gpg.secretKeyring>
</properties>
</profile>
</profiles>
<activeProfiles/>
</settings>
+46
View File
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at team@openapitools.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
+21 -14
View File
@@ -2,16 +2,17 @@
## Before submitting an issue
- If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: [Getting Started](https://github.com/swagger-api/swagger-codegen#getting-started)
- Search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) and [closed issue](https://github.com/swagger-api/swagger-codegen/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- File an [issue ticket](https://github.com/swagger-api/swagger-codegen/issues/new) by providing all the required information.
- If you're not using the latest master to generate API clients or server stubs, please give it another try by pulling the latest master as the issue may have already been addressed. Ref: [Getting Started](https://github.com/openapitools/openapi-generator#getting-started)
- Search the [open issue](https://github.com/openapitools/openapi-generator/issues) and [closed issue](https://github.com/openapitools/openapi-generator/issues?q=is%3Aissue+is%3Aclosed) to ensure no one else has reported something similar before.
- File an [issue ticket](https://github.com/openapitools/openapi-generator/issues/new) by providing all the required information.
- Test with the latest master by building the JAR locally to see if the issue has already been addressed.
- You can also make a suggestion or ask a question by opening an "issue".
## Before submitting a PR
- Search the [open issue](https://github.com/swagger-api/swagger-codegen/issues) to ensure no one else has reported something similar and no one is actively working on similar proposed change.
- If no one has suggested something similar, open an ["issue"](https://github.com/swagger-api/swagger-codegen/issues) with your suggestion to gather feedback from the community.
- Search the [open issue](https://github.com/openapitools/openapi-generator/issues) to ensure no one else has reported something similar and no one is actively working on similar proposed change.
- If no one has suggested something similar, open an ["issue"](https://github.com/openapitools/openapi-generator/issues) with your suggestion to gather feedback from the community.
- If you're adding a new option to a generator, please consider using the `-t` option with customized templates instead or start a discussion first by opening an issue as we want to avoid adding too many options to the generator.
- It's recommended to **create a new git branch** for the change so that the merge commit message looks nicer in the commit history.
## How to contribute
@@ -20,17 +21,21 @@
If you're new to git, you may find the following FAQs useful:
https://github.com/swagger-api/swagger-codegen/wiki/FAQ#git
https://github.com/openapitools/openapi-generator/wiki/FAQ#git
### Branches
Please file the pull request against the correct branch, e.g. `master` for non-breaking changes. See the [Git Branches](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches) page for more information.
### Code generators
All the code generators can be found in [modules/swagger-codegen/src/main/java/io/swagger/codegen/languages](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages)
All the code generators can be found in [modules/openapi-generator/src/main/java/org/openapitools/codegen/languages](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages)
### Templates
All the templates ([mustache](https://mustache.github.io/)) can be found in [modules/swagger-codegen/src/main/resources](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources).
All the templates ([mustache](https://mustache.github.io/)) can be found in [modules/openapi-generator/src/main/resources](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources).
For a list of variables available in the template, please refer to this [page](https://github.com/swagger-api/swagger-codegen/wiki/Mustache-Template-Variables)
For a list of variables available in the template, please refer to this [page](https://github.com/openapitools/openapi-generator/wiki/Mustache-Template-Variables)
### Style guide
@@ -42,6 +47,7 @@ Code change should conform to the programming style guide of the respective lang
- C++: https://google.github.io/styleguide/cppguide.html
- C++ (Tizen): https://wiki.tizen.org/Native_Platform_Coding_Idiom_and_Style_Guide#C.2B.2B_Coding_Style
- Clojure: https://github.com/bbatsov/clojure-style-guide
- Dart: https://www.dartlang.org/guides/language/effective-dart/style
- Elixir: https://github.com/christopheradams/elixir_style_guide
- Eiffel: https://www.eiffel.org/doc/eiffel/Coding%20Standards
- Erlang: https://github.com/inaka/erlang_guidelines
@@ -70,19 +76,20 @@ You may find the current code base not 100% conform to the coding style and we w
For [Vendor Extensions](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#vendorExtensions), please follow the naming convention below:
- For general vendor extension, use lower case and hyphen. e.g. `x-is-unique`, `x-content-type`
- For language-specified vendor extension, put it in the form of `x-{lang}-{extension-name}`. e.g. `x-objc-operation-id`, `x-java-feign-retry-limit`
- For a list of existing vendor extensions in use, please refer to https://github.com/swagger-api/swagger-codegen/wiki/Vendor-Extensions. If you've added new vendor extensions as part of your PR, please update the wiki page.
- For a list of existing vendor extensions in use, please refer to https://github.com/openapitools/openapi-generator/wiki/Vendor-Extensions. If you've added new vendor extensions as part of your PR, please update the wiki page.
### Testing
To add test cases (optional) covering the change in the code generator, please refer to [modules/swagger-codegen/src/test/java/io/swagger/codegen](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/test/java/io/swagger/codegen)
To add test cases (optional) covering the change in the code generator, please refer to [modules/openapi-generator/src/test/java/org/openapitools/codegen](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/test/java/org/openapitools/codegen)
To test the templates, please perform the following:
- Update the [Petstore](http://petstore.swagger.io/) sample by running the shell script under `bin` folder. For example, run `./bin/ruby-petstore.sh` to update the Ruby PetStore API client under [`samples/client/petstore/ruby`](https://github.com/swagger-api/swagger-codegen/tree/master/samples/client/petstore/ruby) For Windows, the batch files can be found under `bin\windows` folder. (If you find that there are new files generated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI/Swagger spec from time to time. If you've questions or concerns, please open a ticket to start a discussion)
- Update the Petstore sample by running the shell script under `bin` folder. For example, run `./bin/ruby-petstore.sh` to update the Ruby PetStore API client under [`samples/client/petstore/ruby`](https://github.com/openapitools/openapi-generator/tree/master/samples/client/petstore/ruby) For Windows, the batch files can be found under `bin\windows` folder. (If you find that there are new files generated or unexpected changes as a result of the update, that's not unusual as the test cases are added to the OpenAPI spec from time to time. If you've questions or concerns, please open a ticket to start a discussion)
- Run the tests in the sample folder, e.g. in `samples/client/petstore/ruby`, run `mvn integration-test -rf :RubyPetstoreClientTests`. (some languages may not contain unit testing for Petstore and we're looking for contribution from the community to implement those tests)
- Finally, git commit the updated samples files: `git commit -a`
(`git add -A` if added files with new test cases)
- For new test cases, please add to the [Fake Petstore spec](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml)
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own Swagger-Codegen repository.
To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all the required tools installed to run tests for different languages) or you can leverage http://travis-ci.org to run the CI tests by adding your own openapi-generator repository.
### Tips
- Smaller changes are easier to review
@@ -90,7 +97,7 @@ To start the CI tests, you can run `mvn verify -Psamples` (assuming you've all t
- Add test case(s) to cover the change
- Document the fix in the code to make the code more readable
- Make sure test cases passed after the change (one way is to leverage https://travis-ci.org/ to run the CI tests)
- File a PR with meaningful title, description and commit messages. A good example is [PR-3306](https://github.com/swagger-api/swagger-codegen/pull/3306)
- File a PR with meaningful title, description and commit messages.
- Recommended git settings
- `git config --global core.autocrlf input` to tell Git convert CRLF to LF on commit but not the other way around
- To close an issue (e.g. issue 1542) automatically after a PR is merged, use keywords "fix", "close", "resolve" in the PR description, e.g. `fix #1542`. (Ref: [closing issues using keywords](https://help.github.com/articles/closing-issues-using-keywords/))
+9 -8
View File
@@ -3,25 +3,26 @@ FROM jimschubert/8-jdk-alpine-mvn:1.0
RUN set -x && \
apk add --no-cache bash
ENV GEN_DIR /opt/swagger-codegen
ENV GEN_DIR /opt/openapi-generator
WORKDIR ${GEN_DIR}
VOLUME ${MAVEN_HOME}/.m2/repository
# Required from a licensing standpoint
COPY ./LICENSE ${GEN_DIR}
# Required to compile swagger-codegen
# Required to compile openapi-generator
COPY ./google_checkstyle.xml ${GEN_DIR}
# Modules are copied individually here to allow for caching of docker layers between major.minor versions
# NOTE: swagger-generator is not included here, it is available as swaggerapi/swagger-generator
COPY ./modules/swagger-codegen-maven-plugin ${GEN_DIR}/modules/swagger-codegen-maven-plugin
COPY ./modules/swagger-codegen-cli ${GEN_DIR}/modules/swagger-codegen-cli
COPY ./modules/swagger-codegen ${GEN_DIR}/modules/swagger-codegen
COPY ./modules/openapi-generator-gradle-plugin ${GEN_DIR}/modules/openapi-generator-gradle-plugin
COPY ./modules/openapi-generator-maven-plugin ${GEN_DIR}/modules/openapi-generator-maven-plugin
COPY ./modules/openapi-generator-online ${GEN_DIR}/modules/openapi-generator-online
COPY ./modules/openapi-generator-cli ${GEN_DIR}/modules/openapi-generator-cli
COPY ./modules/openapi-generator ${GEN_DIR}/modules/openapi-generator
COPY ./pom.xml ${GEN_DIR}
# Pre-compile swagger-codegen-cli
RUN mvn -am -pl "modules/swagger-codegen-cli" package
# Pre-compile openapi-generator-cli
RUN mvn -am -pl "modules/openapi-generator-cli" package
# This exists at the end of the file to benefit from cached layers when modifying docker-entrypoint.sh.
COPY docker-entrypoint.sh /usr/local/bin/
+200 -9
View File
@@ -1,11 +1,202 @@
Copyright 2016 SmartBear Software
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
Copyright 2018 SmartBear Software
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+501 -862
View File
File diff suppressed because it is too large Load Diff
Vendored
+9 -7
View File
@@ -6,10 +6,10 @@ VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |v|
v.name = "swagger-codegen"
v.name = "openapi-generator"
v.memory = 2048
v.cpus = 2
end
@@ -23,13 +23,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
#Provision
config.vm.provision "shell", inline: <<-SHELL
sudo touch /var/lib/cloud/instance/locale-check.skip
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo sh -c 'echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt/sources.list.d/docker.list'
sudo apt-cache policy docker-engine
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable"
sudo sh -c 'echo "deb https://apt.dockerproject.org/repo ubuntu-cosmic main" > /etc/apt/sources.list.d/docker.list'
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y docker-engine
sudo apt-get install -y docker-ce
sudo usermod -aG docker vagrant
SHELL
+25 -14
View File
@@ -18,30 +18,41 @@ install:
- cmd: SET MAVEN_OPTS=-XX:MaxPermSize=2g -Xmx4g
- cmd: SET JAVA_OPTS=-XX:MaxPermSize=2g -Xmx4g
- cmd: SET M2_HOME=C:\maven\apache-maven-3.2.5
- cmd: java -version
- cmd: dir/w
# - cmd: RMDIR "C:\projects\swagger-codegen\swagger-samples" /S /Q
- git clone https://github.com/wing328/swagger-samples
- ps: Start-Process -FilePath 'C:\maven\apache-maven-3.2.5\bin\mvn' -ArgumentList 'jetty:run' -WorkingDirectory "$env:appveyor_build_folder\swagger-samples\java\java-jersey-jaxrs-ci"
build_script:
# build C# API client (refactor)
- nuget restore samples\client\petstore\csharp-refactor\OpenAPIClient\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp-refactor\OpenAPIClient\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# build C# API client
- nuget restore samples\client\petstore\csharp\SwaggerClient\IO.Swagger.sln
- msbuild samples\client\petstore\csharp\SwaggerClient\IO.Swagger.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- nuget restore samples\client\petstore\csharp\OpenAPIClient\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClient\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# build C# API client (with PropertyChanged)
- nuget restore samples\client\petstore\csharp\SwaggerClientWithPropertyChanged\IO.Swagger.sln
- msbuild samples\client\petstore\csharp\SwaggerClientWithPropertyChanged\IO.Swagger.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
- nuget restore samples\client\petstore\csharp\OpenAPIClientWithPropertyChanged\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClientWithPropertyChanged\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# build C# .net standard 1.3+ API client
- nuget restore samples\client\petstore\csharp\SwaggerClientNetStandard\IO.Swagger.sln
- msbuild samples\client\petstore\csharp\SwaggerClientNetStandard\IO.Swagger.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# install swagger codegen locally
- mvn clean install --batch-mode
- nuget restore samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln
- msbuild samples\client\petstore\csharp\OpenAPIClientNetStandard\Org.OpenAPITools.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
# install openapi-generator locally
- mvn clean install --quiet
test_script:
# restore test-related files
- copy /b/v/y CI\samples.ci\client\petstore\csharp\OpenAPIClient\src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj samples\client\petstore\csharp\OpenAPIClient\src\Org.OpenAPITools.Test\Org.OpenAPITools.Test.csproj
# test c# API client (refactor)
- nunit-console samples\client\petstore\csharp-refactor\OpenAPIClient\src\Org.OpenAPITools.Test\bin\Debug\Org.OpenAPITools.Test.dll --result=myresults.xml;format=AppVeyor
# test c# API client
- nunit-console samples\client\petstore\csharp\SwaggerClient\src\IO.Swagger.Test\bin\Debug\IO.Swagger.Test.dll --result=myresults.xml;format=AppVeyor
- nunit-console samples\client\petstore\csharp\OpenAPIClient\src\Org.OpenAPITools.Test\bin\Debug\Org.OpenAPITools.Test.dll --result=myresults.xml;format=AppVeyor
# test c# API client (with PropertyChanged)
- nunit-console samples\client\petstore\csharp\SwaggerClientWithPropertyChanged\src\IO.Swagger.Test\bin\Debug\IO.Swagger.Test.dll --result=myresults.xml;format=AppVeyor
- nunit-console samples\client\petstore\csharp\OpenAPIClientWithPropertyChanged\src\Org.OpenAPITools.Test\bin\Debug\Org.OpenAPITools.Test.dll --result=myresults.xml;format=AppVeyor
# generate all petstore clients
- .\bin\windows\run-all-petstore.cmd
#cache:
# - C:\maven\
# - C:\Users\appveyor\.m2
# generate all petstore clients (openapi3)
- .\bin\openapi3\windows\run-all-petstore.cmd
cache:
- C:\maven\
- C:\Users\appveyor\.m2
+6 -5
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,18 +18,18 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
model="modules/swagger-codegen/src/test/resources/2_0/petstore.yaml"
ags="$@ generate --template-dir modules/swagger-codegen/src/main/resources/Ada -l ada"
ags="$ags -i $model -t modules/swagger-codegen/src/main/resources/Ada -o samples/client/petstore/ada"
model="modules/openapi-generator/src/test/resources/2_0/petstore.yaml"
ags="generate --template-dir modules/openapi-generator/src/main/resources/Ada -g ada $@"
ags="$ags -i $model -t modules/openapi-generator/src/main/resources/Ada -o samples/client/petstore/ada"
ags="$ags -DprojectName=Petstore --model-package Samples.Petstore"
java $JAVA_OPTS -jar $executable $ags
-31
View File
@@ -1,31 +0,0 @@
#!/bin/sh
SCRIPT="$0"
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/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate --artifact-id "scala-akka-petstore-client" -t modules/swagger-codegen/src/main/resources/akka-scala -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l akka-scala -o samples/client/petstore/akka-scala"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/android -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l android -Dlibrary=httpclient -o samples/client/petstore/android/httpclient"
ags="generate -t modules/openapi-generator/src/main/resources/android -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g android -Dlibrary=httpclient -o samples/client/petstore/android/httpclient $@"
java $JAVA_OPTS -jar $executable $ags
+1 -1
View File
@@ -1,4 +1,4 @@
{
"library": "volley",
"artifactId": "swagger-petstore-android-volley"
"artifactId": "petstore-android-volley"
}
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l android -c bin/android-petstore-volley.json -o samples/client/petstore/android/volley"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g android -c bin/android-petstore-volley.json -o samples/client/petstore/android/volley $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -l apache2 -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -o samples/config/petstore/apache2"
ags="generate -g apache2 -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o samples/config/petstore/apache2 $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/apex -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l apex -o samples/client/petstore/apex"
ags="generate -t modules/openapi-generator/src/main/resources/apex -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g apex -o samples/client/petstore/apex $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -l aspnetcore -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/aspnetcore --additional-properties packageGuid={3C799344-F285-4669-8FD5-7ED9B795D5C5}"
ags="generate -g aspnetcore -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/aspnetcore --additional-properties packageGuid={3C799344-F285-4669-8FD5-7ED9B795D5C5} $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
args="$@ generate -t modules/swagger-codegen/src/main/resources/bash -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l bash -o samples/client/petstore/bash -c modules/swagger-codegen/src/test/resources/2_0/bash-config.json --additional-properties hideGenerationTimestamp=true"
args="generate -t modules/openapi-generator/src/main/resources/bash -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g bash -o samples/client/petstore/bash -c modules/openapi-generator/src/test/resources/2_0/bash-config.json --additional-properties hideGenerationTimestamp=true $@"
java $JAVA_OPTS -jar $executable $args
+32
View File
@@ -0,0 +1,32 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/C-libcurl -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g c -o samples/client/petstore/c $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l clojure -o samples/client/petstore/clojure"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.json -g clojure -o samples/client/petstore/clojure $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -g cpp-pistache-server -t modules/openapi-generator/src/main/resources/cpp-pistache-server -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml --additional-properties addExternalLibs=true -o samples/server/petstore/cpp-pistache $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/cpp-qt5-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g cpp-qt5-client -o samples/client/petstore/cpp-qt5 $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/cpp-qt5-qhttpengine-server -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g cpp-qt5-qhttpengine-server -o samples/server/petstore/cpp-qt5-qhttpengine-server $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -g cpp-restbed-server -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/cpp-restbed $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/cpp-rest-sdk-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g cpp-restsdk -o samples/client/petstore/cpp-restsdk $@"
java $JAVA_OPTS -jar $executable $ags
+32
View File
@@ -0,0 +1,32 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/cpp-tizen-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g cpp-tizen -o samples/client/petstore/cpp-tizen $@"
java $JAVA_OPTS -jar $executable $ags
-31
View File
@@ -1,31 +0,0 @@
#!/bin/sh
SCRIPT="$0"
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/swagger-codegen-cli/target/swagger-codegen-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -t modules/swagger-codegen/src/main/resources/cpprest -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l cpprest -o samples/client/petstore/cpprest"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient --additional-properties hideGenerationTimestamp=true"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g csharp-dotnet2 -o samples/client/petstore/csharp-dotnet2/OpenAPIClientTest/Lib/OpenAPIClient --additional-properties hideGenerationTimestamp=true $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientNet35 --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-35.json"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClientNet35 --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-35.json $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientNet40 --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-40.json"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClientNet40 --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-40.json $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientNetStandard --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-standard.json"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClientNetStandard --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} -c ./bin/csharp-petstore-net-standard.json $@"
java $JAVA_OPTS -jar $executable $ags
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientNetCoreProject --additional-properties packageGuid={67035b31-f8e5-41a4-9673-954035084f7d},netCoreProjectFile=true -c ./bin/csharp-petstore-net-standard.json"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClientNetCoreProject --additional-properties packageGuid={67035b31-f8e5-41a4-9673-954035084f7d},netCoreProjectFile=true -c ./bin/csharp-petstore-net-standard.json $@"
java $JAVA_OPTS -jar $executable $ags
+9 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,20 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClient --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClient --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C} $@"
java $JAVA_OPTS -jar $executable $ags
# restore csproj file
echo "restore csproject file: CI/samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj"
cp ./CI/samples.ci/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj ./samples/client/petstore/csharp/OpenAPIClient/src/Org.OpenAPITools.Test/
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientWithPropertyChanged --additional-properties generatePropertyChanged=true --additional-properties packageGuid={5CD900DE-8266-412F-A758-28E1F9C623D5}"
ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp -o samples/client/petstore/csharp/OpenAPIClientWithPropertyChanged --additional-properties generatePropertyChanged=true --additional-properties packageGuid={5CD900DE-8266-412F-A758-28E1F9C623D5} $@"
java $JAVA_OPTS -jar $executable $ags
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
# C# Petstore API client (.NET 3.5)
./bin/csharp-refactor-petstore.sh
# C# Petstore API client with PropertyChanged
./bin/csharp-refactor-property-changed-petstore.sh
# C# Petstore API client (v5.0 for .net standarnd 1.3+)
./bin/csharp-refactor-petstore-net-standard.sh
# C# Petstore API client (.NET 4.0)
./bin/csharp-refactor-petstore-net-40.sh
# C# Petstore API client (.NET 3.5)
./bin/csharp-refactor-petstore-net-35.sh
+37
View File
@@ -0,0 +1,37 @@
#!/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 -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate -t modules/openapi-generator/src/main/resources/csharp-refactor/ -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g csharp-refactor -o samples/client/petstore/csharp-refactor/OpenAPIClient --additional-properties packageGuid={321C8C3F-0156-40C1-AE42-D59761FB9B6C},useCompareNetObjects=true $@"
java $JAVA_OPTS -jar $executable $ags
# restore csproj file
echo "restore csproject file: CI/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj"
cp ./CI/samples.ci/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Org.OpenAPITools.Test.csproj ./samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/
+4 -3
View File
@@ -1,6 +1,7 @@
#!/bin/sh
SCRIPT="$0"
echo "# START SCRIPT: $SCRIPT"
while [ -h "$SCRIPT" ] ; do
ls=`ls -ld "$SCRIPT"`
@@ -17,15 +18,15 @@ if [ ! -d "${APP_DIR}" ]; then
APP_DIR=`cd "${APP_DIR}"; pwd`
fi
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
if [ ! -f "$executable" ]
then
mvn clean package
mvn -B clean package
fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -l cwiki -o samples/documentation/cwiki"
ags="generate -t modules/openapi-generator/src/main/resources/confluenceWikiDocs -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g cwiki -o samples/documentation/cwiki $@"
java $JAVA_OPTS -jar $executable $ags

Some files were not shown because too many files have changed in this diff Show More