---
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 use 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 generator 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 Completable 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 requiredParams, 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-resteasy-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 listen at port 10080
* 7c2031675 update artifact 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 postProcessParameter 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
