Compare commits

..

1 Commits

Author SHA1 Message Date
William Cheng
3065b4cbd9 gradle plugin 7.14.0 release 2025-06-25 21:20:00 +08:00
8998 changed files with 18464 additions and 107214 deletions

View File

@@ -71,7 +71,6 @@ jobs:
- samples/client/petstore/java/microprofile-rest-client-mutiny
- samples/client/petstore/java/microprofile-rest-client-3.0
- samples/client/petstore/java/microprofile-rest-client-3.0-jackson
- samples/client/petstore/java/microprofile-rest-client-3.0-jackson-mutiny
- samples/client/petstore/java/microprofile-rest-client-3.0-jackson-with-xml
- samples/client/petstore/java/microprofile-rest-client-3.0-mutiny
- samples/client/petstore/java/microprofile-rest-client-with-useSingleRequestParameter
@@ -134,4 +133,4 @@ jobs:
- name: Build with Gradle
working-directory: ${{ matrix.sample }}
if: ${{ hashFiles('./gradlew') != '' }}
run: ./gradlew build -x test
run: ./gradlew build -x test

View File

@@ -26,54 +26,12 @@ jobs:
- samples/client/others/rust/
- samples/client/petstore/rust/
- samples/server/petstore/rust-server/
- samples/server/petstore/rust-server-deprecated/
- samples/server/petstore/rust-axum/
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-targets: false # Don't cache workspace target directories as they don't exist
cache-directories:
${{ matrix.sample }}/target
workspaces: |
${{ matrix.sample }}/output/*
- name: Build
working-directory: ${{ matrix.sample }}
run: cargo build --all-targets --all-features
- name: Tests
working-directory: ${{ matrix.sample }}
run: |
set -e
# Skip samples/client/petstore/rust/ as it's tests are failing.
if [[ "${{ matrix.sample }}" == "samples/client/petstore/rust/" ]]; then
echo "Skipping tests for samples/client/petstore/rust/"
exit 0
fi
# Iterate through each example and test various features
for package in $(find . -maxdepth 1 -mindepth 1 -type d)
do
# Not all versions have a client example
if test -f examples/client/main.rs; then
cargo build --example client --features="client"
fi
# Not all versions have a server example
if test -f examples/server/main.rs; then
cargo build --example server --features="server"
fi
# Test the CLI works if present
if test -f bin/cli.rs; then
cargo build --bin ${package##*/} --features cli
target/debug/${package##*/} --help
fi
cargo fmt
cargo test
cargo clippy
cargo doc
done

View File

@@ -10,7 +10,6 @@ on:
- samples/server/petstore/springboot-lombok-tostring
- samples/server/petstore/springboot-file-delegate-optional
- samples/server/petstore/springboot-petstore-with-api-response-examples
- samples/server/petstore/spring-boot-oneof-sealed
pull_request:
paths:
- samples/openapi3/client/petstore/spring-cloud-3-with-optional
@@ -20,7 +19,6 @@ on:
- samples/server/petstore/springboot-lombok-tostring
- samples/server/petstore/springboot-file-delegate-optional
- samples/server/petstore/springboot-petstore-with-api-response-examples
- samples/server/petstore/spring-boot-oneof-sealed
jobs:
build:
name: Build Java Spring (JDK17)
@@ -38,7 +36,6 @@ jobs:
- samples/server/petstore/springboot-lombok-tostring
- samples/server/petstore/springboot-file-delegate-optional
- samples/server/petstore/springboot-petstore-with-api-response-examples
- samples/server/petstore/spring-boot-oneof-sealed
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4

View File

@@ -122,6 +122,8 @@ before_install:
- cat /etc/hosts
# show java version
- java -version
- export TRAVIS_BRANCH=master
- export TRAVIS_TAG=v7.14.0
- 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 ;
@@ -141,25 +143,6 @@ script:
after_success:
# push to maven repo
- if [ $SONATYPE_USERNAME ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
if [ "$TRAVIS_BRANCH" = "master" ] && [ -z $TRAVIS_TAG ]; then
echo "Publishing from branch $TRAVIS_BRANCH";
./mvnw clean deploy --quiet -DskipTests=true -B -U -P release --settings CI/settings.xml -Dorg.slf4j.simpleLogger.defaultLogLevel=error;
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}" publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository;
echo "Finished ./gradlew publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository";
popd;
elif [ -z $TRAVIS_TAG ] && [[ "$TRAVIS_BRANCH" =~ ^[0-9]+\.[0-9]+\.x$ ]]; then
echo "Publishing from branch $TRAVIS_BRANCH";
./mvnw clean deploy --quiet --settings CI/settings.xml -Dorg.slf4j.simpleLogger.defaultLogLevel=error;
echo "Finished mvn clean deploy for $TRAVIS_BRANCH";
pushd .;
cd modules/openapi-generator-gradle-plugin;
./gradlew -PossrhUsername="${SONATYPE_USERNAME}" -PossrhPassword="${SONATYPE_PASSWORD}" publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository;
echo "Finished ./gradlew publishPluginMavenPublicationToSonatypeRepository closeAndReleaseSonatypeStagingRepository";
popd;
fi;
if [ -n $TRAVIS_TAG ] && [[ "$TRAVIS_TAG" =~ ^[v][0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Publishing the gradle plugin to Gradle Portal on tag $TRAVIS_TAG (only)";
pushd .;

View File

@@ -15,7 +15,7 @@
<div align="center">
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`7.15.0`):
[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`7.14.0`):
[![Build Status](https://api.travis-ci.com/OpenAPITools/openapi-generator.svg?branch=master&status=passed)](https://app.travis-ci.com/github/OpenAPITools/openapi-generator/builds)
[![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator)
[![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=master&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator)
@@ -76,7 +76,6 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
[<img src="https://openapi-generator.tech/img/companies/clickit.jpg" width="128" height="128">](https://www.clickittech.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
[<img src="https://openapi-generator.tech/img/companies/unified_to.jpg" width="128" height="128">](https://unified.to/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
[<img src="https://openapi-generator.tech/img/companies/savetwt.jpg" width="128" height="128">](https://savetwt.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
[<img src="https://openapi-generator.tech/img/companies/serpapi.png" width="128" height="128">](https://serpapi.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS, Checkly for sponsoring the API monitoring and Gradle for sponsoring Develocity
@@ -150,8 +149,8 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
| OpenAPI Generator Version | Release Date | Notes |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------- |
| 7.15.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.15.0-SNAPSHOT/) | 29.07.2025 | Minor release with breaking changes (with fallback) |
| [7.14.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.14.0) (latest stable release) | 25.06.2025 | Minor release with breaking changes (with fallback) |
| 7.14.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/7.14.0-SNAPSHOT/) | 29.05.2025 | Minor release with breaking changes (with fallback) |
| [7.13.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v7.13.0) (latest stable release) | 27.04.2025 | Minor release with breaking changes (with fallback) |
| [6.6.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v6.6.0) | 11.05.2023 | Minor release with breaking changes (with fallback) |
| [5.4.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v5.4.0) | 31.01.2022 | Minor release with breaking changes (with fallback) |
| [4.3.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v4.3.1) | 06.05.2020 | Patch release (enhancements, bug fixes, etc) |
@@ -214,16 +213,16 @@ See the different versions of the [openapi-generator-cli](https://search.maven.o
<!-- RELEASE_VERSION -->
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 11 runtime at a minimum):
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar`
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.13.0/openapi-generator-cli-7.13.0.jar`
For **Mac/Linux** users:
```sh
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar -O openapi-generator-cli.jar
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.13.0/openapi-generator-cli-7.13.0.jar -O openapi-generator-cli.jar
```
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
```
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.13.0/openapi-generator-cli-7.13.0.jar
```
After downloading the JAR, run `java -jar openapi-generator-cli.jar help` to show the usage.
@@ -458,7 +457,7 @@ openapi-generator-cli version
To use a specific version of "openapi-generator-cli"
```sh
openapi-generator-cli version-manager set 7.14.0
openapi-generator-cli version-manager set 7.13.0
```
Or install it as dev-dependency:
@@ -482,7 +481,7 @@ pip install openapi-generator-cli
To install a specific version
```
pip install openapi-generator-cli==7.14.0
pip install openapi-generator-cli==7.13.0
```
You can also install with [jdk4py](https://github.com/activeviam/jdk4py) instead of java binary. (python>=3.10 is required)
@@ -508,7 +507,7 @@ java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generat
(if you're on Windows, replace the last command with `java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -o c:\temp\php_api_client`)
<!-- RELEASE_VERSION -->
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar)
You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.13.0/openapi-generator-cli-7.13.0.jar)
<!-- /RELEASE_VERSION -->
To get a list of **general** options available, please run `java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate`

View File

@@ -1,8 +0,0 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/binary_response
inputSpec: modules/openapi-generator/src/test/resources/3_0/issue_20682.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
additionalProperties:
hideGenerationTimestamp: "true"
enumUnknownDefaultCase: "true"
serializationLibrary: "json_serializable"

View File

@@ -1,6 +1,6 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable
inputSpec: modules/openapi-generator/src/test/resources/3_0/dart/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"

View File

@@ -1,6 +1,6 @@
generatorName: dart-dio
outputDir: samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake
inputSpec: modules/openapi-generator/src/test/resources/3_0/dart/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
typeMappings:
Client: "ModelClient"

View File

@@ -1,6 +1,6 @@
generatorName: dart
outputDir: samples/openapi3/client/petstore/dart2/petstore_client_lib_fake
inputSpec: modules/openapi-generator/src/test/resources/3_0/dart/petstore-with-fake-endpoints-models-for-testing.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/dart2
typeMappings:
Client: "ModelClient"

View File

@@ -1,12 +0,0 @@
generatorName: java
outputDir: samples/client/petstore/java/microprofile-rest-client-3.0-jackson-mutiny
library: microprofile
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/Java
additionalProperties:
serializationLibrary: jackson
artifactId: microprofile-rest-client-3-jackson-mutiny
configKey: petstore
microprofileRestClientVersion: "3.0"
microprofileMutiny: true
hideGenerationTimestamp: true

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/multipart-v3
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/multipart-v3.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: multipart-v3

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/no-example-v3
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/no-example-v3.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: no-example-v3

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/openapi-v3
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/openapi-v3.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: openapi-v3

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/ops-v3
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/ops-v3.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: ops-v3

View File

@@ -1,9 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/petstore-with-fake-endpoints-models-for-testing
inputSpec: modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: petstore-with-fake-endpoints-models-for-testing
publishRustRegistry: crates-io

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/ping-bearer-auth
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/ping-bearer-auth.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: ping-bearer-auth

View File

@@ -1,8 +0,0 @@
generatorName: rust-server-deprecated
outputDir: samples/server/petstore/rust-server-deprecated/output/rust-server-test
inputSpec: modules/openapi-generator/src/test/resources/2_0/rust-server/rust-server-test.yaml
templateDir: modules/openapi-generator/src/main/resources/rust-server-deprecated
generateAliasAsModel: true
additionalProperties:
hideGenerationTimestamp: "true"
packageName: rust-server-test

View File

@@ -1,6 +1,6 @@
generatorName: scala-http4s-server
outputDir: samples/server/petstore/scala-http4s-server
inputSpec: modules/openapi-generator/src/test/resources/3_0/scala-http4s-server/petstore.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/scala-http4s-server
additionalProperties:
artifactId: openapi-scala-http4s-server
artifactId: openapi-scala-http4s-server

View File

@@ -1,13 +0,0 @@
generatorName: spring
outputDir: samples/openapi3/server/petstore/spring-boot-oneof-sealed
inputSpec: modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml
templateDir: modules/openapi-generator/src/main/resources/JavaSpring
additionalProperties:
groupId: org.openapitools.openapi3
documentationProvider: springdoc
artifactId: springboot-oneof-sealed
snapshotVersion: "true"
hideGenerationTimestamp: "true"
generateBuilders: true
useOneOfInterfaces: true
useSealed: true

View File

@@ -1,6 +1,6 @@
generatorName: typescript
outputDir: samples/client/echo_api/typescript/build
inputSpec: modules/openapi-generator/src/test/resources/3_0/typescript/echo_api.yaml
inputSpec: modules/openapi-generator/src/test/resources/3_0/echo_api.yaml
templateDir: modules/openapi-generator/src/main/resources/typescript
additionalProperties:
artifactId: echo-api-typescript

View File

@@ -142,7 +142,6 @@ The following generators are available:
* [ruby-sinatra](generators/ruby-sinatra.md)
* [rust-axum (beta)](generators/rust-axum.md)
* [rust-server](generators/rust-server.md)
* [rust-server-deprecated](generators/rust-server-deprecated.md)
* [scala-akka-http-server (beta)](generators/scala-akka-http-server.md)
* [scala-cask](generators/scala-cask.md)
* [scala-finch](generators/scala-finch.md)

View File

@@ -58,7 +58,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
|generateBuilders|Whether to generate builders for models| |false|
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
|generateGenericResponseEntity|Use a generic type for the `ResponseEntity` wrapping return values of generated API methods. If enabled, method are generated with return type ResponseEntity&lt;?&gt;| |false|
|generatedConstructorWithRequiredArgs|Whether to generate constructors with required args for models| |true|
|groupId|groupId in generated pom.xml| |org.openapitools|
|hateoas|Use Spring HATEOAS library to allow adding HATEOAS links| |false|

View File

@@ -1,232 +0,0 @@
---
title: Documentation for the rust-server-deprecated Generator
---
## METADATA
| Property | Value | Notes |
| -------- | ----- | ----- |
| generator name | rust-server-deprecated | pass this to the generate command after -g |
| generator stability | STABLE | |
| generator type | SERVER | |
| generator language | Rust | |
| generator default templating engine | mustache | |
| helpTxt | Generates a Rust Hyper/Tower server library based on hyper 0.14. Also generates a matching Hyper client library within the same crate that implements the same trait. | |
## CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|packageName|Rust crate name (convention: snake_case).| |openapi_client|
|packageVersion|Rust crate version.| |null|
## IMPORT MAPPING
| Type/Alias | Imports |
| ---------- | ------- |
## INSTANTIATION TYPES
| Type/Alias | Instantiated By |
| ---------- | --------------- |
|array|Vec|
|map|std::collections::HashMap|
## LANGUAGE PRIMITIVES
<ul class="column-ul">
<li>String</li>
<li>bool</li>
<li>char</li>
<li>f32</li>
<li>f64</li>
<li>i16</li>
<li>i32</li>
<li>i64</li>
<li>i8</li>
<li>isize</li>
<li>str</li>
<li>u16</li>
<li>u32</li>
<li>u64</li>
<li>u8</li>
<li>usize</li>
</ul>
## RESERVED WORDS
<ul class="column-ul">
<li>Self</li>
<li>abstract</li>
<li>as</li>
<li>async</li>
<li>await</li>
<li>become</li>
<li>box</li>
<li>break</li>
<li>const</li>
<li>continue</li>
<li>crate</li>
<li>do</li>
<li>dyn</li>
<li>else</li>
<li>enum</li>
<li>extern</li>
<li>false</li>
<li>final</li>
<li>fn</li>
<li>for</li>
<li>if</li>
<li>impl</li>
<li>in</li>
<li>let</li>
<li>loop</li>
<li>macro</li>
<li>match</li>
<li>mod</li>
<li>move</li>
<li>mut</li>
<li>override</li>
<li>priv</li>
<li>pub</li>
<li>ref</li>
<li>return</li>
<li>self</li>
<li>static</li>
<li>struct</li>
<li>super</li>
<li>trait</li>
<li>true</li>
<li>try</li>
<li>type</li>
<li>typeof</li>
<li>unsafe</li>
<li>unsized</li>
<li>use</li>
<li>virtual</li>
<li>where</li>
<li>while</li>
<li>yield</li>
</ul>
## FEATURE SET
### Client Modification Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasePath|✓|ToolingExtension
|Authorizations|✗|ToolingExtension
|UserAgent|✗|ToolingExtension
|MockServer|✗|ToolingExtension
### Data Type Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Custom|✗|OAS2,OAS3
|Int32|✓|OAS2,OAS3
|Int64|✓|OAS2,OAS3
|Float|✓|OAS2,OAS3
|Double|✓|OAS2,OAS3
|Decimal|✓|ToolingExtension
|String|✓|OAS2,OAS3
|Byte|✓|OAS2,OAS3
|Binary|✓|OAS2,OAS3
|Boolean|✓|OAS2,OAS3
|Date|✓|OAS2,OAS3
|DateTime|✓|OAS2,OAS3
|Password|✓|OAS2,OAS3
|File|✓|OAS2
|Uuid|✗|
|Array|✓|OAS2,OAS3
|Null|✗|OAS3
|AnyType|✗|OAS2,OAS3
|Object|✓|OAS2,OAS3
|Maps|✓|ToolingExtension
|CollectionFormat|✓|OAS2
|CollectionFormatMulti|✓|OAS2
|Enum|✓|OAS2,OAS3
|ArrayOfEnum|✓|ToolingExtension
|ArrayOfModel|✓|ToolingExtension
|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
|ArrayOfCollectionOfModel|✓|ToolingExtension
|ArrayOfCollectionOfEnum|✓|ToolingExtension
|MapOfEnum|✓|ToolingExtension
|MapOfModel|✓|ToolingExtension
|MapOfCollectionOfPrimitives|✓|ToolingExtension
|MapOfCollectionOfModel|✓|ToolingExtension
|MapOfCollectionOfEnum|✓|ToolingExtension
### Documentation Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Readme|✓|ToolingExtension
|Model|✓|ToolingExtension
|Api|✓|ToolingExtension
### Global Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Host|✓|OAS2,OAS3
|BasePath|✓|OAS2,OAS3
|Info|✓|OAS2,OAS3
|Schemes|✗|OAS2,OAS3
|PartialSchemes|✓|OAS2,OAS3
|Consumes|✓|OAS2
|Produces|✓|OAS2
|ExternalDocumentation|✓|OAS2,OAS3
|Examples|✓|OAS2,OAS3
|XMLStructureDefinitions|✗|OAS2,OAS3
|MultiServer|✗|OAS3
|ParameterizedServer|✗|OAS3
|ParameterStyling|✗|OAS3
|Callbacks|✓|OAS3
|LinkObjects|✗|OAS3
### Parameter Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Path|✓|OAS2,OAS3
|Query|✓|OAS2,OAS3
|Header|✓|OAS2,OAS3
|Body|✓|OAS2
|FormUnencoded|✓|OAS2
|FormMultipart|✓|OAS2
|Cookie|✗|OAS3
### Schema Support Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Simple|✓|OAS2,OAS3
|Composite|✓|OAS2,OAS3
|Polymorphism|✗|OAS2,OAS3
|Union|✗|OAS3
|allOf|✗|OAS2,OAS3
|anyOf|✗|OAS3
|oneOf|✗|OAS3
|not|✗|OAS3
### Security Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasicAuth|✓|OAS2,OAS3
|ApiKey|✓|OAS2,OAS3
|OpenIDConnect|✗|OAS3
|BearerToken|✓|OAS3
|OAuth2_Implicit|✓|OAS2,OAS3
|OAuth2_Password|✗|OAS2,OAS3
|OAuth2_ClientCredentials|✗|OAS2,OAS3
|OAuth2_AuthorizationCode|✗|OAS2,OAS3
|SignatureAuth|✗|OAS3
|AWSV4Signature|✗|ToolingExtension
### Wire Format Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|JSON|✓|OAS2,OAS3
|XML|✓|OAS2,OAS3
|PROTOBUF|✗|ToolingExtension
|Custom|✓|OAS2,OAS3

View File

@@ -51,7 +51,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
|generateBuilders|Whether to generate builders for models| |false|
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
|generateGenericResponseEntity|Use a generic type for the `ResponseEntity` wrapping return values of generated API methods. If enabled, method are generated with return type ResponseEntity&lt;?&gt;| |false|
|generatedConstructorWithRequiredArgs|Whether to generate constructors with required args for models| |true|
|groupId|groupId in generated pom.xml| |org.openapitools|
|hateoas|Use Spring HATEOAS library to allow adding HATEOAS links| |false|

View File

@@ -75,42 +75,20 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Blob</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -55,41 +55,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -66,41 +66,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -66,41 +66,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -60,42 +60,20 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Blob</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -57,41 +57,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -66,42 +66,20 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Blob</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -56,45 +56,23 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Buffer</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>ReadStream</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>RequestDetailedFile</li>
<li>RequestFile</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -58,41 +58,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -57,42 +57,20 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Blob</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -63,41 +63,19 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<ul class="column-ul">
<li>Array</li>
<li>Awaited</li>
<li>Boolean</li>
<li>Capitalize</li>
<li>ConstructorParameters</li>
<li>Date</li>
<li>Double</li>
<li>Error</li>
<li>Exclude</li>
<li>Extract</li>
<li>File</li>
<li>Float</li>
<li>InstanceType</li>
<li>Integer</li>
<li>Long</li>
<li>Lowercase</li>
<li>Map</li>
<li>NoInfer</li>
<li>NonNullable</li>
<li>Object</li>
<li>Omit</li>
<li>OmitThisParameter</li>
<li>Parameters</li>
<li>Partial</li>
<li>Pick</li>
<li>Readonly</li>
<li>ReadonlyArray</li>
<li>Record</li>
<li>Required</li>
<li>ReturnType</li>
<li>Set</li>
<li>String</li>
<li>ThisParameterType</li>
<li>ThisType</li>
<li>Uncapitalize</li>
<li>Uppercase</li>
<li>any</li>
<li>boolean</li>
<li>number</li>

View File

@@ -22,7 +22,7 @@ npm install @openapitools/openapi-generator-cli -g
To install a specific version of the tool, pass the version during installation:
<!-- RELEASE_VERSION -->
```bash
openapi-generator-cli version-manager set 7.14.0
openapi-generator-cli version-manager set 7.12.0
```
<!-- /RELEASE_VERSION -->
To install the tool as a dev dependency in your current project:
@@ -119,18 +119,18 @@ docker run --rm \
<!-- RELEASE_VERSION -->
If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 11 runtime at a minimum):
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar`
JAR location: `https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar`
For **Mac/Linux** users:
```bash
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar -O openapi-generator-cli.jar
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar -O openapi-generator-cli.jar
```
For **Windows** users, you will need to install [wget](http://gnuwin32.sourceforge.net/packages/wget.htm) or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.
```powershell
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.14.0/openapi-generator-cli-7.14.0.jar
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.12.0/openapi-generator-cli-7.12.0.jar
```
<!-- /RELEASE_VERSION -->

View File

@@ -16,7 +16,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>7.14.0</version>
<version>7.12.0</version>
<executions>
<execution>
<goals>

View File

@@ -4,7 +4,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-project</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@@ -162,7 +162,7 @@ public class Generate extends OpenApiGeneratorCommand {
@Option(
name = {"--openapi-generator-ignore-list"},
title = ".openapi-generator-ignore list",
title = ".openapi-generaotr-ignore list",
description = "specifies entries in the .openapi-generator-ignore file relative/path/to/file1,relative/path/to/file2. For example: README.md,pom.xml"
+ " You can also have multiple occurrences of this option.")
private List<String> openapiGeneratorIgnoreList = new ArrayList<>();

View File

@@ -6,7 +6,7 @@
<artifactId>openapi-generator-project</artifactId>
<groupId>org.openapitools</groupId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@@ -97,7 +97,7 @@ task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.Valid
[source,group]
----
plugins {
id "org.openapi.generator" version "7.14.0"
id "org.openapi.generator" version "7.12.0"
}
----
@@ -113,7 +113,7 @@ buildscript {
// url "https://plugins.gradle.org/m2/"
}
dependencies {
classpath "org.openapitools:openapi-generator-gradle-plugin:7.14.0"
classpath "org.openapitools:openapi-generator-gradle-plugin:7.10.0"
}
}
@@ -759,7 +759,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath('org.openapitools:openapi-generator-gradle-plugin:7.14.0') {
classpath('org.openapitools:openapi-generator-gradle-plugin:7.10.0') {
exclude group: 'com.google.guava'
}
}

View File

@@ -1,5 +1,5 @@
# RELEASE_VERSION
openApiGeneratorVersion=7.15.0-SNAPSHOT
openApiGeneratorVersion=7.14.0
# /RELEASE_VERSION
# BEGIN placeholders

View File

@@ -4,7 +4,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-project</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -93,11 +93,9 @@
<gradleVersion>${gradleVersion}</gradleVersion>
<args>
<arg>-P openApiGeneratorVersion=${project.version}</arg>
<!--
<arg>-Psigning.keyId=${env.SIGNING_KEY}</arg>
<arg>-Psigning.password=${env.SIGNING_PASSPHRASE}</arg>
<arg>-Psigning.secretKeyRingFile=${env.TRAVIS_BUILD_DIR}/sec.gpg</arg>
-->
</args>
</configuration>
<executions>

View File

@@ -19,5 +19,5 @@ gradle generateGoWithInvalidSpec # expected outcome: BUILD FAILED
The samples can be tested against other versions of the plugin using the `openApiGeneratorVersion` property. For example:
```bash
gradle -PopenApiGeneratorVersion=7.14.0 openApiValidate
gradle -PopenApiGeneratorVersion=7.12.0 openApiValidate
```

View File

@@ -1,3 +1,3 @@
# RELEASE_VERSION
openApiGeneratorVersion=7.15.0-SNAPSHOT
openApiGeneratorVersion=7.14.0
# /RELEASE_VERSION

View File

@@ -12,7 +12,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.14.0</version>
<version>7.12.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -13,7 +13,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -15,7 +15,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -19,7 +19,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<dependencies>
<dependency>

View File

@@ -13,7 +13,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -13,7 +13,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -20,7 +20,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>

View File

@@ -5,7 +5,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-project</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@@ -4,7 +4,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-project</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@@ -4,7 +4,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-project</artifactId>
<!-- RELEASE_VERSION -->
<version>7.15.0-SNAPSHOT</version>
<version>7.14.0</version>
<!-- /RELEASE_VERSION -->
<relativePath>../../pom.xml</relativePath>
</parent>

View File

@@ -54,7 +54,6 @@ import org.openapitools.codegen.examples.ExampleGenerator;
import org.openapitools.codegen.languages.PhpNextgenClientCodegen;
import org.openapitools.codegen.languages.RustAxumServerCodegen;
import org.openapitools.codegen.languages.RustServerCodegen;
import org.openapitools.codegen.languages.RustServerCodegenDeprecated;
import org.openapitools.codegen.meta.FeatureSet;
import org.openapitools.codegen.meta.GeneratorMetadata;
import org.openapitools.codegen.meta.Stability;
@@ -3682,8 +3681,7 @@ public class DefaultCodegen implements CodegenConfig {
if (ModelUtils.isComposedSchema(schema) && !this.getLegacyDiscriminatorBehavior()) {
List<MappedModel> otherDescendants = getOneOfAnyOfDescendants(schemaName, discriminatorPropertyName, schema);
for (MappedModel otherDescendant : otherDescendants) {
// add only if the model names are not the same
if (uniqueDescendants.stream().map(MappedModel::getModelName).noneMatch(it -> it.equals(otherDescendant.getModelName()))) {
if (!uniqueDescendants.contains(otherDescendant)) {
uniqueDescendants.add(otherDescendant);
}
}
@@ -5330,7 +5328,7 @@ public class DefaultCodegen implements CodegenConfig {
parameterSchema = unaliasSchema(parameter.getSchema());
parameterModelName = getParameterDataType(parameter, parameterSchema);
CodegenProperty prop;
if (this instanceof RustServerCodegen || this instanceof RustServerCodegenDeprecated) {
if (this instanceof RustServerCodegen) {
// for rust server, we need to do something special as it uses
// $ref (e.g. #components/schemas/Pet) to determine whether it's a model
prop = fromProperty(parameter.getName(), parameterSchema, false);

View File

@@ -572,7 +572,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
if (value.isEmpty()) {
modified = "EMPTY";
} else {
modified = value.replaceAll("-", "_");
modified = value;
modified = sanitizeKotlinSpecificNames(modified);
}

View File

@@ -183,8 +183,8 @@ public abstract class AbstractRustCodegen extends DefaultCodegen implements Code
throw new IllegalArgumentException("Unknown CasingType");
}
// Replace hyphens and periods with underscores
name = name.replaceAll("[\\.\\-]", "_");
// Replace hyphens with underscores
name = name.replaceAll("-", "_");
// Apply special character escapes, e.g. "@type" => "At_type"
// Remove the trailing underscore if necessary

View File

@@ -304,14 +304,6 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
// Typescript reserved words
"abstract", "await", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "debugger", "default", "delete", "do", "double", "else", "enum", "export", "extends", "false", "final", "finally", "float", "for", "function", "goto", "if", "implements", "import", "in", "instanceof", "int", "interface", "let", "long", "native", "new", "null", "package", "private", "protected", "public", "return", "short", "static", "super", "switch", "synchronized", "this", "throw", "transient", "true", "try", "typeof", "var", "void", "volatile", "while", "with", "yield"));
Set<String> utilityTypes = new HashSet<>(Arrays.asList(
"Awaited","Partial","Required","Readonly","Record","Pick","Omit","Exclude","Extract","NonNullable",
"Parameters","ConstructorParameters","ReturnType","InstanceType","NoInfer","ThisParameterType",
"OmitThisParameter","ThisType","Uppercase","Lowercase","Capitalize","Uncapitalize")
);
defaultIncludes = new HashSet<>();
defaultIncludes.addAll(utilityTypes);
languageSpecificPrimitives = new HashSet<>(Arrays.asList(
"string",
"String",
@@ -333,7 +325,6 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
"object",
"Set"
));
languageSpecificPrimitives.addAll(utilityTypes);
languageGenericTypes = new HashSet<>(Collections.singletonList(
"Array"
@@ -814,8 +805,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
return openAPIType;
} else if (typeMapping.containsKey(openAPIType)) {
type = typeMapping.get(openAPIType);
String typeWithoutGeneric = typeWithoutGeneric(type);
if (languageSpecificPrimitives.contains(typeWithoutGeneric)) {
if (languageSpecificPrimitives.contains(type)) {
return type;
}
} else {
@@ -1167,16 +1157,6 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
}).distinct().collect(Collectors.toList());
}
@Override
protected boolean needToImport(String type) {
return super.needToImport(typeWithoutGeneric(type));
}
private String typeWithoutGeneric(String type) {
int genericIndex = type.indexOf("<");
return genericIndex == -1 ? type : type.substring(0, genericIndex);
}
@Override
public GeneratorLanguage generatorLanguage() {
return GeneratorLanguage.TYPESCRIPT;

View File

@@ -670,17 +670,6 @@ public class DartDioClientCodegen extends AbstractDartCodegen {
op.imports.remove("Uint8List");
}
if (SERIALIZATION_LIBRARY_JSON_SERIALIZABLE.equals(library)) {
// built_value serialization uses Uint8List for all MultipartFile types
// in json_serialization, MultipartFile is used as the file parameter type, but
// MultipartFile isn't readable, instead we convert this to a Uin8List
if (op.isResponseFile) {
op.imports.add("Uint8List");
op.returnType = "Uint8List";
op.returnBaseType = "Uint8List";
}
}
resultImports.addAll(rewriteImports(op.imports, false));
if (SERIALIZATION_LIBRARY_BUILT_VALUE.equals(library)) {

View File

@@ -615,13 +615,6 @@ public class JavaClientCodegen extends AbstractJavaCodegen
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
// Composed schemas can have the 'additionalProperties' keyword, as specified in JSON schema.
// In principle, this should be enabled by default for all code generators. However due to limitations
// in other code generators, support needs to be enabled on a case-by-case basis.
// The flag below should be set for all Java libraries, but the templates need to be ported
// one by one for each library.
supportsAdditionalPropertiesWithComposedSchema = true;
} else if (libRestEasy) {
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
@@ -709,15 +702,6 @@ public class JavaClientCodegen extends AbstractJavaCodegen
additionalProperties.put("jsonbPolymorphism", true);
}
}
if (getSerializationLibrary().equals(SERIALIZATION_LIBRARY_JACKSON)) {
// Composed schemas can have the 'additionalProperties' keyword, as specified in JSON schema.
// In principle, this should be enabled by default for all code generators. However due to limitations
// in other code generators, support needs to be enabled on a case-by-case basis.
// The flag below should be set for all Java libraries, but the templates need to be ported
// one by one for each library.
supportsAdditionalPropertiesWithComposedSchema = true;
}
} else if (libApache) {
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
} else {
@@ -1246,13 +1230,11 @@ public class JavaClientCodegen extends AbstractJavaCodegen
@Override
public void addImportsToOneOfInterface(List<Map<String, String>> imports) {
if(additionalProperties.containsKey(SERIALIZATION_LIBRARY_JACKSON)) {
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
Map<String, String> oneImport = new HashMap<>();
oneImport.put("import", importMapping.get(i));
if (!imports.contains(oneImport)) {
imports.add(oneImport);
}
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
Map<String, String> oneImport = new HashMap<>();
oneImport.put("import", importMapping.get(i));
if (!imports.contains(oneImport)) {
imports.add(oneImport);
}
}
}

View File

@@ -479,13 +479,11 @@ public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen {
@Override
public void addImportsToOneOfInterface(List<Map<String, String>> imports) {
if(additionalProperties.containsKey(SERIALIZATION_LIBRARY_JACKSON)) {
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
Map<String, String> oneImport = new HashMap<>();
oneImport.put("import", importMapping.get(i));
if (!imports.contains(oneImport)) {
imports.add(oneImport);
}
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
Map<String, String> oneImport = new HashMap<>();
oneImport.put("import", importMapping.get(i));
if (!imports.contains(oneImport)) {
imports.add(oneImport);
}
}
}

View File

@@ -46,7 +46,6 @@ import java.net.URL;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore;
@@ -223,7 +222,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon
*/
supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));
supportingFiles.add(new SupportingFile("Cargo.mustache", "", "Cargo.toml"));
supportingFiles.add(new SupportingFile("cargo-config", ".cargo", "config.toml"));
supportingFiles.add(new SupportingFile("cargo-config", ".cargo", "config"));
supportingFiles.add(new SupportingFile("gitignore", "", ".gitignore"));
supportingFiles.add(new SupportingFile("lib.mustache", "src", "lib.rs"));
supportingFiles.add(new SupportingFile("context.mustache", "src", "context.rs"));
@@ -1532,16 +1531,7 @@ public class RustServerCodegen extends AbstractRustCodegen implements CodegenCon
}
} else if (param.isArray) {
param.vendorExtensions.put("x-format-string", "{:?}");
if (param.items.isString) {
// We iterate through the list of string and ensure they end up in the format vec!["example".to_string()]
example = (param.example != null)
? "&vec![" + Arrays.stream(param.example.replace("[", "").replace("]", "").split(","))
.map(item -> item + ".to_string()")
.collect(Collectors.joining(", ")) + "]"
: "&Vec::new()";
} else {
example = (param.example != null) ? param.example : "&Vec::new()";
}
example = (param.example != null) ? param.example : "&Vec::new()";
} else {
param.vendorExtensions.put("x-format-string", "{:?}");
if (param.example != null) {

View File

@@ -807,12 +807,12 @@ public class ScalaHttp4sServerCodegen extends DefaultCodegen implements CodegenC
if (_vendorExtensions.size() == 1) { // only `x-type`
if ("String".equals(cp.getDataType())) {
return cp.paramName;
return cp.baseName;
} else {
return cp.dataType + "Varr(" + cp.paramName + ")";
return cp.dataType + "Varr(" + cp.baseName + ")";
}
} else {
return cp.baseName + "Varr(" + cp.paramName + ")";
return cp.baseName + "Varr(" + cp.baseName + ")";
}
}
@@ -844,7 +844,7 @@ public class ScalaHttp4sServerCodegen extends DefaultCodegen implements CodegenC
}
vendorExtensions.putAll(refineProp(cp, imports));
return cp.baseName + "QueryParam(" + cp.paramName + ")";
return cp.baseName + "QueryParam(" + cp.baseName + ")";
}
@Override

View File

@@ -90,7 +90,6 @@ public class SpringCodegen extends AbstractJavaCodegen
public static final String RETURN_SUCCESS_CODE = "returnSuccessCode";
public static final String UNHANDLED_EXCEPTION_HANDLING = "unhandledException";
public static final String USE_RESPONSE_ENTITY = "useResponseEntity";
public static final String GENERATE_GENERIC_RESPONSE_ENTITY = "generateGenericResponseEntity";
public static final String USE_ENUM_CASE_INSENSITIVE = "useEnumCaseInsensitive";
public static final String USE_SPRING_BOOT3 = "useSpringBoot3";
public static final String REQUEST_MAPPING_OPTION = "requestMappingMode";
@@ -148,7 +147,6 @@ public class SpringCodegen extends AbstractJavaCodegen
@Setter protected boolean useSpringController = false;
protected boolean useSwaggerUI = true;
@Setter protected boolean useResponseEntity = true;
@Setter protected boolean generateGenericResponseEntity = false;
@Setter protected boolean useEnumCaseInsensitive = false;
@Getter @Setter
protected boolean useSpringBoot3 = false;
@@ -258,10 +256,6 @@ public class SpringCodegen extends AbstractJavaCodegen
"Use the `ResponseEntity` type to wrap return values of generated API methods. "
+ "If disabled, method are annotated using a `@ResponseStatus` annotation, which has the status of the first response declared in the Api definition",
useResponseEntity));
cliOptions.add(CliOption.newBoolean(GENERATE_GENERIC_RESPONSE_ENTITY,
"Use a generic type for the `ResponseEntity` wrapping return values of generated API methods. "
+ "If enabled, method are generated with return type ResponseEntity<?>",
generateGenericResponseEntity));
cliOptions.add(CliOption.newBoolean(USE_ENUM_CASE_INSENSITIVE,
"Use `equalsIgnoreCase` when String for enum comparison",
useEnumCaseInsensitive));
@@ -439,11 +433,6 @@ public class SpringCodegen extends AbstractJavaCodegen
convertPropertyToBooleanAndWriteBack(UNHANDLED_EXCEPTION_HANDLING, this::setUnhandledException);
convertPropertyToBooleanAndWriteBack(USE_RESPONSE_ENTITY, this::setUseResponseEntity);
convertPropertyToBooleanAndWriteBack(GENERATE_GENERIC_RESPONSE_ENTITY, this::setGenerateGenericResponseEntity);
if (!useResponseEntity) {
this.setGenerateGenericResponseEntity(false);
this.additionalProperties.put(GENERATE_GENERIC_RESPONSE_ENTITY, false);
}
convertPropertyToBooleanAndWriteBack(OPTIONAL_ACCEPT_NULLABLE, this::setOptionalAcceptNullable);
convertPropertyToBooleanAndWriteBack(USE_SPRING_BUILT_IN_VALIDATION, this::setUseSpringBuiltInValidation);

View File

@@ -64,7 +64,6 @@ import {{invokerPackage}}.auth.OAuth;
{{/hasOAuthMethods}}
{{>generatedAnnotation}}
public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
protected Map<String, String> defaultHeaderMap = new HashMap<String, String>();
protected Map<String, String> defaultCookieMap = new HashMap<String, String>();

View File

@@ -7,7 +7,6 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;
{{>generatedAnnotation}}
public class Configuration {
public static final String VERSION = "{{{artifactVersion}}}";

View File

@@ -10,49 +10,44 @@ import java.time.format.DateTimeParseException;
* It's generated for java clients when {@code AbstractJavaCodegen#dateLibrary} specified as {@code java8}.
*/
{{>generatedAnnotation}}
public class JavaTimeFormatter {
private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
/**
* Get the date format used to parse/format {@code OffsetDateTime} parameters.
*
* @return DateTimeFormatter
*/
public DateTimeFormatter getOffsetDateTimeFormatter() {
return offsetDateTimeFormatter;
}
private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
/**
* Set the date format used to parse/format {@code OffsetDateTime} parameters.
*
* @param offsetDateTimeFormatter {@code DateTimeFormatter}
*/
public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) {
this.offsetDateTimeFormatter = offsetDateTimeFormatter;
}
/**
* Parse the given string into {@code OffsetDateTime} object.
*
* @param str String
* @return {@code OffsetDateTime}
*/
public OffsetDateTime parseOffsetDateTime(String str) {
try {
return OffsetDateTime.parse(str, offsetDateTimeFormatter);
} catch (DateTimeParseException e) {
throw new RuntimeException(e);
/**
* Get the date format used to parse/format {@code OffsetDateTime} parameters.
* @return DateTimeFormatter
*/
public DateTimeFormatter getOffsetDateTimeFormatter() {
return offsetDateTimeFormatter;
}
}
/**
* Format the given {@code OffsetDateTime} object into string.
*
* @param offsetDateTime {@code OffsetDateTime}
* @return {@code OffsetDateTime} in string format
*/
public String formatOffsetDateTime(OffsetDateTime offsetDateTime) {
return offsetDateTimeFormatter.format(offsetDateTime);
}
}
/**
* Set the date format used to parse/format {@code OffsetDateTime} parameters.
* @param offsetDateTimeFormatter {@code DateTimeFormatter}
*/
public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) {
this.offsetDateTimeFormatter = offsetDateTimeFormatter;
}
/**
* Parse the given string into {@code OffsetDateTime} object.
* @param str String
* @return {@code OffsetDateTime}
*/
public OffsetDateTime parseOffsetDateTime(String str) {
try {
return OffsetDateTime.parse(str, offsetDateTimeFormatter);
} catch (DateTimeParseException e) {
throw new RuntimeException(e);
}
}
/**
* Format the given {@code OffsetDateTime} object into string.
* @param offsetDateTime {@code OffsetDateTime}
* @return {@code OffsetDateTime} in string format
*/
public String formatOffsetDateTime(OffsetDateTime offsetDateTime) {
return offsetDateTimeFormatter.format(offsetDateTime);
}
}

View File

@@ -3,25 +3,44 @@
package {{invokerPackage}};
{{>generatedAnnotation}}
public class Pair {
private final String name;
private final String value;
private String name = "";
private String value = "";
public Pair(String name, String value) {
this.name = isValidString(name) ? name : "";
this.value = isValidString(value) ? value : "";
}
public Pair (String name, String value) {
setName(name);
setValue(value);
}
public String getName() {
return this.name;
}
private void setName(String name) {
if (!isValidString(name)) {
return;
}
public String getValue() {
return this.value;
}
this.name = name;
}
private static boolean isValidString(String arg) {
return arg != null;
}
private void setValue(String value) {
if (!isValidString(value)) {
return;
}
this.value = value;
}
public String getName() {
return this.name;
}
public String getValue() {
return this.value;
}
private boolean isValidString(String arg) {
if (arg == null) {
return false;
}
return true;
}
}

View File

@@ -12,7 +12,6 @@ import java.util.GregorianCalendar;
import java.util.TimeZone;
{{>generatedAnnotation}}
public class RFC3339DateFormat extends DateFormat {
private static final long serialVersionUID = 1L;
private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");

View File

@@ -18,7 +18,6 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature;
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;
{{>generatedAnnotation}}
public class RFC3339InstantDeserializer<T extends Temporal> extends InstantDeserializer<T> {
private static final long serialVersionUID = 1L;
private final static boolean DEFAULT_NORMALIZE_ZONE_ID = JavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID.enabledByDefault();

View File

@@ -8,7 +8,6 @@ import java.time.ZonedDateTime;
import com.fasterxml.jackson.databind.module.SimpleModule;
{{>generatedAnnotation}}
public class RFC3339JavaTimeModule extends SimpleModule {
private static final long serialVersionUID = 1L;

View File

@@ -8,7 +8,6 @@ import java.util.Map;
* Representing a Server configuration.
*/
{{>generatedAnnotation}}
public class ServerConfiguration {
public String URL;
public String description;

View File

@@ -8,7 +8,6 @@ import java.util.HashSet;
* Representing a Server Variable for server URL template substitution.
*/
{{>generatedAnnotation}}
public class ServerVariable {
public String description;
public String defaultValue;

View File

@@ -6,7 +6,6 @@ import java.util.Collection;
import java.util.Iterator;
{{>generatedAnnotation}}
public class StringUtil {
/**
* Check if the given array contains the given value (with case-insensitive comparison).

View File

@@ -19,7 +19,6 @@ import java.util.List;
import java.util.Map;
{{>generatedAnnotation}}
{{#operations}}
public class {{classname}} {
private ApiClient apiClient;

View File

@@ -6,7 +6,6 @@ import java.util.Map;
import java.util.List;
{{>generatedAnnotation}}
public class ApiException extends{{#useRuntimeException}} RuntimeException {{/useRuntimeException}}{{^useRuntimeException}} Exception {{/useRuntimeException}}{
private static final long serialVersionUID = 1L;

View File

@@ -8,7 +8,6 @@ import java.util.Map;
import java.util.List;
{{>generatedAnnotation}}
public class ApiKeyAuth implements Authentication {
private final String location;
private final String paramName;

View File

@@ -8,14 +8,13 @@ import java.util.Map;
import java.util.List;
{{>generatedAnnotation}}
public interface Authentication {
/**
* Apply authentication settings to header and query params.
*
* @param queryParams List of query parameters
* @param headerParams Map of header parameters
* @param cookieParams Map of cookie parameters
*/
void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams);
/**
* Apply authentication settings to header and query params.
*
* @param queryParams List of query parameters
* @param headerParams Map of header parameters
* @param cookieParams Map of cookie parameters
*/
void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams);
}

View File

@@ -11,7 +11,6 @@ import java.util.Map;
import java.util.List;
{{>generatedAnnotation}}
public class HttpBasicAuth implements Authentication {
private String username;
private String password;

View File

@@ -6,16 +6,16 @@ import {{invokerPackage}}.Pair;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Supplier;
{{>generatedAnnotation}}
public class HttpBearerAuth implements Authentication {
private final String scheme;
private Supplier<String> tokenSupplier;
public HttpBearerAuth(String scheme) {
this.scheme = upperCaseBearer(scheme);
this.scheme = scheme;
}
/**
@@ -47,14 +47,15 @@ public class HttpBearerAuth implements Authentication {
@Override
public void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams) {
String bearerToken = tokenSupplier != null ? tokenSupplier.get() : null;
String bearerToken = Optional.ofNullable(tokenSupplier).map(Supplier::get).orElse(null);
if (bearerToken == null) {
return;
}
headerParams.put("Authorization", (scheme != null ? scheme + " " : "") + bearerToken);
headerParams.put("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken);
}
private static String upperCaseBearer(String scheme) {
return "bearer".equalsIgnoreCase(scheme) ? "Bearer" : scheme;
return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme;
}
}

View File

@@ -8,7 +8,6 @@ import java.util.Map;
import java.util.List;
{{>generatedAnnotation}}
public class OAuth implements Authentication {
private String accessToken;

View File

@@ -6,7 +6,6 @@ package {{invokerPackage}}.auth;
* OAuth flows that are supported by this client
*/
{{>generatedAnnotation}}
public enum OAuthFlow {
ACCESS_CODE, //called authorizationCode in OpenAPI 3.0
IMPLICIT,

View File

@@ -86,7 +86,6 @@ import {{invokerPackage}}.auth.OAuth;
{{/hasOAuthMethods}}
{{>generatedAnnotation}}
public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
protected Map<String, String> defaultHeaderMap = new HashMap<String, String>();
protected Map<String, String> defaultCookieMap = new HashMap<String, String>();

View File

@@ -7,7 +7,6 @@ import java.util.Collections;
import java.util.Map;
{{>generatedAnnotation}}
public abstract class BaseApi {
protected ApiClient apiClient;

View File

@@ -29,7 +29,6 @@ import {{javaxPackage}}.validation.Valid;
{{/useBeanValidation}}
{{>generatedAnnotation}}
{{#operations}}
public class {{classname}} extends BaseApi {

View File

@@ -53,7 +53,6 @@ import feign.Retryer;
{{/hasOAuthMethods}}
{{>generatedAnnotation}}
public class ApiClient {
protected static final Logger log = Logger.getLogger(ApiClient.class.getName());

View File

@@ -22,7 +22,6 @@ import {{javaxPackage}}.validation.Valid;
import feign.*;
{{>generatedAnnotation}}
public interface {{classname}} extends ApiClient.Api {
{{#operations}}{{#operation}}

View File

@@ -12,7 +12,6 @@ import com.github.scribejava.core.oauth2.clientauthentication.ClientAuthenticati
import com.github.scribejava.core.oauth2.clientauthentication.RequestBodyAuthenticationScheme;
{{>generatedAnnotation}}
public class DefaultApi20Impl extends DefaultApi20 {
private final String accessTokenEndpoint;

View File

@@ -10,7 +10,6 @@ import feign.RequestTemplate;
import java.util.Collection;
{{>generatedAnnotation}}
public abstract class OAuth implements RequestInterceptor {
//https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4

View File

@@ -6,7 +6,6 @@ import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.model.OAuth2AccessToken;
{{>generatedAnnotation}}
public class OauthClientCredentialsGrant extends OAuth {
public OauthClientCredentialsGrant(String authorizationUrl, String tokenUrl, String scopes) {

View File

@@ -6,7 +6,6 @@ import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.model.OAuth2AccessToken;
{{>generatedAnnotation}}
public class OauthPasswordGrant extends OAuth {
private String username;

View File

@@ -33,12 +33,10 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
{{#isEnum}}
{{^isContainer}}
{{>modelInnerEnum}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>modelInnerEnum}}
{{/mostInnerItems}}
{{/isContainer}}
{{/isEnum}}
@@ -74,7 +72,7 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
{{/isContainer}}
{{/vendorExtensions.x-is-jackson-optional-nullable}}
{{^vendorExtensions.x-is-jackson-optional-nullable}}
{{>nullable_var_annotations}}{{! prevent indent}}
{{>nullable_var_annotations}}
{{#isContainer}}
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
{{/isContainer}}
@@ -192,13 +190,12 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
{{#deprecated}}
@Deprecated
{{/deprecated}}
{{>nullable_var_annotations}}{{! prevent indent}}
{{>nullable_var_annotations}}
{{#jsonb}}
@JsonbProperty("{{baseName}}")
{{/jsonb}}
{{#useBeanValidation}}
{{>beanValidation}}
{{/useBeanValidation}}
{{#swagger1AnnotationLibrary}}
@ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}")
@@ -227,7 +224,6 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
{{#vendorExtensions.x-is-jackson-optional-nullable}}
{{> jackson_annotations}}
public JsonNullable<{{{datatypeWithEnum}}}> {{getter}}_JsonNullable() {
return {{name}};
}
@@ -253,7 +249,6 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
{{/vars}}
{{>libraries/feign/additional_properties}}
@Override
public boolean equals(Object o) {
{{#useReflectionEqualsHashCode}}

View File

@@ -24,7 +24,6 @@ import java.io.IOException;
import java.io.OutputStream;
{{>generatedAnnotation}}
public class ApiClient {
protected final String basePath;
protected final HttpRequestFactory httpRequestFactory;

View File

@@ -23,7 +23,6 @@ import java.util.List;
import java.util.ArrayList;
{{>generatedAnnotation}}
{{#operations}}
public class {{classname}} {
private ApiClient apiClient;

View File

@@ -14,7 +14,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
* Abstract class for oneOf,anyOf schemas defined in OpenAPI spec
*/
{{>generatedAnnotation}}
public abstract class AbstractOpenApiSchema {
// store the actual instance of the schema/object
@@ -136,5 +135,4 @@ public abstract class AbstractOpenApiSchema {
{{>libraries/jersey2/additional_properties}}
}

View File

@@ -84,7 +84,6 @@ import {{invokerPackage}}.auth.OAuth;
* <p>ApiClient class.</p>
*/
{{>generatedAnnotation}}
public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
protected static final Pattern JSON_MIME_PATTERN = Pattern.compile("(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$");

View File

@@ -22,7 +22,6 @@ import {{javaxPackage}}.ws.rs.core.GenericType;
import {{javaxPackage}}.ws.rs.ext.ContextResolver;
{{>generatedAnnotation}}
public class JSON implements ContextResolver<ObjectMapper> {
private ObjectMapper mapper;

View File

@@ -119,7 +119,6 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
super("anyOf", {{#isNullable}}Boolean.TRUE{{/isNullable}}{{^isNullable}}Boolean.FALSE{{/isNullable}});
}
{{> libraries/jersey2/additional_properties }}
{{#additionalPropertiesType}}
/**
* Return true if this {{name}} object is equal to o.

Some files were not shown because too many files have changed in this diff Show More