--- id: release-3-0-0 title: Release Notes: 3.0.0 sidebar_label: Release Notes: 3.0.0 --- * ## Docker * 7dfd94002 Docker: use correct MAVEN_CONFIG (#182) * b5a0d173d Revise the usage of OpenAPI Generator online (docker image) (#73) * e58dc2c77 Fix COPY in Dockerfile (#64) * 9d7feaaeb Fix online generator (docker push) (#58) * 9247cd01e Changes for Docker * 64037ee59 update docker-related files to ues jdk8 * ## Plug-ins * b6b8c0db8 \[gradle-plugin] Initial implementation (#162) * 0a28aad73 \[MAVEN PLUGIN] Checking for null configOptions before looking for property * 9c79297d6 \[MAVEN PLUGIN] Use latest version in dependencies snippet * 9e1bbe0c1 Add maven wrapper * ## API Clients * ### Ada * edf6be8c0 \[Ada] bug fix by defining x-is-model-type when property is local to the YML file * 9ba74f484 \[Ada] Fix GNAT project and server skeleton to avoid sending a response when an error is returned * ea27924f5 \[Ada] changed default project/package name, to solve circular dependencies * 6b9d38d40 remove trailing spaces in ada template * 0de7f972f Fix the Ada server skeleton to check the authsMethods in the Shared_Instance generic package * 4bd8fc6e8 Fix 7511: \[Ada] Client call is not correct with multiple parameters and application/x-www-urlencoded * 3035bc629 \[Ada] Hotfix/ada model sort * 43f0e8692 Ada code generator corrected: "=>" instead of "->". * 7d2b49085 \[Ada] wrong order for generated structures in models.ads files * 2b2b85eec \[Ada] wrong JSON in POST operations * ### C# * 0e34bcf4e \[csharp] ctor params should always be camelCase * 872471996 \[csharp] Support arrays of arrays for properties and models * 1c4e6b7d4 \[csharp] Fix ToJson to work with composition and polymorphism * ed7af73f6 \[csharp] Reference this.Configuration in client API template * ### C++ * e796e4c36 \[C++] Add linux as a reserve keyword * 36f69a034 remove trailing spaces in qt5 c++ templates * f192613f1 fix string type in c++ generator * 409015461 fix file type in qt5cpp * a4bcb3bc7 fix datetime and map type for qt5cpp * 23b31aba8 \[qt5cpp] Fix crash when API return a map container * 3b031ed2b \[qt5cpp] delete callback data allocated before signal emission * 1bb1e44d1 \[qt5cpp] Remove qt5 pro.user file * 194722015 Qt5cpp plug memleaks part2 * 12f3661d6 Qt5cpp plug memleaks * ea4b94842 \[qt5cpp] Add nullptr guard to prevent crash when empty model is being serialized * 0bf430a80 Qt5cpp Add support for nested containers * 0b3ec6b1f fix NPE with cpp qt5, add logic to avoid NPE with composed schema * 7c734445b fix file parameter in header file (cpprest) * 070b5c00b fix object type declaration in cpprest * bad1885b4 \[cpprest] add parameterToString for number type with unspecified format (double) * 73bd24db7 \[cpprest] Add support for nested vectors * ee2eb74f7 \[qt] update Qt client * d82499944 Adding qt project generation fix * 9bd94b4db \[qt] Fix warning message * ### Clojure * d7e374504 \[Clojure] Add util method to set the api-context globally (#93) * ### Dart * f1638a659 \[Dart] Allow setting an accessToken for OAuth * a5e26a44f \[Dart] - Rework Dart client generator to be flutter-compatible * ### Elixir * f9b2839a3 \[Elixir] Check date value before calling to_iso8601 * ### Elm * 5a87fe695 \[elm] Fix operations with empty responses (#171) * a5cf27b60 Fix Petstore example for Elm (#96) * c522927d5 Fix Elm generator for polymorphism (#78) * 7d9fb9f51 Add CI test for Elm in travis (#40) * 769a65c95 \[Elm] Add support for array schemas * 56a0268e3 \[elm] missing '->' in Main elm template * ### Erlang * c73118524 \[erlang-client] Erlang request utils * 049eef9c5 Test erlang client, server petstore * bcc7b788e fix erlang client compilation error * ### Go * acb63fd5e Fix go readme, remove resty install * 5d8362d85 Update go client, fix double body read * 47614bb76 Properly capitalize exported go types * ee561fcd6 Add withXml option for Go language * 0f6696089 \[Go] Use consistent indentation in readme * 72abb20f2 \[Go] Fix operation files clobbering model files. \[2.4.0] * ### Haskell * 34db79b9b \[haskell-http-client] update dependency versions + readme (#81) * e45b3784f Fix NPE with Haskell client generator with OAS3 spec * d3401396f \[haskell-http-client] remove duplicates in produces/consumes; fix pathParam paramName issue * 4bc99b9da minor fixes to haskell http client generator * 2d0bafb6b \[haskell-http-client] default InlineMimeTypes=true * 9fba9c325 \[haskell-http-client] add config options: cabalPackage, cabalVersion, baseModule, requestType, configType * ### Kotlin * a3322fbf7 \[kotlin] Add OkHttpClient.Builder to ApiClient. * 3c5fb1d80 \[kotlin] Add json annotation to each enum value. * 39fa375e3 \[kotlin] Fix NPE for POST/PUT/PATCH with empty request models. * c599906f1 Kotlin: Correct data_class.mustache to use proper property for inner enum data type * c69925b53 \[Kotlin] Fix issues with threetenbp * a811a48c3 minor fix to kotlin client genrator due to merge conflict * 914275fe7 \[kotlin] support selection of datelibrary * a61d23265 Fixed incorrect renaming of header and query param to camel cases for Kotlin Client template * ### Lua * dbe78e23e \[Lua] Improve auto-generated test files * 6c79052ac Add auto-generated Lua spec files for APIs, models * 38a2c1dde \[Lua] Fix Rockpec * a2410b210 Add auto-generated rockspec file to Lua API client * df10c725a Add lua test script, minor fix to Lua API files * ### Java * 2e69e6c03 build.gradle should not have commas * 1a4e5a4e5 Java client: Add constants for libraries (#163) * 7db0201a8 Fix NPEs in Java generator (#154) * 4d7ff8cfb JavaDoc fixes for Java/RESTEasy client (#151) * 072ce070b resteasy: fix outer enum case (#139) * ccd002966 \[Java] rest-assured: fix javadoc in templates * e7410d4c8 Allow $ in java var name * 03490e923 Fix Java binary mapping * 70b4b55fa Fix performance linting problem with maps in Java ApiClient template * cddcda0fe \[Java][Jersey2] Make generated client code thread safe * 298ca8d35 use correct jackson date library when using Java 8 * 53eeb0c04 \[Java] fix connection leak on retrofit OAuth token renewal * 61c25e711 \[Java] Fixes for retrofit * f02332755 \[JAVA] 4709: codegen with parcelableMode fails to build if using arrays in swagger. * 4eeb974cb \[Java][google-api-client] Fix bug with empty POST request not sending content-type * d4543a99e \[Java][retrofit2] file upload sets filename as baseName instead of a dynamic filename * 62a930223 \[JAVA][Rest-assured] reqSpec() method has been added into api.mustache for requests custom… * fec0363f7 \[Java] Add back byte array enhancement * 59ff4c198 \[Java][library: vertx] Add default value and required parameter support to vertx server temp… * 3bd2da9a8 \[Java] Fix build warnings * 429b96ae7 \[JAVA] equals and hashCode for models with byte[] and binary strings * 495971c2c \[Java] use html entities in javadoc of generated code (#106) * 82ee8656f \[java] Enum in array of array (#66) * bf7e4e7df Java gson: add @SerializedName value as constant (#22) * 30c1448d7 Fix build.gradle for Java RESTEasy client * 642c0566d \[Java] Use Rx2 Completalbe for Void Retrofit2 responses * 72221b1cf Adding @Deprecated to retrofit2 client interfaces. * 47111b324 \[Java] fix gson deserialize format byte * 9e06f7063 \[Java] Fix assignment of new object instance to variable * 006f084b5 \[Java] Allow to set values with setApiPackage(..) and setModelPackage(..) * ### JavaScript/NodeJS * d80e29585 Fix JS test using baseName in default value (#5) * fe15f4690 fix toDefaultValueWithParam in JS * 90859575e Fixing variable name typo (instane -> instance) * ### Objective-C * 9fb2c29a4 7644 objc deprecated afnetworking datataskwithrequest * 5d1874028 add class as a keyword in objc generator * 1b8df5c20 Update ObjcClientCodegen.java * 246ed5754 restore objc reserved word: property * ### PHP * 3beeb4e77 \[PHP] Not-required properties now shows as nullable (#129) * 37df59d6f \[PHP] Adjust the names (script, sample folder, generator) to lang option (#159) * 4a5d16b23 \[PHP] Fix string length validation * d58835e57 \[PHP] Improve: Make validation strict * cf8d8d56f \[PHP] Fix code example from README. Variable name was missing when using Basic auth. * 0adbf7e51 \[PHP] Improve: update sample tests automatically * 32cf2f16f \[PHP] Non required enum property * 3bcf0ff76 \[PHP] Add path & file separator (/) to return the correct path when deserializing a file * 14e1e1980 \[PHP] Improve validation on empty arrays * 809e1f4c9 \[PHP] Cleanup tests * 76907cacd \[PHP] declare property headerSelector * ### Python * 7184f1ec6 \[python] asyncio supports _preload_content; remove unused imports (#107) * d74d2ba03 fix: python clients * 8e0a0ebd6 Fix python / tornado body handling * b39c35c76 Fix inconsistency between model name and file name in python client * dfbef4374 Fixed unicode error and supported allow_nonstandard_methods in tornado based python client * f6e0e297e \[python-asyncio] tests and fixes * ### R * 61e58d649 Add R namespace file * ### Ruby * a08164592 fix ruby parameters in documentation, fix reuqiredParams, optionalParams * 8e34f9a98 update to newer version of ruby * aa6b217bb \[Ruby] Add auto-generated rubocop config file * ### Rust * b44357394 \[Rust] Implement minimal auth support * 0b845a57e \[Rust] Changes hard coded body to dynamic parameter name - * a3c97753f \[Rust] Handles UUID as string * 027df610b \[Rust] Handle error response statuses * 66be7a791 \[Rust] Add user agent handling for rust template (master) * 3029b7b0f \[Rust] Format example with rustfmt * ### Scala * 197b4481e normalize akka-scala and Java README * 612cfb7af \[Akka-scala] Clean unused dependencies such swagger-core * 86697fedb \[Scala][Gatling] correct body params filename * 832919b84 \[Scala][Akka] Remove unused dep when model package is empty * ### Swift * 40d5d0990 \[Swift4] accept empty content with default client * 3b7230b17 \[Swift 4] Fix APIHelper to accept array parameter * e22faf4cd \[Swift] Add public initializer for modelObject. * b184fb1d9 \[Swift3] escape URL parameters * 52f606b8d Fix Swift3 test cases and add pom.xml, travis config for iOS test * a3d0f1d4b Swift4: make generated models structs instead of classes * ### TypeScript * f615d823f update ts node dependencies * 9ac9bc0dc \[TypeScript] enhance ts import * 009dcf009 Mark `not required` swagger properties as optional typescript properties * bdd2c2a4e Misc typescript Angular code generation improvements * 260375c9e Fix typescript-node generation of array type models * d1933b5fc Fix a problem in the generation of typescript-jquery when we have enum in a query param * 20305139b \[Feature][TypeScript] request param enum as literal unions * 524f162e6 Use supportsES6 flag in ts compilation for language typescript-angular * 9b8602311 \[TypeScript] Make OpenAPI Generator serialize subclasses properly (#102) * 4bc5ffe86 \[typescript-angular] add provided in support (#120) * ef832e715 \[Feature][TS Angular] improve docs angular import * fc7e08346 \[TS][Fetch] Add interfaces option * 157e6b7fa \[angular] Add option to generate tagged unions * 7faaa091c Fix generated module imports in Aurelia APIs * b5f0b24ba \[TS] fix object declaration in model * ## API Servers * ### C++ * 6fef0a7ff fix string issue with restbed generator * a339422bd move get type declaration method to c++ restbed * ### C# * d9d653016 \[aspnetcore] Make the use of Swashbuckle optional (#110) * 9a8183ab0 \[aspnetcore] Fix openapi.json location rename (#56) * 12abfb968 \[aspnetcore] Update Dockerfile * 866817587 \[aspnetcore] Fix string enum generation * ### Java * bd50d368e \[JAVA - jaxrs-reasteasy-eap] Add import to models (#179) * 7efda597c Fix issue with useBeanValidation option in Java server generators (#160) * 71b5de3ed Do not set contextPath for spring-boot (#104) * b73ab0260 jaxrs-cxf-cdi: fix outer enum (#131) * 4d7fc046f \[JaxRS] Add "validation-api" dependency in jetty (#30) * ce930e7a6 \[Jaxrs-cxf] Add bean-level cascaded beanvalidation for pojos (@Valid) * 386b9f432 Modify "postProcessOperations" for "jaxrs-cxf-client" * 5d92717dc update jaxrs to listent at port 10080 * 7c2031675 update artifict id for jaxrs datelib j8 * 88c5112f2 Adds support for returning response in jaxrs-spec interfaces * 6bf84d5fa \[JAXRS-SPEC] Fix lowercase enums sent as uppercase * 3a1922bc9 Fix version for "spring-boot-maven-plugin" (#85) * 161948657 Add reactive option for Spring Boot (webflux) * ff1178ad7 \[Java][Spring] fix missing optional query params * 2103fadab Fix package declaration for play-framework * 2c6380c84 fix inner item (list, map) for play framework * e33b350c8 Fix an issue in Play Framework generator where a CSV is empty and transferred to the controllerImp with an empty item. * 99fc27246 \[JAX-RS][Spec] Removes throws Exception. * fe2a44339 Fixes issue (SpringCodeGen dateLibrary "java8-localdatetime" option is ignored). * d890d733f \[JaxRS][Java] issue with implFolder on windows, and required fields generation for containers (#88) * c91ce17ae Feature/javaPlayWithAsynchronousControllers * f00a1ef52 \[JAVA] Correct consumes/produces attributes for Spring Controllers * d14318cf2 \[JAVA][Spring] Optional params with delegate * 3f81378d7 \[java resteasy] fix string comparison (#134) * 5ea3d3bb1 \[JAX-RS][SPEC] Bug fix that prevents generating interfaces when interfaceOnly is false. * ### Kotlin * 7cad47dd3 \[kotlin-server] --library=ktor (barebones implementation) * 752b36e66 \[Kotlin] Sanitize enumeration name to add underscore when it starts with digits (#77) * ### NodeJS * 6d88d073c \[NodeJS] make serverPort configurable via CLI option * e7f4fb3c4 Fix nodejs-server path issue in windows platform * ### PHP * d30fcbabb Fixes for php-ze-ph generator * 60e3339aa \[Feature][PHP] Update for ze-ph generator * ### Python * 62b93fc5c \[Python][Flask] Handles UUID format - * 9999eac52 fix python flask parameter naming * ### Scala * d5c355a59 \[Scalatra] Updated the version of Scalatra to the latest (2.6.2) * 52322c47c \[finch] Allow finch server to compile for CI checks (#7) * ### Ruby * dcad9ae80 \[Rails5] make version of the generated Rails stub server to strict Rails 5.0 * ### Rust * 37faaf926 \[rust-server] API version constant and composite version support * 6c7813e79 \[rust-server] asynchronous support via hyper v0.11 * ## Documentation * 25a6a9d44 html: fix typo in class name * ## Miscellaneous * f04213285 Cli error message improvements (#172) * 0ece706a4 Remove CodegenConfig.fromModel(String, Schema) method (#90) * 64f2bea37 Fix getReferenced...() methods in ModelUtils (#157) * 16ff5174e Update swagger-parser to 2.0.1 (#123) * 76b7307a6 DefaultGenerator: ignore only form param schemas (#74) * a3aabd390 Create a default implementation of delegate if none could be autowired (#92) * ca89af808 Switch to Java 8 * 27426f7b5 Cli generator name option, replaces 'language' options in CLI and Maven Plugin (#57) * a1ff50241 Rename datatype to dataType in CodegenProperty (#69) * 3b9a2a7c3 CaseFormatLambda has been added, params for Rest-assured client has been refactored (#91) * 488910362 Set parameters allowableValues dynamically (#65) * 2821f18b9 Meta: set version for "build-helper-maven-plugin" (#89) * 82d9e935e Add CORS configuration to openapi-generator-online (#71) * e3814f51d Improvements to online codegen (#55) * 6b8079808 Consider minLength, maxLength and pattern in referenced schema (#45) * 7c5dfbfa0 Minor improvements to OpenAPI Generator Online (#54) * 8dd46a3fb Move online gen from jersey to spring boot (#44) * 803821e21 Fix an issue with example generator when array is too large (#46) * 673f2bc46 Add CodegenProperty.nameInSnakeCase (#42) * 67ebe17dd Fix isPrimitiveType flag for array of form parameters (#38) * 10ac4024d Code clean-up: remove field declaration hiding existing fields (#35) * ab9c4b5a6 Code clean-up: Add own private static final LOGGER in each class (#26) * 41b0ff351 Code clean-up: remove DefaultCodegen#getSimpleRef(String) (#19) * 13f084e7b Fix dataTypeWithEnum for array of form parameters * fd3b883e8 \[DefaultCodegen] Fill CodegenOperation::produces with unique media types * db9a899a0 update getSchemaType variable, remove unused import * d74b4cdf8 fix map type and collection format for form parameter (array) * d99f46cff Revise how to obtain the example value * b1eac05b2 Fix form datatype (array of string) * 3c666a6d4 Fix array of form parameters * 1492df6ce Override server port for Jetty configuration * 622a75b2c Fix data type shadowing * 861d11d01 use vendor extension in operation to set the body parameter name * 80c8b92cb add postProcessParamter for body, form parameter * 7fe555a51 Set collectionFormat default only for array * 16589de97 default collection format to csv according to the spec * edbe4902a Consider '$ref' for consumes and produces in CodegenOperation * e24238a35 Improve getter name handling for boolean properties * 6e2ca294b update discriminator to discriminatorName * 74075c087 Primitive datatype in Schema components * d8abd4a14 support map in body parameter * 186594115 Update swagger-core to 2.0.1 * 2034f61e5 Add HideGenerationTimestamp getter and setter in the CodegenConfig interface * d0e2d7684 Getter and Setter for hideGenerationTimestamp * adbde2fb6 replace fromOperation with postProcessOperations * 9d1ae0dd2 fix bigdecimal in default codegen * ffa0e115d fix default value and type declaration * 0e744adb8 Apply collection format to SIMPLE enum style * 36ed29852 Tweak tests according to the parameter order changes * 17b082793 Move 'enum_query_double' to parameters section * 28fcf48f4 Add a method returns discriminator name * 7daa2ec5d Fix broken discriminator * faa901640 Replace with the helper function: `getTypeDeclaration` * c8650d0e3 Make optional properties in models optional parameters * 40c30dd2f Fix inputSpec for multi module builds * 5326152cc add option to reorder form/body parameter * d1850091a Improve JMeter Template * fedfb0cda Factorize addOption/addSwitch method * e73eeb4fd fix for stripping prefix on single enums * 13e3db59e Add operationIdOriginal to store the original operationId * 0b2d80569 Expose getter/setter for serverPort to facilitate testing * 8e270f465 add vendorExtensions field in CodegenSecurity class * 1ee85de94 Added Intelli J ignore * 7b8e409cf Added gitignore generation function