...] [(-v | --verbose)]
@@ -472,6 +473,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- [Raiffeisen Schweiz Genossenschaft](https://www.raiffeisen.ch)
- [RepreZen API Studio](https://www.reprezen.com/swagger-openapi-code-generation-api-first-microservices-enterprise-development)
- [REST United](https://restunited.com)
+- [Suva](https://www.suva.ch/)
- [Telstra](https://dev.telstra.com)
- [unblu inc.](https://www.unblu.com/)
@@ -482,7 +484,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
- 2018/05/15 - [REST API仕様からAPIクライアントやスタブサーバを自動生成する「OpenAPI Generator」オープンソースで公開。Swagger Codegenからのフォーク](https://www.publickey1.jp/blog/18/rest_apiapiopenapi_generatorswagger_generator.html) by [Publickey](https://www.publickey1.jp)
- 2018/06/08 - [Swagger Codegen is now OpenAPI Generator](https://angular.schule/blog/2018-06-swagger-codegen-is-now-openapi-generator) by [JohannesHoppe](https://github.com/JohannesHoppe)
- 2018/06/21 - [Connect your JHipster apps to the world of APIs with OpenAPI and gRPC](https://fr.slideshare.net/chbornet/jhipster-conf-2018-connect-your-jhipster-apps-to-the-world-of-apis-with-openapi-and-grpc) by [Christophe Bornet](https://github.com/cbornet) at [JHipster Conf 2018](https://jhipster-conf.github.io/)
-- 2018/06/27 - [Lessons Learned from Leading an Open-Source Project Supporting 30+ Programming Languages](https://speakerdeck.com/wing328/lessons-learned-from-leading-an-open-source-project-supporting-30-plus-programming-languages) - [William Cheng](https://github.com/wing328) at [LinuxCon + ContainerCon + CloudOpen China 2018](https://www.lfasiallc.com/events/lc3-2018/)
+- 2018/06/27 - [Lessons Learned from Leading an Open-Source Project Supporting 30+ Programming Languages](https://speakerdeck.com/wing328/lessons-learned-from-leading-an-open-source-project-supporting-30-plus-programming-languages) - [William Cheng](https://github.com/wing328) at [LinuxCon + ContainerCon + CloudOpen China 2018](http://bit.ly/2waDKKX)
- 2018/07/19 - [OpenAPI Generator Contribution Quickstart - RingCentral Go SDK](https://medium.com/ringcentral-developers/openapi-generator-for-go-contribution-quickstart-8cc72bf37b53) by [John Wang](https://github.com/grokify)
## [6 - About Us](#table-of-contents)
diff --git a/bin/security/silex-petstore-server.sh b/bin/security/silex-petstore-server.sh
index 23df8d1e9c6..0ac5b929f66 100755
--- a/bin/security/silex-petstore-server.sh
+++ b/bin/security/silex-petstore-server.sh
@@ -27,6 +27,6 @@ fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="generate -t modules/openapi-generator/src/main/resources/php-silex -i modules/openapi-generator/src/test/resources/2_0/petstore-security-test.yaml -g php-silex -o samples/server/petstore-security-test/silex $@"
+ags="generate -t modules/openapi-generator/src/main/resources/php-silex -i modules/openapi-generator/src/test/resources/2_0/petstore-security-test.yaml -g php-silex -o samples/server/petstore-security-test/silex/SwaggerServer $@"
java $JAVA_OPTS -jar $executable $ags
diff --git a/bin/utils/ensure-up-to-date b/bin/utils/ensure-up-to-date
index d6b71925769..6e2fd3a1ec2 100755
--- a/bin/utils/ensure-up-to-date
+++ b/bin/utils/ensure-up-to-date
@@ -10,7 +10,7 @@ echo "Please press CTRL+C to stop or the script will continue in 5 seconds."
sleep 5
# LIST OF SCRIPTS:
-./bin/ruby-petstore.sh > /dev/null 2>&1
+./bin/ruby-client-petstore.sh > /dev/null 2>&1
./bin/java-petstore-all.sh > /dev/null 2>&1
./bin/java-jaxrs-petstore-server-all.sh > /dev/null 2>&1
./bin/spring-all-pestore.sh > /dev/null 2>&1
diff --git a/docs/customization.md b/docs/customization.md
index ec1a534c98d..32b784d7f6b 100644
--- a/docs/customization.md
+++ b/docs/customization.md
@@ -35,6 +35,8 @@ These names can be anything you like. If you are building a client for the white
**NOTE** Convention is to use kebab casing for names passed to `-n`. Example, `scala-finatra` would become `ScalaFinatraGenerator`.
+#### Use your new generator with the CLI
+
To compile your library, enter the `out/generators/my-codegen` directory, run `mvn package` and execute the generator:
```sh
@@ -50,11 +52,59 @@ Note the `my-codegen` is an option for `-g` now, and you can use the usual argum
```sh
java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \
- io.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
+ org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
-o ./out/myClient
```
+For Windows users:
+```
+java -cp out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar \
+ org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
+ -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml \
+ -o ./out/myClient
+```
+
+#### Use your new generator with the maven plugin
+
+Install your library to your local maven repository by running:
+
+```
+mvn clean install -f out/generators/my-codegen
+```
+
+This will install `org.openapitools:my-codegen-openapi-generator:1.0.0` to your local maven repository.
+
+You can use this as additional dependency of the `openapi-generator-maven-plugin` plugin and use `my-codegen` as `generatorName` value:
+
+```xml
+
+ org.openapitools
+ openapi-generator-maven-plugin
+ ${openapi-generator-version}
+
+
+ generate-client-code
+
+ generate
+
+
+ my-codegen
+
+
+
+
+
+
+ org.openapitools
+ my-codegen-openapi-generator
+ 1.0.0
+
+
+
+```
+
+If you publish your artifact to a distant maven repository, do not forget to add this repository as `pluginRepository` for your project.
### Selective generation
You may not want to generate *all* models in your project. Likewise you may want just one or two apis to be written. If that's the case, you can use system properties to control the output:
@@ -106,6 +156,14 @@ java -Dapis -DmodelTests=false {opts}
When using selective generation, _only_ the templates needed for the specific generation will be used.
+To skip models defined as the form parameters in "requestBody", please use `skipFormModel` (default to false) (this option is introduced at v3.2.2)
+
+```sh
+java -DskipFormModel=true
+```
+
+This option will be helpful to skip model generation due to the form parameter, which is defined differently in OAS3 as there's no form parameter in OAS3
+
### Ignore file format
OpenAPI Generator supports a `.openapi-generator-ignore` file, similar to `.gitignore` or `.dockerignore` you're probably already familiar with.
diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/OpenAPIGenerator.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/OpenAPIGenerator.java
index 305bb9a4119..002c17b1e17 100644
--- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/OpenAPIGenerator.java
+++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/OpenAPIGenerator.java
@@ -24,6 +24,8 @@ import io.airlift.airline.ParseOptionMissingException;
import io.airlift.airline.ParseOptionMissingValueException;
import org.openapitools.codegen.cmd.*;
+import java.util.Locale;
+
/**
* User: lanwen Date: 24.03.15 Time: 17:56
*
@@ -40,6 +42,7 @@ public class OpenAPIGenerator {
Cli.builder("openapi-generator-cli")
.withDescription(
String.format(
+ Locale.ROOT,
"OpenAPI generator CLI (version %s).",
version))
.withDefaultCommand(ListGenerators.class)
@@ -69,10 +72,10 @@ public class OpenAPIGenerator {
System.exit(1);
}
} catch (ParseArgumentsUnexpectedException e) {
- System.err.printf("[error] %s%n%nSee 'openapi-generator-cli help' for usage.%n", e.getMessage());
+ System.err.printf(Locale.ROOT,"[error] %s%n%nSee 'openapi-generator-cli help' for usage.%n", e.getMessage());
System.exit(1);
} catch (ParseOptionMissingException | ParseOptionMissingValueException e) {
- System.err.printf("[error] %s%n", e.getMessage());
+ System.err.printf(Locale.ROOT,"[error] %s%n", e.getMessage());
System.exit(1);
}
}
diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java
index 8c4db2af9e4..ae3613c41a9 100644
--- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java
+++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Generate.java
@@ -17,6 +17,8 @@
package org.openapitools.codegen.cmd;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.core.spi.FilterAttachable;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
import org.openapitools.codegen.ClientOptInput;
@@ -32,6 +34,7 @@ import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Stream;
/**
* User: lanwen Date: 24.03.15 Time: 20:22
@@ -199,8 +202,23 @@ public class Generate implements Runnable {
description = "Skips the default behavior of validating an input specification.")
private Boolean skipValidateSpec;
+ @Option(name = {"--log-to-stderr"},
+ title = "Log to STDERR",
+ description = "write all log messages (not just errors) to STDOUT."
+ + " Useful for piping the JSON output of debug options (e.g. `-DdebugOperations`) to an external parser directly while testing a generator.")
+ private Boolean logToStderr;
+
@Override
public void run() {
+ if (logToStderr != null) {
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ Stream.of(Logger.ROOT_LOGGER_NAME, "io.swagger", "org.openapitools")
+ .map(lc::getLogger)
+ .peek(logger -> logger.detachAppender("STDOUT"))
+ .reduce((logger, next) -> logger.getName().equals(Logger.ROOT_LOGGER_NAME) ? logger : next)
+ .map(root -> root.getAppender("STDERR"))
+ .ifPresent(FilterAttachable::clearAllFilters);
+ }
// attempt to read from config file
CodegenConfigurator configurator = CodegenConfigurator.fromFile(configFile);
diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Langs.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Langs.java
index b2506988504..f7f025a3e7e 100644
--- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Langs.java
+++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Langs.java
@@ -21,6 +21,8 @@ import ch.lambdaj.collection.LambdaIterable;
import io.airlift.airline.Command;
import org.openapitools.codegen.CodegenConfig;
+import java.util.Locale;
+
import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.collection.LambdaCollections.with;
import static java.util.ServiceLoader.load;
@@ -34,6 +36,6 @@ public class Langs implements Runnable {
public void run() {
LambdaIterable langs =
with(load(CodegenConfig.class)).extract(on(CodegenConfig.class).getName());
- System.out.printf("Available languages (generators): %s%n", langs);
+ System.out.printf(Locale.ROOT, "Available languages (generators): %s%n", langs);
}
}
diff --git a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java
index 8add50af445..edd85ff79af 100644
--- a/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java
+++ b/modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java
@@ -9,6 +9,7 @@ import org.openapitools.codegen.CodegenType;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
+import java.util.Locale;
// NOTE: List can later have subcommands such as list languages, list types, list frameworks, etc.
@Command(name = "list", description = "Lists the available generators")
@@ -53,6 +54,6 @@ public class ListGenerators implements Runnable {
}
}
- System.out.printf("%s%n", sb.toString());
+ System.out.printf(Locale.ROOT,"%s%n", sb.toString());
}
}
diff --git a/modules/openapi-generator-gradle-plugin/README.adoc b/modules/openapi-generator-gradle-plugin/README.adoc
index ba0eb6dab25..c1fb0d0b8d2 100644
--- a/modules/openapi-generator-gradle-plugin/README.adoc
+++ b/modules/openapi-generator-gradle-plugin/README.adoc
@@ -2,6 +2,9 @@
This document describes the gradle plugin for OpenAPI Generator.
+This gradle plugin offers a declarative DSL via _extensions_ (these are Gradle project extensions).
+These map almost fully 1:1 with the options you'd pass to the CLI or Maven plugin. The plugin maps the extensions to a task of the same name to provide a clean API. If you're interested in the extension/task mapping concept from a high-level, you can https://docs.gradle.org/current/userguide/custom_plugins.html#sec:mapping_extension_properties_to_task_properties[check out Gradle's docs].
+
== Tasks
Tasks are listed under the "OpenAPI Tools" tasks heading.
@@ -24,6 +27,17 @@ Tasks are listed under the "OpenAPI Tools" tasks heading.
|Validates an Open API 2.0 or 3.x specification document.
|===
+
+[NOTE]
+====
+The plugin implements the above tasks as project extensions of the same name. If you'd like to declare
+these tasks as dependencies to other tasks (using `dependsOn`), you'll need a task reference. e.g.:
+
+```
+compileJava.dependsOn tasks.openApiGenerate
+```
+====
+
== Plugin Setup
[source,groovy]
@@ -34,7 +48,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath "org.openapitools:openapi-generator-gradle-plugin:3.2.1"
+ classpath "org.openapitools:openapi-generator-gradle-plugin:3.2.2"
}
}
@@ -455,3 +469,65 @@ Run with --stacktrace option to get the stack trace. Run with --info or --debug
----
$ ./gradlew openApiValidate --input=/Users/jim/projects/openapi-generator/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
----
+
+=== Generate multiple sources
+
+If you want to perform multiple generation tasks, you'd want to create a task that inherits from the `GenerateTask`.
+Examples can be found in https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-gradle-plugin/samples/local-spec/build.gradle[samples/local-spec/build.gradle].
+
+You can define any number of generator tasks; the generated code does _not_ need to be a JVM language.
+
+```gradle
+task buildGoClient(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
+ generatorName = "go"
+ inputSpec = "$rootDir/petstore-v3.0.yaml".toString()
+ additionalProperties = [
+ packageName: "petstore"
+ ]
+ outputDir = "$buildDir/go".toString()
+ configOptions = [
+ dateLibrary: "threetenp"
+ ]
+}
+task buildKotlinClient(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
+ generatorName = "kotlin"
+ inputSpec = "$rootDir/petstore-v3.0.yaml".toString()
+ outputDir = "$buildDir/kotlin".toString()
+ apiPackage = "org.openapitools.example.api"
+ invokerPackage = "org.openapitools.example.invoker"
+ modelPackage = "org.openapitools.example.model"
+ configOptions = [
+ dateLibrary: "java8"
+ ]
+ systemProperties = [
+ modelDocs: "false"
+ ]
+}
+```
+
+To execute your specs, you'd then do:
+
+```
+./gradlew buildGoClient buildKotlinClient
+```
+
+If you want to simplify the execution, you could create a new task with `dependsOn`.
+
+```gradle
+task codegen(dependsOn: ['buildGoClient', 'buildKotlinClient'])
+```
+
+Or, if you're generating the code on compile, you can add these as a dependency to `compileJava` or any other existing task.
+You can also mix the default task `openApiGenerate` with custom tasks:
+
+```gradle
+compileJava.dependsOn buildKotlinClient, tasks.openApiGenerate
+```
+
+[NOTE]
+====
+`openApiGenerate` is a project extension _and_ a task. If you want to use this in `dependsOn`,
+you need a task reference or instance. One way to do this is to access it as `tasks.openApiGenerate`.
+
+You can run `gradle tasks --debug` to see this registration.
+====
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
index 81987ca3168..13889d521b8 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/README.md
@@ -17,5 +17,5 @@ gradle generateGoWithInvalidSpec
The samples can be tested against other versions of the plugin using the `openApiGeneratorVersion` property. For example:
```bash
-gradle -PopenApiGeneratorVersion=3.2.1 openApiValidate
+gradle -PopenApiGeneratorVersion=3.2.2 openApiValidate
```
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
index 48df3c91578..ed174a94c40 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle.properties
@@ -1 +1 @@
-openApiGeneratorVersion=3.2.1
+openApiGeneratorVersion=3.2.2
diff --git a/modules/openapi-generator-maven-plugin/README.md b/modules/openapi-generator-maven-plugin/README.md
index bbef0ba27e5..299ebbab346 100644
--- a/modules/openapi-generator-maven-plugin/README.md
+++ b/modules/openapi-generator-maven-plugin/README.md
@@ -11,7 +11,7 @@ Add to your `build->plugins` section (default phase is `generate-sources` phase)
org.openapitools
openapi-generator-maven-plugin
- 3.2.1
+ 3.2.2
diff --git a/modules/openapi-generator-maven-plugin/examples/java-client.xml b/modules/openapi-generator-maven-plugin/examples/java-client.xml
index 30051bff0d2..05b285d9ce8 100644
--- a/modules/openapi-generator-maven-plugin/examples/java-client.xml
+++ b/modules/openapi-generator-maven-plugin/examples/java-client.xml
@@ -12,7 +12,7 @@
org.openapitools
openapi-generator-maven-plugin
- 3.2.1
+ 3.2.2
diff --git a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
index a4f1d89aaf5..35e5ce02e4a 100644
--- a/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
+++ b/modules/openapi-generator-maven-plugin/examples/non-java-invalid-spec.xml
@@ -12,7 +12,7 @@
org.openapitools
openapi-generator-maven-plugin
- 3.2.1
+ 3.2.2
diff --git a/modules/openapi-generator-maven-plugin/examples/non-java.xml b/modules/openapi-generator-maven-plugin/examples/non-java.xml
index 9b5adfee0be..eece8d6efbe 100644
--- a/modules/openapi-generator-maven-plugin/examples/non-java.xml
+++ b/modules/openapi-generator-maven-plugin/examples/non-java.xml
@@ -12,7 +12,7 @@
org.openapitools
openapi-generator-maven-plugin
- 3.2.1
+ 3.2.2
diff --git a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java
index 9bef912f138..90d6db132d7 100644
--- a/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java
+++ b/modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java
@@ -19,11 +19,16 @@ package org.openapitools.codegen.online.service;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.parser.OpenAPIParser;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.parser.core.models.ParseOptions;
-import org.openapitools.codegen.*;
-import io.swagger.v3.parser.core.models.AuthorizationValue;
import io.swagger.v3.core.util.Json;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.parser.core.models.AuthorizationValue;
+import io.swagger.v3.parser.core.models.ParseOptions;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.ClientOptInput;
+import org.openapitools.codegen.ClientOpts;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConfigLoader;
+import org.openapitools.codegen.DefaultGenerator;
import org.openapitools.codegen.online.model.GeneratorInput;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,6 +39,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class Generator {
@@ -44,7 +50,7 @@ public class Generator {
try {
config = CodegenConfigLoader.forName(language);
} catch (Exception e) {
- throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format("Unsupported target %s supplied. %s",
+ throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format(Locale.ROOT,"Unsupported target %s supplied. %s",
language, e));
}
Map map = new LinkedHashMap<>();
@@ -77,7 +83,7 @@ public class Generator {
}
private static String generate(String language, GeneratorInput opts, Type type) {
- LOGGER.debug(String.format("generate %s for %s", type.getTypeName(), language));
+ LOGGER.debug(String.format(Locale.ROOT,"generate %s for %s", type.getTypeName(), language));
if (opts == null) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "No options were supplied");
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java
index e91d00d4ce3..61b98db1bef 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java
@@ -23,6 +23,8 @@ import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.security.SecurityScheme;
+import io.swagger.v3.oas.models.servers.Server;
+import io.swagger.v3.oas.models.servers.ServerVariable;
import java.util.List;
import java.util.Map;
@@ -113,6 +115,10 @@ public interface CodegenConfig {
List fromSecurity(Map schemas);
+ List fromServers(List servers);
+
+ List fromServerVariables(Map variables);
+
Set defaultIncludes();
Map typeMapping();
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
index 9aa86e73645..d96fda52687 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java
@@ -31,6 +31,7 @@ public class CodegenConstants {
public static final String API_TESTS = "apiTests";
public static final String API_DOCS = "apiDocs";
public static final String WITH_XML = "withXml";
+ public static final String SKIP_FORM_MODEL = "skipFormModel";
/* /end System Properties */
public static final String API_PACKAGE = "apiPackage";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
index 279d796f05f..80ff121c361 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
@@ -22,6 +22,7 @@ import io.swagger.v3.oas.models.ExternalDocumentation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
@@ -76,7 +77,7 @@ public class CodegenModel {
@Override
public String toString() {
- return String.format("%s(%s)", name, classname);
+ return String.format(Locale.ROOT, "%s(%s)", name, classname);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
index 0e7e96d1b54..1e66e45edef 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -196,7 +197,7 @@ public class CodegenOperation {
* @return true if act as Restful update method, false otherwise
*/
public boolean isRestfulUpdate() {
- return Arrays.asList("PUT", "PATCH").contains(httpMethod.toUpperCase()) && isMemberPath();
+ return Arrays.asList("PUT", "PATCH").contains(httpMethod.toUpperCase(Locale.ROOT)) && isMemberPath();
}
/**
@@ -205,7 +206,7 @@ public class CodegenOperation {
* @return true request method is PUT, PATCH or POST; false otherwise
*/
public boolean isBodyAllowed() {
- return Arrays.asList("PUT", "PATCH", "POST").contains(httpMethod.toUpperCase());
+ return Arrays.asList("PUT", "PATCH", "POST").contains(httpMethod.toUpperCase(Locale.ROOT));
}
/**
@@ -232,7 +233,7 @@ public class CodegenOperation {
* @return the substring
*/
private String pathWithoutBaseName() {
- return baseName != null ? path.replace("/" + baseName.toLowerCase(), "") : path;
+ return baseName != null ? path.replace("/" + baseName.toLowerCase(Locale.ROOT), "") : path;
}
/**
@@ -248,7 +249,7 @@ public class CodegenOperation {
@Override
public String toString() {
- return String.format("%s(%s)", baseName, path);
+ return String.format(Locale.ROOT, "%s(%s)", baseName, path);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
index da21e3416bc..de026b2d3e0 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
@@ -59,7 +59,9 @@ public class CodegenProperty implements Cloneable {
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isFile, isBoolean, isDate, isDateTime, isUuid;
public boolean isListContainer, isMapContainer;
public boolean isEnum;
- public boolean isReadOnly = false;
+ public boolean isReadOnly;
+ public boolean isWriteOnly;
+ public boolean isNullable;
public List _enum;
public Map allowableValues;
public CodegenProperty items;
@@ -437,6 +439,8 @@ public class CodegenProperty implements Cloneable {
result = prime * result + ((isNotContainer ? 13:31));
result = prime * result + ((isPrimitiveType ? 13:31));
result = prime * result + ((isReadOnly ? 13:31));
+ result = prime * result + ((isWriteOnly ? 13:31));
+ result = prime * result + ((isNullable ? 13:31));
result = prime * result + ((items == null) ? 0 : items.hashCode());
result = prime * result + ((mostInnerItems == null) ? 0 : mostInnerItems.hashCode());
result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode());
@@ -587,6 +591,12 @@ public class CodegenProperty implements Cloneable {
if (this.isReadOnly != other.isReadOnly) {
return false;
}
+ if (this.isWriteOnly != other.isWriteOnly) {
+ return false;
+ }
+ if (this.isNullable != other.isNullable) {
+ return false;
+ }
if (this._enum != other._enum && (this._enum == null || !this._enum.equals(other._enum))) {
return false;
}
@@ -769,6 +779,8 @@ public class CodegenProperty implements Cloneable {
", isMapContainer=" + isMapContainer +
", isEnum=" + isEnum +
", isReadOnly=" + isReadOnly +
+ ", isWriteOnly=" + isWriteOnly+
+ ", isNullable=" + isNullable +
", _enum=" + _enum +
", allowableValues=" + allowableValues +
", items=" + items +
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
index 020f1ccbe30..aebc0aa9dbc 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java
@@ -20,6 +20,7 @@ package org.openapitools.codegen;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class CodegenResponse {
@@ -47,7 +48,7 @@ public class CodegenResponse {
@Override
public String toString() {
- return String.format("%s(%s)", code, containerType);
+ return String.format(Locale.ROOT, "%s(%s)", code, containerType);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java
index d028ebf3775..3f267a53045 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java
@@ -21,6 +21,7 @@ import io.swagger.v3.oas.models.security.Scopes;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class CodegenSecurity {
@@ -38,7 +39,7 @@ public class CodegenSecurity {
@Override
public String toString() {
- return String.format("%s(%s)", name, type);
+ return String.format(Locale.ROOT, "%s(%s)", name, type);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServer.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServer.java
new file mode 100644
index 00000000000..0708d4407fc
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServer.java
@@ -0,0 +1,9 @@
+package org.openapitools.codegen;
+
+import java.util.List;
+
+public class CodegenServer {
+ public String url;
+ public String description;
+ public List variables;
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServerVariable.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServerVariable.java
new file mode 100644
index 00000000000..15e9db55b67
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenServerVariable.java
@@ -0,0 +1,10 @@
+package org.openapitools.codegen;
+
+import java.util.List;
+
+public class CodegenServerVariable {
+ public String name;
+ public String defaultValue;
+ public String description;
+ public List enumValues;
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenType.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenType.java
index bb763889532..958fabc2b85 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenType.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenType.java
@@ -21,6 +21,7 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
public enum CodegenType {
@@ -30,7 +31,7 @@ public enum CodegenType {
@JsonCreator
public static CodegenType forValue(String value) {
- return names.get(value.toLowerCase());
+ return names.get(value.toLowerCase(Locale.ROOT));
}
@JsonValue
@@ -50,4 +51,4 @@ public enum CodegenType {
names.put("documentation", DOCUMENTATION);
names.put("other", OTHER);
}
-}
\ No newline at end of file
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index 46790890a85..61d1ae83155 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -43,6 +43,8 @@ import io.swagger.v3.oas.models.responses.ApiResponses;
import io.swagger.v3.oas.models.security.OAuthFlow;
import io.swagger.v3.oas.models.security.OAuthFlows;
import io.swagger.v3.oas.models.security.SecurityScheme;
+import io.swagger.v3.oas.models.servers.Server;
+import io.swagger.v3.oas.models.servers.ServerVariable;
import io.swagger.v3.parser.util.SchemaTypeUtil;
import org.apache.commons.lang3.ObjectUtils;
@@ -64,7 +66,9 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
@@ -72,7 +76,6 @@ import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
public class DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultCodegen.class);
@@ -182,7 +185,7 @@ public class DefaultCodegen implements CodegenConfig {
.get(CodegenConstants.REMOVE_OPERATION_ID_PREFIX).toString()));
}
- if (additionalProperties.containsKey(CodegenConstants.DOCEXTENSION)){
+ if (additionalProperties.containsKey(CodegenConstants.DOCEXTENSION)) {
this.setDocExtension(String.valueOf(additionalProperties
.get(CodegenConstants.DOCEXTENSION).toString()));
}
@@ -355,7 +358,7 @@ public class DefaultCodegen implements CodegenConfig {
return "EMPTY";
}
- String var = value.replaceAll("\\W+", "_").toUpperCase();
+ String var = value.replaceAll("\\W+", "_").toUpperCase(Locale.ROOT);
if (var.matches("\\d.*")) {
return "_" + var;
} else {
@@ -768,7 +771,7 @@ public class DefaultCodegen implements CodegenConfig {
public String toVarName(String name) {
if (reservedWords.contains(name)) {
return escapeReservedWord(name);
- } else if (((CharSequence) name).chars().anyMatch(character -> specialCharReplacements.keySet().contains( "" + ((char) character)))) {
+ } else if (((CharSequence) name).chars().anyMatch(character -> specialCharReplacements.keySet().contains("" + ((char) character)))) {
return escapeSpecialCharacters(name, null, null);
} else {
return name;
@@ -786,7 +789,7 @@ public class DefaultCodegen implements CodegenConfig {
name = removeNonNameElementToCamelCase(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
if (reservedWords.contains(name)) {
return escapeReservedWord(name);
- } else if (((CharSequence) name).chars().anyMatch(character -> specialCharReplacements.keySet().contains( "" + ((char) character)))) {
+ } else if (((CharSequence) name).chars().anyMatch(character -> specialCharReplacements.keySet().contains("" + ((char) character)))) {
return escapeSpecialCharacters(name, null, null);
}
return name;
@@ -829,8 +832,8 @@ public class DefaultCodegen implements CodegenConfig {
/**
* Return the name with escaped characters.
*
- * @param name the name to be escaped
- * @param charactersToAllow characters that are not escaped
+ * @param name the name to be escaped
+ * @param charactersToAllow characters that are not escaped
* @param appdendixToReplacement String to append to replaced characters.
* @return the escaped word
*
@@ -838,15 +841,15 @@ public class DefaultCodegen implements CodegenConfig {
*/
public String escapeSpecialCharacters(String name, List charactersToAllow, String appdendixToReplacement) {
String result = (String) ((CharSequence) name).chars().mapToObj(c -> {
- String character = "" + (char) c;
- if (charactersToAllow != null && charactersToAllow.contains(character)) {
- return character;
- } else if (specialCharReplacements.containsKey(character)) {
- return specialCharReplacements.get(character) + (appdendixToReplacement != null ? appdendixToReplacement: "");
- } else {
- return character;
- }
- }).reduce( (c1, c2) -> "" + c1 + c2).orElse(null);
+ String character = "" + (char) c;
+ if (charactersToAllow != null && charactersToAllow.contains(character)) {
+ return character;
+ } else if (specialCharReplacements.containsKey(character)) {
+ return specialCharReplacements.get(character) + (appdendixToReplacement != null ? appdendixToReplacement : "");
+ } else {
+ return character;
+ }
+ }).reduce((c1, c2) -> "" + c1 + c2).orElse(null);
if (result != null) return result;
throw new RuntimeException("Word '" + name + "' could not be escaped.");
@@ -1091,7 +1094,7 @@ public class DefaultCodegen implements CodegenConfig {
*/
public String toInstantiationType(Schema schema) {
if (ModelUtils.isMapSchema(schema)) {
- Schema additionalProperties = (Schema) schema.getAdditionalProperties();
+ Schema additionalProperties = ModelUtils.getAdditionalProperties(schema);
String type = additionalProperties.getType();
if (null == type) {
LOGGER.error("No Type defined for Additional Property " + additionalProperties + "\n" //
@@ -1680,13 +1683,13 @@ public class DefaultCodegen implements CodegenConfig {
}
private CodegenDiscriminator createDiscriminator(String schemaName, Schema schema, Map allDefinitions) {
- if(schema.getDiscriminator() == null) {
+ if (schema.getDiscriminator() == null) {
return null;
}
CodegenDiscriminator discriminator = new CodegenDiscriminator();
discriminator.setPropertyName(schema.getDiscriminator().getPropertyName());
discriminator.setMapping(schema.getDiscriminator().getMapping());
- if(schema.getDiscriminator().getMapping() != null && !schema.getDiscriminator().getMapping().isEmpty()) {
+ if (schema.getDiscriminator().getMapping() != null && !schema.getDiscriminator().getMapping().isEmpty()) {
for (Entry e : schema.getDiscriminator().getMapping().entrySet()) {
String name = ModelUtils.getSimpleRef(e.getValue());
discriminator.getMappedModels().add(new MappedModel(e.getKey(), name));
@@ -1695,9 +1698,9 @@ public class DefaultCodegen implements CodegenConfig {
allDefinitions.forEach((childName, child) -> {
if (child instanceof ComposedSchema && ((ComposedSchema) child).getAllOf() != null) {
Set parentSchemas = ((ComposedSchema) child).getAllOf().stream()
- .filter(s -> s.get$ref() != null)
- .map(s -> ModelUtils.getSimpleRef(s.get$ref()))
- .collect(Collectors.toSet());
+ .filter(s -> s.get$ref() != null)
+ .map(s -> ModelUtils.getSimpleRef(s.get$ref()))
+ .collect(Collectors.toSet());
if (parentSchemas.contains(schemaName)) {
discriminator.getMappedModels().add(new MappedModel(childName, childName));
}
@@ -1783,6 +1786,13 @@ public class DefaultCodegen implements CodegenConfig {
if (p.getReadOnly() != null) {
property.isReadOnly = p.getReadOnly();
}
+ if (p.getWriteOnly() != null) {
+ property.isWriteOnly = p.getWriteOnly();
+ }
+ if (p.getNullable() != null) {
+ property.isNullable = p.getNullable();
+ }
+
if (p.getXml() != null) {
if (p.getXml().getAttribute() != null) {
property.isXmlAttribute = p.getXml().getAttribute();
@@ -1995,7 +2005,7 @@ public class DefaultCodegen implements CodegenConfig {
property.maxItems = p.getMaxProperties();
// handle inner property
- CodegenProperty cp = fromProperty("inner", (Schema) p.getAdditionalProperties());
+ CodegenProperty cp = fromProperty("inner", ModelUtils.getAdditionalProperties(p));
updatePropertyForMap(property, cp);
} else { // model
// TODO revise the logic below
@@ -2257,7 +2267,7 @@ public class DefaultCodegen implements CodegenConfig {
for (String key : operation.getResponses().keySet()) {
ApiResponse response = operation.getResponses().get(key);
addProducesInfo(openAPI, response, op);
- CodegenResponse r = fromResponse(key, response);
+ CodegenResponse r = fromResponse(openAPI, key, response);
r.hasMore = true;
if (r.baseType != null &&
!defaultIncludes.contains(r.baseType) &&
@@ -2285,7 +2295,7 @@ public class DefaultCodegen implements CodegenConfig {
CodegenProperty innerProperty = fromProperty("response", as.getItems());
op.returnBaseType = innerProperty.baseType;
} else if (ModelUtils.isMapSchema(responseSchema)) {
- CodegenProperty innerProperty = fromProperty("response", (Schema) responseSchema.getAdditionalProperties());
+ CodegenProperty innerProperty = fromProperty("response", ModelUtils.getAdditionalProperties(responseSchema));
op.returnBaseType = innerProperty.baseType;
} else {
if (cm.complexType != null) {
@@ -2326,7 +2336,7 @@ public class DefaultCodegen implements CodegenConfig {
op.returnTypeIsPrimitive = true;
}
}
- addHeaders(methodResponse, op.responseHeaders);
+ addHeaders(openAPI, methodResponse, op.responseHeaders);
}
}
@@ -2366,7 +2376,7 @@ public class DefaultCodegen implements CodegenConfig {
bodyParameterName = (String) op.vendorExtensions.get("x-codegen-request-body-name");
}
bodyParam = fromRequestBody(requestBody, schemas, imports, bodyParameterName);
- bodyParam.description = requestBody.getDescription();
+ bodyParam.description = escapeText(requestBody.getDescription());
postProcessParameter(bodyParam);
bodyParams.add(bodyParam);
@@ -2443,7 +2453,7 @@ public class DefaultCodegen implements CodegenConfig {
}
op.bodyParam = bodyParam;
- op.httpMethod = httpMethod.toUpperCase();
+ op.httpMethod = httpMethod.toUpperCase(Locale.ROOT);
// move "required" parameters in front of "optional" parameters
if (sortParamsByRequiredFlag) {
@@ -2503,11 +2513,12 @@ public class DefaultCodegen implements CodegenConfig {
/**
* Convert OAS Response object to Codegen Response object
*
+ * @param openAPI a OAS object representing the spec
* @param responseCode HTTP response code
* @param response OAS Response object
* @return Codegen Response object
*/
- public CodegenResponse fromResponse(String responseCode, ApiResponse response) {
+ public CodegenResponse fromResponse(OpenAPI openAPI, String responseCode, ApiResponse response) {
CodegenResponse r = CodegenModelFactory.newInstance(CodegenModelType.RESPONSE);
if ("default".equals(responseCode)) {
r.code = "0";
@@ -2524,7 +2535,7 @@ public class DefaultCodegen implements CodegenConfig {
if (response.getExtensions() != null && !response.getExtensions().isEmpty()) {
r.vendorExtensions.putAll(response.getExtensions());
}
- addHeaders(response, r.headers);
+ addHeaders(openAPI, response, r.headers);
r.hasHeaders = !r.headers.isEmpty();
if (r.schema != null) {
@@ -2671,7 +2682,7 @@ public class DefaultCodegen implements CodegenConfig {
}
} else if (ModelUtils.isMapSchema(parameterSchema)) { // for map parameter
- CodegenProperty codegenProperty = fromProperty("inner", (Schema) parameterSchema.getAdditionalProperties());
+ CodegenProperty codegenProperty = fromProperty("inner", ModelUtils.getAdditionalProperties(parameterSchema));
codegenParameter.items = codegenProperty;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.baseType = codegenProperty.dataType;
@@ -2896,7 +2907,7 @@ public class DefaultCodegen implements CodegenConfig {
// TODO revise below as it should be replaced by ModelUtils.isByteArraySchema(parameterSchema)
public boolean isDataTypeBinary(String dataType) {
if (dataType != null) {
- return dataType.toLowerCase().startsWith("byte");
+ return dataType.toLowerCase(Locale.ROOT).startsWith("byte");
} else {
return false;
}
@@ -2905,7 +2916,7 @@ public class DefaultCodegen implements CodegenConfig {
// TODO revise below as it should be replaced by ModelUtils.isFileSchema(parameterSchema)
public boolean isDataTypeFile(String dataType) {
if (dataType != null) {
- return dataType.toLowerCase().equals("file");
+ return dataType.toLowerCase(Locale.ROOT).equals("file");
} else {
return false;
}
@@ -2993,12 +3004,12 @@ public class DefaultCodegen implements CodegenConfig {
protected void setReservedWordsLowerCase(List words) {
reservedWords = new HashSet();
for (String word : words) {
- reservedWords.add(word.toLowerCase());
+ reservedWords.add(word.toLowerCase(Locale.ROOT));
}
}
protected boolean isReservedWord(String word) {
- return word != null && reservedWords.contains(word.toLowerCase());
+ return word != null && reservedWords.contains(word.toLowerCase(Locale.ROOT));
}
/**
@@ -3070,12 +3081,15 @@ public class DefaultCodegen implements CodegenConfig {
* @param response API response
* @param properties list of codegen property
*/
- private void addHeaders(ApiResponse response, List properties) {
+ private void addHeaders(OpenAPI openAPI, ApiResponse response, List properties) {
if (response.getHeaders() != null) {
for (Map.Entry headers : response.getHeaders().entrySet()) {
- CodegenProperty cp = fromProperty(headers.getKey(), headers.getValue().getSchema());
- cp.setDescription(escapeText(headers.getValue().getDescription()));
- cp.setUnescapedDescription(headers.getValue().getDescription());
+ String description = headers.getValue().getDescription();
+ // follow the $ref
+ Header header = ModelUtils.getReferencedHeader(openAPI, headers.getValue());
+ CodegenProperty cp = fromProperty(headers.getKey(), header.getSchema());
+ cp.setDescription(escapeText(description));
+ cp.setUnescapedDescription(description);
properties.add(cp);
}
}
@@ -3124,7 +3138,7 @@ public class DefaultCodegen implements CodegenConfig {
LOGGER.warn("generated unique operationId `" + uniqueName + "`");
}
co.operationId = uniqueName;
- co.operationIdLowerCase = uniqueName.toLowerCase();
+ co.operationIdLowerCase = uniqueName.toLowerCase(Locale.ROOT);
co.operationIdCamelCase = DefaultCodegen.camelize(uniqueName);
co.operationIdSnakeCase = DefaultCodegen.underscore(uniqueName);
opList.add(co);
@@ -3170,7 +3184,7 @@ public class DefaultCodegen implements CodegenConfig {
word = word.replace('-', '_');
// replace space with underscore
word = word.replace(' ', '_');
- word = word.toLowerCase();
+ word = word.toLowerCase(Locale.ROOT);
return word;
}
@@ -3334,7 +3348,7 @@ public class DefaultCodegen implements CodegenConfig {
* @param schemas The complete set of model definitions (schemas).
* @return A mapping from model name to type alias
*/
- private static Map getAllAliases(Map schemas) {
+ static Map getAllAliases(Map schemas) {
if (schemas == null || schemas.isEmpty()) {
return new HashMap<>();
}
@@ -3377,7 +3391,7 @@ public class DefaultCodegen implements CodegenConfig {
.map(StringUtils::capitalize)
.collect(Collectors.joining(""));
if (result.length() > 0) {
- result = result.substring(0, 1).toLowerCase() + result.substring(1);
+ result = result.substring(0, 1).toLowerCase(Locale.ROOT) + result.substring(1);
}
return result;
}
@@ -3406,7 +3420,7 @@ public class DefaultCodegen implements CodegenConfig {
Pattern p = Pattern.compile("\\/(.?)");
Matcher m = p.matcher(word);
while (m.find()) {
- word = m.replaceFirst("." + m.group(1)/*.toUpperCase()*/); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
+ word = m.replaceFirst("." + m.group(1)/*.toUpperCase(Locale.ROOT)*/); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
m = p.matcher(word);
}
@@ -3422,7 +3436,7 @@ public class DefaultCodegen implements CodegenConfig {
m = p.matcher(word);
while (m.find()) {
- word = m.replaceFirst("" + Character.toUpperCase(m.group(1).charAt(0)) + m.group(1).substring(1)/*.toUpperCase()*/);
+ word = m.replaceFirst("" + Character.toUpperCase(m.group(1).charAt(0)) + m.group(1).substring(1)/*.toUpperCase(Locale.ROOT)*/);
m = p.matcher(word);
}
@@ -3430,7 +3444,7 @@ public class DefaultCodegen implements CodegenConfig {
p = Pattern.compile("(\\.?)(\\w)([^\\.]*)$");
m = p.matcher(word);
if (m.find()) {
- String rep = m.group(1) + m.group(2).toUpperCase() + m.group(3);
+ String rep = m.group(1) + m.group(2).toUpperCase(Locale.ROOT) + m.group(3);
rep = rep.replaceAll("\\$", "\\\\\\$");
word = m.replaceAll(rep);
}
@@ -3440,7 +3454,7 @@ public class DefaultCodegen implements CodegenConfig {
m = p.matcher(word);
while (m.find()) {
String original = m.group(2);
- String upperCase = original.toUpperCase();
+ String upperCase = original.toUpperCase(Locale.ROOT);
if (original.equals(upperCase)) {
word = word.replaceFirst("_", "");
} else {
@@ -3453,7 +3467,7 @@ public class DefaultCodegen implements CodegenConfig {
p = Pattern.compile("(-)(.)");
m = p.matcher(word);
while (m.find()) {
- word = m.replaceFirst(m.group(2).toUpperCase());
+ word = m.replaceFirst(m.group(2).toUpperCase(Locale.ROOT));
m = p.matcher(word);
}
@@ -3465,7 +3479,7 @@ public class DefaultCodegen implements CodegenConfig {
charAt = word.charAt(i);
}
i = i + 1;
- word = word.substring(0, i).toLowerCase() + word.substring(i);
+ word = word.substring(0, i).toLowerCase(Locale.ROOT) + word.substring(i);
}
// remove all underscore
@@ -3488,7 +3502,7 @@ public class DefaultCodegen implements CodegenConfig {
*/
public String apiDocFilename(String templateName, String tag) {
String docExtension = getDocExtension();
- String suffix = docExtension != null ? docExtension: apiDocTemplateFiles().get(templateName);
+ String suffix = docExtension != null ? docExtension : apiDocTemplateFiles().get(templateName);
return apiDocFileFolder() + File.separator + toApiDocFilename(tag) + suffix;
}
@@ -4239,7 +4253,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter.isPrimitiveType = false;
codegenParameter.isContainer = true;
codegenParameter.isListContainer = true;
- codegenParameter.description = s.getDescription();
+ codegenParameter.description = escapeText(s.getDescription());
codegenParameter.dataType = getTypeDeclaration(s);
if (codegenParameter.baseType != null && codegenParameter.enumName != null) {
codegenParameter.datatypeWithEnum = codegenParameter.dataType.replace(codegenParameter.baseType, codegenParameter.enumName);
@@ -4365,7 +4379,7 @@ public class DefaultCodegen implements CodegenConfig {
CodegenParameter codegenParameter = CodegenModelFactory.newInstance(CodegenModelType.PARAMETER);
codegenParameter.baseName = "UNKNOWN_BASE_NAME";
codegenParameter.paramName = "UNKNOWN_PARAM_NAME";
- codegenParameter.description = body.getDescription();
+ codegenParameter.description = escapeText(body.getDescription());
codegenParameter.required = body.getRequired() != null ? body.getRequired() : Boolean.FALSE;
codegenParameter.isBodyParam = Boolean.TRUE;
@@ -4378,7 +4392,7 @@ public class DefaultCodegen implements CodegenConfig {
}
if (ModelUtils.isMapSchema(schema)) {
- Schema inner = (Schema) schema.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(schema);
if (inner == null) {
inner = new StringSchema().description("//TODO automatically added by openapi-generator");
schema.setAdditionalProperties(inner);
@@ -4423,7 +4437,7 @@ public class DefaultCodegen implements CodegenConfig {
}
if (StringUtils.isEmpty(bodyParameterName)) {
- if(StringUtils.isEmpty(mostInnerItem.complexType)) {
+ if (StringUtils.isEmpty(mostInnerItem.complexType)) {
codegenParameter.baseName = "request_body";
} else {
codegenParameter.baseName = mostInnerItem.complexType;
@@ -4466,7 +4480,7 @@ public class DefaultCodegen implements CodegenConfig {
imports.add(codegenParameter.baseType);
} else {
CodegenProperty codegenProperty = fromProperty("property", schema);
- if (schema.getAdditionalProperties() != null) {// http body is map
+ if (ModelUtils.getAdditionalProperties(schema) != null) {// http body is map
LOGGER.error("Map should be supported. Please report to openapi-generator github repo about the issue.");
} else if (codegenProperty != null) {
String codegenModelName, codegenModelDescription;
@@ -4588,4 +4602,38 @@ public class DefaultCodegen implements CodegenConfig {
public boolean isDataTypeString(String dataType) {
return "String".equals(dataType);
}
+
+ @Override
+ public List fromServers(List servers) {
+ if (servers == null) {
+ return Collections.emptyList();
+ }
+ List codegenServers = new LinkedList<>();
+ for (Server server : servers) {
+ CodegenServer cs = new CodegenServer();
+ cs.description = escapeText(server.getDescription());
+ cs.url = server.getUrl();
+ cs.variables = this.fromServerVariables(server.getVariables());
+ codegenServers.add(cs);
+ }
+ return codegenServers;
+ }
+
+ @Override
+ public List fromServerVariables(Map variables) {
+ if (variables == null) {
+ return Collections.emptyList();
+ }
+ List codegenServerVariables = new LinkedList<>();
+ for (Entry variableEntry : variables.entrySet()) {
+ CodegenServerVariable codegenServerVariable = new CodegenServerVariable();
+ ServerVariable variable = variableEntry.getValue();
+ codegenServerVariable.defaultValue = variable.getDefault();
+ codegenServerVariable.description = escapeText(variable.getDescription());
+ codegenServerVariable.enumValues = variable.getEnum();
+ codegenServerVariable.name = variableEntry.getKey();
+ codegenServerVariables.add(codegenServerVariable);
+ }
+ return codegenServerVariables;
+ }
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
index 1ba9611cfd3..71e90105422 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
@@ -286,7 +286,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
private void generateModelDocumentation(List files, Map models, String modelName) throws IOException {
for (String templateName : config.modelDocTemplateFiles().keySet()) {
String docExtension = config.getDocExtension();
- String suffix = docExtension!=null ? docExtension : config.modelDocTemplateFiles().get(templateName);
+ String suffix = docExtension != null ? docExtension : config.modelDocTemplateFiles().get(templateName);
String filename = config.modelDocFileFolder() + File.separator + config.toModelDocFilename(modelName) + suffix;
if (!config.shouldOverwrite(filename)) {
LOGGER.info("Skipped overwriting " + filename);
@@ -382,6 +382,10 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
} */
});
+ Boolean skipFormModel = System.getProperty(CodegenConstants.SKIP_FORM_MODEL) != null ?
+ Boolean.valueOf(System.getProperty(CodegenConstants.SKIP_FORM_MODEL)) :
+ getGeneratorPropertyDefaultSwitch(CodegenConstants.SKIP_FORM_MODEL, false);
+
// process models only
for (String name : modelKeys) {
try {
@@ -393,8 +397,13 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
// don't generate models that are not used as object (e.g. form parameters)
if (unusedModels.contains(name)) {
- LOGGER.debug("Model " + name + " not generated since it's marked as unused (due to form parameters)");
- continue;
+ if (Boolean.FALSE.equals(skipFormModel)) {
+ // if skipFormModel sets to true, still generate the model and log the result
+ LOGGER.info("Model " + name + " (marked as unused due to form parameters) is generated due to skipFormModel=false (default)");
+ } else {
+ LOGGER.info("Model " + name + " not generated since it's marked as unused (due to form parameters) and skipFormModel set to true");
+ continue;
+ }
}
Schema schema = schemas.get(name);
@@ -753,6 +762,12 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
bundle.put("authMethods", authMethods);
bundle.put("hasAuthMethods", true);
}
+
+ List servers = config.fromServers(openAPI.getServers());
+ if (servers != null && !servers.isEmpty()) {
+ bundle.put("servers", servers);
+ bundle.put("hasServers", true);
+ }
if (openAPI.getExternalDocs() != null) {
bundle.put("externalDocs", openAPI.getExternalDocs());
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
index 742942e4967..a17b13c15a6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java
@@ -238,7 +238,7 @@ public class InlineModelResolver {
}
} else if (property instanceof MapSchema) {
MapSchema mp = (MapSchema) property;
- Schema innerProperty = (Schema) mp.getAdditionalProperties();
+ Schema innerProperty = ModelUtils.getAdditionalProperties(mp);
if (innerProperty instanceof ObjectSchema) {
ObjectSchema op = (ObjectSchema) innerProperty;
if (op.getProperties() != null && op.getProperties().size() > 0) {
@@ -431,7 +431,7 @@ public class InlineModelResolver {
}
}
if (ModelUtils.isMapSchema(property)) {
- Schema inner = (Schema) property.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(property);
if (inner instanceof ObjectSchema) {
ObjectSchema op = (ObjectSchema) inner;
if (op.getProperties() != null && op.getProperties().size() > 0) {
@@ -519,7 +519,7 @@ public class InlineModelResolver {
model.setDescription(description);
model.setName(object.getName());
model.setExample(example);
- model.setItems((Schema) object.getAdditionalProperties());
+ model.setItems(ModelUtils.getAdditionalProperties(object));
return model;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java
index 102b535cafd..798d9c1e03f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/auth/AuthParser.java
@@ -21,6 +21,7 @@ import io.swagger.v3.parser.core.models.AuthorizationValue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
@@ -39,8 +40,11 @@ public class AuthParser {
for (String part : parts) {
String[] kvPair = part.split(":");
if (kvPair.length == 2) {
- // FIXME replace the deprecated method by decode(string, encoding). Which encoding is used ? Default UTF-8 ?
- auths.add(new AuthorizationValue(URLDecoder.decode(kvPair[0]), URLDecoder.decode(kvPair[1]), "header"));
+ try {
+ auths.add(new AuthorizationValue(URLDecoder.decode(kvPair[0], "UTF-8"), URLDecoder.decode(kvPair[1], "UTF-8"), "header"));
+ } catch (UnsupportedEncodingException e) {
+ LOGGER.warn(e.getMessage());
+ }
}
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
index 8ec858f2bfb..a1993a6d967 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/config/CodegenConfigurator.java
@@ -19,16 +19,33 @@ package org.openapitools.codegen.config;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
-import io.swagger.v3.oas.models.OpenAPI;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.auth.AuthParser;
import io.swagger.parser.OpenAPIParser;
import io.swagger.v3.core.util.Json;
+import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.core.models.AuthorizationValue;
import io.swagger.v3.parser.core.models.ParseOptions;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
import org.apache.commons.lang3.Validate;
-import org.openapitools.codegen.languages.*;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.ClientOptInput;
+import org.openapitools.codegen.ClientOpts;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConfigLoader;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.SpecValidationException;
+import org.openapitools.codegen.auth.AuthParser;
+import org.openapitools.codegen.languages.CSharpNancyFXServerCodegen;
+import org.openapitools.codegen.languages.CppQt5ClientCodegen;
+import org.openapitools.codegen.languages.CppRestSdkClientCodegen;
+import org.openapitools.codegen.languages.CppTizenClientCodegen;
+import org.openapitools.codegen.languages.JavaJerseyServerCodegen;
+import org.openapitools.codegen.languages.PhpLumenServerCodegen;
+import org.openapitools.codegen.languages.PhpSlimServerCodegen;
+import org.openapitools.codegen.languages.PhpZendExpressivePathHandlerServerCodegen;
+import org.openapitools.codegen.languages.RubySinatraServerCodegen;
+import org.openapitools.codegen.languages.ScalaAkkaClientCodegen;
+import org.openapitools.codegen.languages.ScalaHttpClientCodegen;
+import org.openapitools.codegen.languages.SwiftClientCodegen;
import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,6 +57,7 @@ import java.nio.file.Paths;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -139,7 +157,7 @@ public class CodegenConfigurator implements Serializable {
public CodegenConfigurator setGeneratorName(final String generatorName) {
if (nameMigrationMap.containsKey(generatorName)) {
String newValue = nameMigrationMap.get(generatorName);
- LOGGER.warn(String.format("The name '%s' is a deprecated. Please update to the new name of '%s'.", generatorName, newValue));
+ LOGGER.warn(String.format(Locale.ROOT, "The name '%s' is a deprecated. Please update to the new name of '%s'.", generatorName, newValue));
this.generatorName = newValue;
} else {
this.generatorName = generatorName;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java
index 8bce5a3cd1e..47552634f4f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/examples/ExampleGenerator.java
@@ -236,10 +236,10 @@ public class ExampleGenerator {
Map mp = new HashMap();
if (property.getName() != null) {
mp.put(property.getName(),
- resolvePropertyToExample(propertyName, mediaType, (Schema) property.getAdditionalProperties(), processedModels));
+ resolvePropertyToExample(propertyName, mediaType, ModelUtils.getAdditionalProperties(property), processedModels));
} else {
mp.put("key",
- resolvePropertyToExample(propertyName, mediaType, (Schema) property.getAdditionalProperties(), processedModels));
+ resolvePropertyToExample(propertyName, mediaType, ModelUtils.getAdditionalProperties(property), processedModels));
}
return mp;
} else if (ModelUtils.isUUIDSchema(property)) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java
index e29da72cfca..fe7991a554f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/CodegenIgnoreProcessor.java
@@ -25,9 +25,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Locale;
/**
* Presents a processing utility for parsing and evaluating files containing common ignore patterns. (.openapi-generator-ignore)
@@ -82,30 +84,30 @@ public class CodegenIgnoreProcessor {
loadCodegenRules(targetIgnoreFile);
this.ignoreFile = targetIgnoreFile;
} catch (IOException e) {
- LOGGER.error(String.format("Could not process %s.", targetIgnoreFile.getName()), e.getMessage());
+ LOGGER.error(String.format(Locale.ROOT, "Could not process %s.", targetIgnoreFile.getName()), e.getMessage());
}
} else if (!".swagger-codegen-ignore".equals(targetIgnoreFile.getName())) {
final File legacyIgnoreFile = new File(targetIgnoreFile.getParentFile(), ".swagger-codegen-ignore");
if (legacyIgnoreFile.exists() && legacyIgnoreFile.isFile()) {
- LOGGER.info(String.format("Legacy support: '%s' file renamed to '%s'.", legacyIgnoreFile.getName(), targetIgnoreFile.getName()));
+ LOGGER.info(String.format(Locale.ROOT, "Legacy support: '%s' file renamed to '%s'.", legacyIgnoreFile.getName(), targetIgnoreFile.getName()));
try {
Files.move(legacyIgnoreFile, targetIgnoreFile);
loadFromFile(targetIgnoreFile);
} catch (IOException e) {
- LOGGER.error(String.format("Could not rename file: %s", e.getMessage()));
+ LOGGER.error(String.format(Locale.ROOT, "Could not rename file: %s", e.getMessage()));
}
} else {
// log info message
- LOGGER.info(String.format("No %s file found.", targetIgnoreFile.getName()));
+ LOGGER.info(String.format(Locale.ROOT, "No %s file found.", targetIgnoreFile.getName()));
}
} else {
// log info message
- LOGGER.info(String.format("No %s file found.", targetIgnoreFile.getName()));
+ LOGGER.info(String.format(Locale.ROOT, "No %s file found.", targetIgnoreFile.getName()));
}
}
void loadCodegenRules(final File codegenIgnore) throws IOException {
- try (BufferedReader reader = new BufferedReader(new FileReader(codegenIgnore))) {
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(codegenIgnore), Charset.forName("UTF-8")))) {
String line;
// NOTE: Comments that start with a : (e.g. //:) are pulled from git documentation for .gitignore
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java
index a2355dfaa64..079ac3c7a1a 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/ignore/rules/Rule.java
@@ -183,7 +183,6 @@ public abstract class Rule {
}
} catch (ParserException e) {
- e.printStackTrace();
return new InvalidRule(null, definition, e.getMessage());
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java
index af2ef2c1d1b..d15b57315da 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java
@@ -19,13 +19,11 @@ package org.openapitools.codegen.languages;
import com.samskivert.mustache.Escapers;
import com.samskivert.mustache.Mustache;
-
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.responses.ApiResponse;
-
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
@@ -43,6 +41,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
abstract public class AbstractAdaCodegen extends DefaultCodegen implements CodegenConfig {
@@ -180,7 +179,7 @@ abstract public class AbstractAdaCodegen extends DefaultCodegen implements Codeg
}
public String toFilename(String name) {
- return name.replace(".", "-").toLowerCase();
+ return name.replace(".", "-").toLowerCase(Locale.ROOT);
}
/**
@@ -329,7 +328,7 @@ abstract public class AbstractAdaCodegen extends DefaultCodegen implements Codeg
return getTypeDeclaration(inner) + "_Vectors.Vector";
}
if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
String name = getTypeDeclaration(inner) + "_Map";
if (name.startsWith("Swagger.")) {
return name;
@@ -391,7 +390,7 @@ abstract public class AbstractAdaCodegen extends DefaultCodegen implements Codeg
String mt = media.get("mediaType");
if (mt != null) {
mt = mt.replace('/', '_');
- media.put("adaMediaType", mt.toUpperCase());
+ media.put("adaMediaType", mt.toUpperCase(Locale.ROOT));
count++;
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java
index cfae5b1a588..3968eaaca51 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java
@@ -18,12 +18,12 @@
package org.openapitools.codegen.languages;
import java.util.*;
-import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Strings;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenOperation;
import org.openapitools.codegen.CodegenParameter;
-import org.openapitools.codegen.CodegenModel;
-import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenProperty;
import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.DefaultCodegen;
@@ -90,7 +90,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
// sanitize name
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
- if (name.toLowerCase().matches("^_*class$")) {
+ if (name.toLowerCase(Locale.ROOT).matches("^_*class$")) {
return "propertyClass";
}
@@ -107,7 +107,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
}
if (startsWithTwoUppercaseLetters(name)) {
- name = name.substring(0, 2).toLowerCase() + name.substring(2);
+ name = name.substring(0, 2).toLowerCase(Locale.ROOT) + name.substring(2);
}
// camelize (lower first character) the variable name
@@ -125,7 +125,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
private boolean startsWithTwoUppercaseLetters(String name) {
boolean startsWithTwoUppercaseLetters = false;
if (name.length() > 1) {
- startsWithTwoUppercaseLetters = name.substring(0, 2).equals(name.substring(0, 2).toUpperCase());
+ startsWithTwoUppercaseLetters = name.substring(0, 2).equals(name.substring(0, 2).toUpperCase(Locale.ROOT));
}
return startsWithTwoUppercaseLetters;
}
@@ -196,7 +196,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
}
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
if (inner == null) {
LOGGER.warn(p.getName() + "(map property) does not have a proper inner type defined");
@@ -225,15 +225,15 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
return null;
}
- return String.format(pattern, getTypeDeclaration(ap.getItems()));
+ return String.format(Locale.ROOT, pattern, getTypeDeclaration(ap.getItems()));
} else if (ModelUtils.isMapSchema(p)) {
final MapSchema ap = (MapSchema) p;
final String pattern = "new HashMap<%s>()";
- if (ap.getAdditionalProperties() == null) {
+ if (ModelUtils.getAdditionalProperties(ap) == null) {
return null;
}
- return String.format(pattern, String.format("String, %s", getTypeDeclaration((Schema) ap.getAdditionalProperties())));
+ return String.format(Locale.ROOT, pattern, String.format(Locale.ROOT, "String, %s", getTypeDeclaration(ModelUtils.getAdditionalProperties(ap))));
} else if (ModelUtils.isLongSchema(p)) {
if (p.getDefault() != null) {
return p.getDefault().toString() + "l";
@@ -297,7 +297,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
p.example = "'" + p.example + "'";
} else if ("".equals(p.example) || p.example == null && p.dataType != "Object") {
// Get an example object from the generated model
- if (!isReservedWord(p.dataType.toLowerCase())) {
+ if (!isReservedWord(p.dataType.toLowerCase(Locale.ROOT))) {
p.example = p.dataType + ".getExample()";
}
} else {
@@ -332,7 +332,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
} else if (example.isEmpty()) {
example = "2000, 1, 23";
} else {
- LOGGER.warn(String.format("The example provided for property '%s' is not a valid RFC3339 date. Defaulting to '2000-01-23'. [%s]", p
+ LOGGER.warn(String.format(Locale.ROOT, "The example provided for property '%s' is not a valid RFC3339 date. Defaulting to '2000-01-23'. [%s]", p
.getName(), example));
example = "2000, 1, 23";
}
@@ -343,7 +343,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
} else if (example.isEmpty()) {
example = "2000, 1, 23, 4, 56, 7";
} else {
- LOGGER.warn(String.format("The example provided for property '%s' is not a valid RFC3339 datetime. Defaulting to '2000-01-23T04-56-07Z'. [%s]", p
+ LOGGER.warn(String.format(Locale.ROOT, "The example provided for property '%s' is not a valid RFC3339 datetime. Defaulting to '2000-01-23T04-56-07Z'. [%s]", p
.getName(), example));
example = "2000, 1, 23, 4, 56, 7";
}
@@ -366,7 +366,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
} else if (ModelUtils.isLongSchema(p)) {
example = example.isEmpty() ? "123456789L" : example + "L";
} else if (ModelUtils.isMapSchema(p)) {
- example = "new " + getTypeDeclaration(p) + "{'key'=>" + toExampleValue((Schema) p.getAdditionalProperties()) + "}";
+ example = "new " + getTypeDeclaration(p) + "{'key'=>" + toExampleValue(ModelUtils.getAdditionalProperties(p)) + "}";
} else if (ModelUtils.isPasswordSchema(p)) {
example = example.isEmpty() ? "password123" : escapeText(example);
@@ -526,7 +526,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
// for symbol, e.g. $, #
if (getSymbolName(value) != null) {
- return getSymbolName(value).toUpperCase();
+ return getSymbolName(value).toUpperCase(Locale.ROOT);
}
// number
@@ -540,7 +540,7 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code
}
// string
- String var = value.replaceAll("\\W+", "_").toUpperCase();
+ String var = value.replaceAll("\\W+", "_").toUpperCase(Locale.ROOT);
if (var.matches("\\d.*")) {
return "_" + var;
} else {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java
index 023f6f51e12..92c9f536068 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java
@@ -234,7 +234,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
}
if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) {
- LOGGER.warn(String.format("%s is not used by C# generators. Please use %s",
+ LOGGER.warn(String.format(Locale.ROOT, "%s is not used by C# generators. Please use %s",
CodegenConstants.INVOKER_PACKAGE, CodegenConstants.PACKAGE_NAME));
}
@@ -313,9 +313,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
if (additionalProperties.containsKey(CodegenConstants.INTERFACE_PREFIX)) {
String useInterfacePrefix = additionalProperties.get(CodegenConstants.INTERFACE_PREFIX).toString();
- if ("false".equals(useInterfacePrefix.toLowerCase())) {
+ if ("false".equals(useInterfacePrefix.toLowerCase(Locale.ROOT))) {
setInterfacePrefix("");
- } else if (!"true".equals(useInterfacePrefix.toLowerCase())) {
+ } else if (!"true".equals(useInterfacePrefix.toLowerCase(Locale.ROOT))) {
// NOTE: if user passes "true" explicitly, we use the default I- prefix. The other supported case here is a custom prefix.
setInterfacePrefix(sanitizeName(useInterfacePrefix));
}
@@ -768,8 +768,8 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
// NOTE: typeMapping here supports things like string/String, long/Long, datetime/DateTime as lowercase keys.
// Should we require explicit casing here (values are not insensitive).
// TODO avoid using toLowerCase as typeMapping should be case-sensitive
- if (typeMapping.containsKey(openAPIType.toLowerCase())) {
- type = typeMapping.get(openAPIType.toLowerCase());
+ if (typeMapping.containsKey(openAPIType.toLowerCase(Locale.ROOT))) {
+ type = typeMapping.get(openAPIType.toLowerCase(Locale.ROOT));
if (languageSpecificPrimitives.contains(type)) {
return type;
}
@@ -811,7 +811,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
return getArrayTypeDeclaration((ArraySchema) p);
} else if (ModelUtils.isMapSchema(p)) {
// Should we also support maps of maps?
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
}
return super.getTypeDeclaration(p);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java
index 55341daf942..116a27d1cac 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractEiffelCodegen.java
@@ -17,15 +17,11 @@
package org.openapitools.codegen.languages;
-import static com.google.common.base.Strings.isNullOrEmpty;
-
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-
import io.swagger.v3.core.util.Json;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
-
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
@@ -46,9 +42,12 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
+import static com.google.common.base.Strings.isNullOrEmpty;
+
public abstract class AbstractEiffelCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractEiffelCodegen.class);
@@ -169,13 +168,13 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
@Override
public String toParamName(String name) {
// params should be lowercase. E.g. "person: PERSON"
- return toVarName(name).toLowerCase();
+ return toVarName(name).toLowerCase(Locale.ROOT);
}
@Override
public String toModelName(String name) {
// phone_number => PHONE_NUMBER
- return toModelFilename(name).toUpperCase();
+ return toModelFilename(name).toUpperCase(Locale.ROOT);
}
@Override
@@ -221,7 +220,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
@Override
public String toApiTestFilename(String name) {
- return toApiName(name).toLowerCase() + "_test";
+ return toApiName(name).toLowerCase(Locale.ROOT) + "_test";
}
@Override
@@ -229,7 +228,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
if (name.length() == 0) {
return "DEFAULT_API";
}
- return name.toUpperCase() + "_API";
+ return name.toUpperCase(Locale.ROOT) + "_API";
}
/**
@@ -269,7 +268,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
}
}
if (!isNullOrEmpty(model.parentSchema)) {
- model.parentSchema = model.parentSchema.toLowerCase();
+ model.parentSchema = model.parentSchema.toLowerCase(Locale.ROOT);
}
}
@@ -290,7 +289,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
Schema inner = ap.getItems();
return "LIST [" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
}
@@ -352,7 +351,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
for (CodegenOperation operation : operations) {
// http method verb conversion (e.g. PUT => Put)
- operation.httpMethod = camelize(operation.httpMethod.toLowerCase());
+ operation.httpMethod = camelize(operation.httpMethod.toLowerCase(Locale.ROOT));
}
// remove model imports to avoid error
@@ -557,7 +556,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- Schema additionalProperties2 = (Schema) p.getAdditionalProperties();
+ Schema additionalProperties2 = ModelUtils.getAdditionalProperties(p);
String type = additionalProperties2.getType();
if (null == type) {
LOGGER.error("No Type defined for Additional Schema " + additionalProperties2 + "\n" //
@@ -575,7 +574,7 @@ public abstract class AbstractEiffelCodegen extends DefaultCodegen implements Co
}
public String unCamelize(String name) {
- return name.replaceAll("(.)(\\p{Upper})", "$1_$2").toLowerCase();
+ return name.replaceAll("(.)(\\p{Upper})", "$1_$2").toLowerCase(Locale.ROOT);
}
public String toEiffelFeatureStyle(String operationId) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java
index 2db13c3af69..e6d60a99df2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java
@@ -17,22 +17,16 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.*;
import org.openapitools.codegen.utils.ModelUtils;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.core.util.Yaml;
-
-import java.util.*;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.*;
+
public abstract class AbstractGoCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractGoCodegen.class);
@@ -258,7 +252,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
Schema inner = ap.getItems();
return "[]" + getTypeDeclaration(inner);
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[string]" + getTypeDeclaration(inner);
}
//return super.getTypeDeclaration(p);
@@ -335,7 +329,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
List operations = (List) objectMap.get("operation");
for (CodegenOperation operation : operations) {
// http method verb conversion (e.g. PUT => Put)
- operation.httpMethod = camelize(operation.httpMethod.toLowerCase());
+ operation.httpMethod = camelize(operation.httpMethod.toLowerCase(Locale.ROOT));
}
// remove model imports to avoid error
@@ -389,7 +383,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
} else {
// Map optional type to dataType
param.vendorExtensions.put("x-optionalDataType",
- param.dataType.substring(0, 1).toUpperCase() + param.dataType.substring(1));
+ param.dataType.substring(0, 1).toUpperCase(Locale.ROOT) + param.dataType.substring(1));
}
}
@@ -562,11 +556,11 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return getSymbolName(name).toUpperCase();
+ return getSymbolName(name).toUpperCase(Locale.ROOT);
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -581,7 +575,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java
index ea1b16fbfbe..eb0d56a9470 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java
@@ -49,6 +49,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
@@ -564,7 +565,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
// sanitize name
name = sanitizeName(name, "\\W-[\\$]"); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
- if (name.toLowerCase().matches("^_*class$")) {
+ if (name.toLowerCase(Locale.ROOT).matches("^_*class$")) {
return "propertyClass";
}
@@ -578,7 +579,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
if (startsWithTwoUppercaseLetters(name)) {
- name = name.substring(0, 2).toLowerCase() + name.substring(2);
+ name = name.substring(0, 2).toLowerCase(Locale.ROOT) + name.substring(2);
}
// If name contains special chars -> replace them.
@@ -604,7 +605,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
private boolean startsWithTwoUppercaseLetters(String name) {
boolean startsWithTwoUppercaseLetters = false;
if (name.length() > 1) {
- startsWithTwoUppercaseLetters = name.substring(0, 2).equals(name.substring(0, 2).toUpperCase());
+ startsWithTwoUppercaseLetters = name.substring(0, 2).equals(name.substring(0, 2).toUpperCase(Locale.ROOT));
}
return startsWithTwoUppercaseLetters;
}
@@ -679,7 +680,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
if (inner == null) {
LOGGER.warn(p.getName() + "(map property) does not have a proper inner type defined. Default to string");
inner = new StringSchema().description("TODO default missing array inner type to string");
@@ -720,7 +721,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
}
- return String.format(pattern, typeDeclaration);
+ return String.format(Locale.ROOT, pattern, typeDeclaration);
} else if (ModelUtils.isMapSchema(p)) {
final String pattern;
if (fullJavaUtil) {
@@ -728,11 +729,11 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
} else {
pattern = "new HashMap<%s>()";
}
- if (p.getAdditionalProperties() == null) {
+ if (ModelUtils.getAdditionalProperties(p) == null) {
return null;
}
- String typeDeclaration = String.format("String, %s", getTypeDeclaration((Schema) p.getAdditionalProperties()));
+ String typeDeclaration = String.format(Locale.ROOT, "String, %s", getTypeDeclaration(ModelUtils.getAdditionalProperties(p)));
Object java8obj = additionalProperties.get("java8");
if (java8obj != null) {
Boolean java8 = Boolean.valueOf(java8obj.toString());
@@ -741,7 +742,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
}
- return String.format(pattern, typeDeclaration);
+ return String.format(Locale.ROOT, pattern, typeDeclaration);
} else if (ModelUtils.isIntegerSchema(p)) {
if (p.getDefault() != null) {
if (SchemaTypeUtil.INTEGER64_FORMAT.equals(p.getFormat())) {
@@ -1049,7 +1050,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
// for symbol, e.g. $, #
if (getSymbolName(value) != null) {
- return getSymbolName(value).toUpperCase();
+ return getSymbolName(value).toUpperCase(Locale.ROOT);
}
// number
@@ -1063,7 +1064,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
}
// string
- String var = value.replaceAll("\\W+", "_").toUpperCase();
+ String var = value.replaceAll("\\W+", "_").toUpperCase(Locale.ROOT);
if (var.matches("\\d.*")) {
return "_" + var;
} else {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java
index 726b69f73b3..774c96fe33f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractKotlinCodegen.java
@@ -17,16 +17,13 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.utils.ModelUtils;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,6 +31,7 @@ import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
public abstract class AbstractKotlinCodegen extends DefaultCodegen implements CodegenConfig {
@@ -220,7 +218,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
@Override
public String escapeReservedWord(String name) {
// TODO: Allow enum escaping as an option (e.g. backticks vs append/prepend underscore vs match model property escaping).
- return String.format("`%s`", name);
+ return String.format(Locale.ROOT, "`%s`", name);
}
@Override
@@ -282,7 +280,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
if (ModelUtils.isArraySchema(p)) {
return getArrayTypeDeclaration((ArraySchema) p);
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
// Maps will be keyed only by primitive Kotlin string
return getSchemaType(p) + "";
@@ -414,7 +412,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
modified = underscore(modified);
break;
case UPPERCASE:
- modified = modified.toUpperCase();
+ modified = modified.toUpperCase(Locale.ROOT);
break;
}
@@ -536,7 +534,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
}
private String titleCase(final String input) {
- return input.substring(0, 1).toUpperCase() + input.substring(1);
+ return input.substring(0, 1).toUpperCase(Locale.ROOT) + input.substring(1);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java
index abc94c73ee2..98161179c1c 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java
@@ -1,5 +1,4 @@
-/*
- * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+/*ap Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
* Copyright 2018 SmartBear Software
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,6 +16,9 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -24,23 +26,20 @@ import org.openapitools.codegen.CodegenOperation;
import org.openapitools.codegen.CodegenParameter;
import org.openapitools.codegen.CodegenProperty;
import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.media.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.regex.Matcher;
-import org.apache.commons.lang3.StringUtils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
public abstract class AbstractPhpCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPhpCodegen.class);
@@ -238,6 +237,9 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
// apache v2 license
// supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE"));
+
+ // all PHP codegens requires Composer, it means that we need to exclude from SVN at least vendor folder
+ supportingFiles.add(new SupportingFile(".gitignore", "", ".gitignore"));
}
public String getPackageName() {
@@ -328,7 +330,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
Schema inner = ap.getItems();
return getTypeDeclaration(inner) + "[]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[string," + getTypeDeclaration(inner) + "]";
} else if (StringUtils.isNotBlank(p.get$ref())) { // model
String type = super.getTypeDeclaration(p);
@@ -623,7 +625,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return (getSymbolName(name)).toUpperCase();
+ return (getSymbolName(name)).toUpperCase(Locale.ROOT);
}
// number
@@ -636,7 +638,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -649,7 +651,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java
index 5848febe0b2..b26a99dd43b 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRubyCodegen.java
@@ -19,12 +19,14 @@ package org.openapitools.codegen.languages;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
-import org.openapitools.codegen.*;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Arrays;
+import java.util.Locale;
abstract class AbstractRubyCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRubyCodegen.class);
@@ -88,7 +90,7 @@ abstract class AbstractRubyCodegen extends DefaultCodegen implements CodegenConf
Schema inner = ((ArraySchema) schema).getItems();
return getSchemaType(schema) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(schema)) {
- Schema inner = (Schema) schema.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(schema);
return getSchemaType(schema) + "";
}
@@ -116,7 +118,7 @@ abstract class AbstractRubyCodegen extends DefaultCodegen implements CodegenConf
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
// if it's all uppper case, convert to lower case
if (name.matches("^[A-Z_]*$")) {
- name = name.toLowerCase();
+ name = name.toLowerCase(Locale.ROOT);
}
// camelize (lower first character) the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java
index 4993950e862..05b9f4dea4e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java
@@ -181,7 +181,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
@@ -206,7 +206,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return instantiationTypes.get("map") + "[String, " + inner + "]";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
@@ -235,7 +235,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
} else if (ModelUtils.isIntegerSchema(p)) {
return null;
} else if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "new HashMap[String, " + inner + "]() ";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
index 5a02de72028..491fdf0b03e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
@@ -227,7 +227,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "{ [key: string]: " + getTypeDeclaration(inner) + "; }";
} else if (ModelUtils.isFileSchema(p)) {
return "any";
@@ -246,7 +246,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
inner = mp1.getItems();
return this.getSchemaType(p) + "<" + this.getParameterDataType(parameter, inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- inner = (Schema) p.getAdditionalProperties();
+ inner = ModelUtils.getAdditionalProperties(p);
return "{ [key: string]: " + this.getParameterDataType(parameter, inner) + "; }";
} else if (ModelUtils.isStringSchema(p)) {
// Handle string enums
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaCodegen.java
index fd7f105715b..3a0731106f3 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaCodegen.java
@@ -17,14 +17,18 @@
package org.openapitools.codegen.languages;
+import com.samskivert.mustache.Mustache;
+import com.samskivert.mustache.Template;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
+
import java.io.File;
import java.io.IOException;
import java.io.Writer;
-
-import org.apache.commons.lang3.StringUtils;
-import com.samskivert.mustache.Mustache;
-import com.samskivert.mustache.Template;
-import org.openapitools.codegen.*;
+import java.util.Locale;
public class AdaCodegen extends AbstractAdaCodegen implements CodegenConfig {
@@ -71,7 +75,7 @@ public class AdaCodegen extends AbstractAdaCodegen implements CodegenConfig {
// e.g. petstore.api (package name) => petstore_api (project name)
projectName = packageName.replaceAll("\\.", "_");
}
- String configBaseName = modelPackage.toLowerCase();
+ String configBaseName = modelPackage.toLowerCase(Locale.ROOT);
supportingFiles.add(new SupportingFile("gnat-project.mustache", "", toFilename(projectName) + ".gpr"));
// supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
supportingFiles.add(new SupportingFile("config.gpr", "", "config.gpr"));
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java
index 5432657766b..1e273095181 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AdaServerCodegen.java
@@ -19,7 +19,6 @@ package org.openapitools.codegen.languages;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template;
-
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenType;
@@ -28,6 +27,7 @@ import org.openapitools.codegen.SupportingFile;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
+import java.util.Locale;
public class AdaServerCodegen extends AbstractAdaCodegen implements CodegenConfig {
@@ -76,7 +76,7 @@ public class AdaServerCodegen extends AbstractAdaCodegen implements CodegenConfi
// e.g. petstore.api (package name) => petstore_api (project name)
projectName = packageName.replaceAll("\\.", "_");
}
- String configBaseName = modelPackage.toLowerCase();
+ String configBaseName = modelPackage.toLowerCase(Locale.ROOT);
supportingFiles.add(new SupportingFile("gnat-project.mustache", "", toFilename(projectName) + ".gpr"));
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
supportingFiles.add(new SupportingFile("config.gpr", "", "config.gpr"));
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AndroidClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AndroidClientCodegen.java
index 65674eaf39c..ea267ac8cb8 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AndroidClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AndroidClientCodegen.java
@@ -189,7 +189,7 @@ public class AndroidClientCodegen extends DefaultCodegen implements CodegenConfi
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java
index 8af857cc287..66dcb89a522 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ApexClientCodegen.java
@@ -217,6 +217,7 @@ public class ApexClientCodegen extends AbstractApexCodegen {
if (ModelUtils.isArraySchema(p)) {
Schema inner = ((ArraySchema) p).getItems();
out = String.format(
+ Locale.ROOT,
"new List<%s>()",
inner == null ? "Object" : getTypeDeclaration(inner)
);
@@ -227,14 +228,14 @@ public class ApexClientCodegen extends AbstractApexCodegen {
Long def = (Long) p.getDefault();
out = def == null ? out : def.toString() + "L";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
String s = inner == null ? "Object" : getTypeDeclaration(inner);
- out = String.format("new Map()", s);
+ out = String.format(Locale.ROOT, "new Map()", s);
} else if (ModelUtils.isStringSchema(p)) {
if (p.getDefault() != null) {
String def = p.getDefault().toString();
if (def != null) {
- out = p.getEnum() == null ? String.format("'%s'", escapeText(def)) : def;
+ out = p.getEnum() == null ? String.format(Locale.ROOT, "'%s'", escapeText(def)) : def;
}
}
} else {
@@ -270,7 +271,7 @@ public class ApexClientCodegen extends AbstractApexCodegen {
if (apiVersion.matches("^\\d{2}(\\.0)?$")) {
return apiVersion.substring(0, 2) + ".0";
} else {
- LOGGER.warn(String.format("specified API version is invalid: %s - defaulting to %s", apiVersion, this.apiVersion));
+ LOGGER.warn(String.format(Locale.ROOT, "specified API version is invalid: %s - defaulting to %s", apiVersion, this.apiVersion));
return this.apiVersion;
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java
index 1c269a15d57..2ae16f32581 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java
@@ -17,21 +17,21 @@
package org.openapitools.codegen.languages;
-import com.fasterxml.jackson.core.JsonProcessingException;
-
import com.samskivert.mustache.Mustache;
-
import io.swagger.v3.oas.models.OpenAPI;
-
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.ModelUtils;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.URLPathUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.net.URL;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Locale;
+import java.util.Map;
import static java.util.UUID.randomUUID;
@@ -39,7 +39,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
public static final String USE_SWASHBUCKLE = "useSwashbuckle";
- private String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}";
+ private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
@SuppressWarnings("hiding")
protected Logger LOGGER = LoggerFactory.getLogger(AspNetCoreServerCodegen.class);
@@ -141,7 +141,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
additionalProperties.put(USE_SWASHBUCKLE, useSwashbuckle);
}
- additionalProperties.put("dockerTag", packageName.toLowerCase());
+ additionalProperties.put("dockerTag", packageName.toLowerCase(Locale.ROOT));
apiPackage = packageName + ".Controllers";
modelPackage = packageName + ".Models";
@@ -211,7 +211,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
}
// Converts, for example, PUT to HttpPut for controller attributes
- operation.httpMethod = "Http" + operation.httpMethod.substring(0, 1) + operation.httpMethod.substring(1).toLowerCase();
+ operation.httpMethod = "Http" + operation.httpMethod.substring(0, 1) + operation.httpMethod.substring(1).toLowerCase(Locale.ROOT);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java
index 2dd33784fe3..fa599d439f5 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java
@@ -388,7 +388,7 @@ public class BashClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -637,7 +637,7 @@ public class BashClientCodegen extends DefaultCodegen implements CodegenConfig {
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(
definitions.get(p.dataType).getExample()));
} catch (JsonProcessingException e) {
- e.printStackTrace();
+ LOGGER.warn(e.getMessage(), e);
}
} else {
/**
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java
index 0e493b93286..470641d928a 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java
@@ -17,13 +17,9 @@
package org.openapitools.codegen.languages;
-import static org.apache.commons.lang3.StringUtils.isEmpty;
-
import com.google.common.collect.ImmutableMap;
import com.samskivert.mustache.Mustache;
-
import io.swagger.v3.oas.models.media.Schema;
-
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
@@ -40,8 +36,11 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
+import static org.apache.commons.lang3.StringUtils.isEmpty;
+
public class CSharpClientCodegen extends AbstractCSharpCodegen {
@SuppressWarnings({"hiding"})
private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
@@ -57,7 +56,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
// Defines the sdk option for targeted frameworks, which differs from targetFramework and targetFrameworkNuget
private static final String MCS_NET_VERSION_KEY = "x-mcs-sdk";
- protected String packageGuid = "{" + java.util.UUID.randomUUID().toString().toUpperCase() + "}";
+ protected String packageGuid = "{" + java.util.UUID.randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
protected String clientPackage = "Org.OpenAPITools.Client";
protected String localVariablePrefix = "";
protected String apiDocPath = "docs/";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNancyFXServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNancyFXServerCodegen.java
index 0180059a678..be5147d3dac 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNancyFXServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNancyFXServerCodegen.java
@@ -17,17 +17,24 @@
package org.openapitools.codegen.languages;
-import static com.google.common.base.Strings.isNullOrEmpty;
-import static org.apache.commons.lang3.StringUtils.capitalize;
-import static org.openapitools.codegen.CodegenConstants.*;
-import static org.openapitools.codegen.CodegenType.SERVER;
-import static java.util.Arrays.asList;
-import static java.util.UUID.randomUUID;
-
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.*;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.media.*;
+import com.google.common.base.Predicate;
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Multimap;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.media.Schema;
+import org.openapitools.codegen.CodegenModel;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
+import org.openapitools.codegen.utils.URLPathUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.net.URL;
@@ -36,20 +43,34 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Multimap;
+import static com.google.common.base.Strings.isNullOrEmpty;
+import static java.util.Arrays.asList;
+import static java.util.UUID.randomUUID;
+import static org.apache.commons.lang3.StringUtils.capitalize;
+import static org.openapitools.codegen.CodegenConstants.INTERFACE_PREFIX;
+import static org.openapitools.codegen.CodegenConstants.INTERFACE_PREFIX_DESC;
+import static org.openapitools.codegen.CodegenConstants.OPTIONAL_PROJECT_FILE;
+import static org.openapitools.codegen.CodegenConstants.OPTIONAL_PROJECT_FILE_DESC;
+import static org.openapitools.codegen.CodegenConstants.OPTIONAL_PROJECT_GUID;
+import static org.openapitools.codegen.CodegenConstants.OPTIONAL_PROJECT_GUID_DESC;
+import static org.openapitools.codegen.CodegenConstants.PACKAGE_NAME;
+import static org.openapitools.codegen.CodegenConstants.PACKAGE_VERSION;
+import static org.openapitools.codegen.CodegenConstants.RETURN_ICOLLECTION;
+import static org.openapitools.codegen.CodegenConstants.RETURN_ICOLLECTION_DESC;
+import static org.openapitools.codegen.CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG;
+import static org.openapitools.codegen.CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC;
+import static org.openapitools.codegen.CodegenConstants.SOURCE_FOLDER;
+import static org.openapitools.codegen.CodegenConstants.SOURCE_FOLDER_DESC;
+import static org.openapitools.codegen.CodegenConstants.USE_COLLECTION;
+import static org.openapitools.codegen.CodegenConstants.USE_COLLECTION_DESC;
+import static org.openapitools.codegen.CodegenConstants.USE_DATETIME_OFFSET;
+import static org.openapitools.codegen.CodegenConstants.USE_DATETIME_OFFSET_DESC;
+import static org.openapitools.codegen.CodegenType.SERVER;
public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(CSharpNancyFXServerCodegen.class);
@@ -64,7 +85,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
private static final Map> propertyToOpenAPITypeMapping =
createPropertyToOpenAPITypeMapping();
- private String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}";
+ private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
private final Map dependencies = new HashMap<>();
private final Set parentModels = new HashSet<>();
@@ -185,18 +206,18 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
final String assemblyFramework = namespaceInfo.length > 3 ? namespaceInfo[3].trim() : "net45";
if (isNullOrEmpty(model) || isNullOrEmpty(namespaceName)) {
- LOGGER.warn(String.format("Could not import: '%s' - invalid namespace: '%s'", model, entry.getValue()));
+ LOGGER.warn(String.format(Locale.ROOT, "Could not import: '%s' - invalid namespace: '%s'", model, entry.getValue()));
importMapping.remove(model);
} else {
- LOGGER.info(String.format("Importing: '%s' from '%s' namespace.", model, namespaceName));
+ LOGGER.info(String.format(Locale.ROOT, "Importing: '%s' from '%s' namespace.", model, namespaceName));
importMapping.put(model, namespaceName);
}
if (!isNullOrEmpty(modelClass)) {
- LOGGER.info(String.format("Mapping: '%s' class to '%s'", model, modelClass));
+ LOGGER.info(String.format(Locale.ROOT, "Mapping: '%s' class to '%s'", model, modelClass));
modelNameMapping.put(model, modelClass);
}
if (assembly != null && assemblyVersion != null) {
- LOGGER.info(String.format("Adding dependency: '%s', version: '%s', framework: '%s'",
+ LOGGER.info(String.format(Locale.ROOT, "Adding dependency: '%s', version: '%s', framework: '%s'",
assembly, assemblyVersion, assemblyVersion));
dependencies.put(assembly, new DependencyInfo(assemblyVersion, assemblyFramework));
}
@@ -248,7 +269,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
operation.path = operation.path.replace("?", "/");
}
if (!isNullOrEmpty(operation.httpMethod)) {
- operation.httpMethod = capitalize(operation.httpMethod.toLowerCase());
+ operation.httpMethod = capitalize(operation.httpMethod.toLowerCase(Locale.ROOT));
}
}
@@ -280,7 +301,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
for (final CodegenProperty property : parent.vars) {
final CodegenProperty duplicatedByParent = childPropertiesByName.get(property.name);
if (duplicatedByParent != null) {
- LOGGER.info(String.format("Property: '%s' in '%s' model is inherited from '%s'",
+ LOGGER.info(String.format(Locale.ROOT, "Property: '%s' in '%s' model is inherited from '%s'",
property.name, child.classname, parent.classname));
duplicatedByParent.isInherited = true;
final CodegenProperty parentVar = duplicatedByParent.clone();
@@ -322,7 +343,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
} else {
result = enumName;
}
- LOGGER.debug(String.format("toEnumVarName('%s', %s) = '%s'", name, datatype, enumName));
+ LOGGER.debug(String.format(Locale.ROOT, "toEnumVarName('%s', %s) = '%s'", name, datatype, enumName));
return result;
}
@@ -334,7 +355,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
} else {
apiName = capitalize(name);
}
- LOGGER.debug(String.format("toApiName('%s') = '%s'", name, apiName));
+ LOGGER.debug(String.format(Locale.ROOT, "toApiName('%s') = '%s'", name, apiName));
return apiName;
}
@@ -355,7 +376,7 @@ public class CSharpNancyFXServerCodegen extends AbstractCSharpCodegen {
} else {
result = null;
}
- LOGGER.debug(String.format("toModelImport('%s') = '%s'", name, result));
+ LOGGER.debug(String.format(Locale.ROOT, "toModelImport('%s') = '%s'", name, result));
return result;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java
index 604211bd703..89309b512d9 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ClojureClientCodegen.java
@@ -17,6 +17,11 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Contact;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.License;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -24,16 +29,11 @@ import org.openapitools.codegen.CodegenOperation;
import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.SupportingFile;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.info.*;
-
-import org.apache.commons.lang3.StringUtils;
import java.io.File;
-import java.util.Map;
import java.util.List;
+import java.util.Locale;
+import java.util.Map;
public class ClojureClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final String PROJECT_NAME = "projectName";
@@ -221,7 +221,7 @@ public class ClojureClientCodegen extends DefaultCodegen implements CodegenConfi
List ops = (List) objs.get("operation");
for (CodegenOperation op : ops) {
// Convert httpMethod to lower case, e.g. "get", "post"
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
}
return operations;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java
index b9243aaa260..753e55f8d9c 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ConfluenceWikiCodegen.java
@@ -19,7 +19,6 @@ package org.openapitools.codegen.languages;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
-
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -32,6 +31,7 @@ import org.openapitools.codegen.utils.ModelUtils;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class ConfluenceWikiCodegen extends DefaultCodegen implements CodegenConfig {
@@ -99,7 +99,7 @@ public class ConfluenceWikiCodegen extends DefaultCodegen implements CodegenConf
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -110,7 +110,7 @@ public class ConfluenceWikiCodegen extends DefaultCodegen implements CodegenConf
Map operations = (Map) objs.get("operations");
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
}
return objs;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java
index 322509976b4..70ba645a4e6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java
@@ -22,7 +22,6 @@ import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.responses.ApiResponse;
-
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenOperation;
@@ -38,6 +37,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -198,8 +198,8 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen {
public Map postProcessOperationsWithModels(Map objs, List allModels) {
Map operations = (Map) objs.get("operations");
String classname = (String) operations.get("classname");
- operations.put("classnameSnakeUpperCase", DefaultCodegen.underscore(classname).toUpperCase());
- operations.put("classnameSnakeLowerCase", DefaultCodegen.underscore(classname).toLowerCase());
+ operations.put("classnameSnakeUpperCase", DefaultCodegen.underscore(classname).toUpperCase(Locale.ROOT));
+ operations.put("classnameSnakeLowerCase", DefaultCodegen.underscore(classname).toLowerCase(Locale.ROOT));
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
@@ -220,7 +220,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen {
}
}
- op.httpMethod = op.httpMethod.substring(0, 1).toUpperCase() + op.httpMethod.substring(1).toLowerCase();
+ op.httpMethod = op.httpMethod.substring(0, 1).toUpperCase(Locale.ROOT) + op.httpMethod.substring(1).toLowerCase(Locale.ROOT);
for (CodegenParameter param : op.allParams) {
if (param.isFormParam) isParsingSupported = false;
@@ -305,7 +305,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen {
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
}
if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
}
else if (ModelUtils.isByteArraySchema(p)) {
@@ -343,7 +343,7 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen {
else if (ModelUtils.isByteArraySchema(p)) {
return "\"\"";
} else if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "std::map()";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java
index bb06b36b1af..0d3d963f0f4 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5ClientCodegen.java
@@ -17,12 +17,15 @@
package org.openapitools.codegen.languages;
-import org.apache.commons.lang3.StringUtils;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.media.*;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.parser.util.SchemaTypeUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,6 +33,7 @@ import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -294,7 +298,7 @@ public class CppQt5ClientCodegen extends AbstractCppCodegen implements CodegenCo
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">*";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "*";
}
if (foundationClasses.contains(openAPIType)) {
@@ -325,7 +329,7 @@ public class CppQt5ClientCodegen extends AbstractCppCodegen implements CodegenCo
}
return "0";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "new QMap()";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
@@ -371,7 +375,7 @@ public class CppQt5ClientCodegen extends AbstractCppCodegen implements CodegenCo
// if it's all uppper case, convert to lower case
if (varName.matches("^[A-Z_]*$")) {
- varName = varName.toLowerCase();
+ varName = varName.toLowerCase(Locale.ROOT);
}
// camelize (lower first character) the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java
index 9ca30263bf9..37f14e75c81 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5QHttpEngineServerCodegen.java
@@ -17,12 +17,14 @@
package org.openapitools.codegen.languages;
-import org.apache.commons.lang3.StringUtils;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.media.*;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.parser.util.SchemaTypeUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,6 +32,7 @@ import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -323,7 +326,7 @@ public class CppQt5QHttpEngineServerCodegen extends AbstractCppCodegen implement
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
} else if (ModelUtils.isBinarySchema(p)) {
return getSchemaType(p) + "*";
@@ -359,7 +362,7 @@ public class CppQt5QHttpEngineServerCodegen extends AbstractCppCodegen implement
}
return "0";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "QMap()";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
@@ -407,7 +410,7 @@ public class CppQt5QHttpEngineServerCodegen extends AbstractCppCodegen implement
// if it's all uppper case, convert to lower case
if (varName.matches("^[A-Z_]*$")) {
- varName = varName.toLowerCase();
+ varName = varName.toLowerCase(Locale.ROOT);
}
// camelize (lower first character) the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java
index df0e6722863..841e1c2dd09 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java
@@ -17,17 +17,13 @@
package org.openapitools.codegen.languages;
-import static com.google.common.base.Strings.isNullOrEmpty;
-
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.responses.ApiResponse;
-
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
@@ -42,9 +38,12 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
+import static com.google.common.base.Strings.isNullOrEmpty;
+
public class CppRestSdkClientCodegen extends AbstractCppCodegen {
public static final String DECLSPEC = "declspec";
@@ -189,10 +188,10 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen {
additionalProperties.put("modelNamespaceDeclarations", modelPackage.split("\\."));
additionalProperties.put("modelNamespace", modelPackage.replaceAll("\\.", "::"));
- additionalProperties.put("modelHeaderGuardPrefix", modelPackage.replaceAll("\\.", "_").toUpperCase());
+ additionalProperties.put("modelHeaderGuardPrefix", modelPackage.replaceAll("\\.", "_").toUpperCase(Locale.ROOT));
additionalProperties.put("apiNamespaceDeclarations", apiPackage.split("\\."));
additionalProperties.put("apiNamespace", apiPackage.replaceAll("\\.", "::"));
- additionalProperties.put("apiHeaderGuardPrefix", apiPackage.replaceAll("\\.", "_").toUpperCase());
+ additionalProperties.put("apiHeaderGuardPrefix", apiPackage.replaceAll("\\.", "_").toUpperCase(Locale.ROOT));
additionalProperties.put("declspec", declspec);
additionalProperties.put("defaultInclude", defaultInclude);
}
@@ -308,7 +307,7 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen {
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
} else if (ModelUtils.isStringSchema(p)
|| ModelUtils.isDateSchema(p) || ModelUtils.isDateTimeSchema(p)
@@ -339,7 +338,7 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen {
}
return "0";
} else if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "std::map()";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java
index 1dc73dca8b2..028eee1467f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java
@@ -270,7 +270,7 @@ public class CppRestbedServerCodegen extends AbstractCppCodegen {
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
} else if (ModelUtils.isByteArraySchema(p)) {
return "std::string";
@@ -307,7 +307,7 @@ public class CppRestbedServerCodegen extends AbstractCppCodegen {
} else if (ModelUtils.isByteArraySchema(p)) {
return "\"\"";
} else if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "std::map()";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java
index 6203fb04980..d2d83170d94 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartClientCodegen.java
@@ -307,7 +307,7 @@ public class DartClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getSchemaType(p) + "<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "";
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/EiffelClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/EiffelClientCodegen.java
index 6ae78c52a9b..8f7125ae3d4 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/EiffelClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/EiffelClientCodegen.java
@@ -17,13 +17,16 @@
package org.openapitools.codegen.languages;
-import java.io.File;
-import java.util.UUID;
-
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.openapitools.codegen.*;
+import java.io.File;
+import java.util.Locale;
+import java.util.UUID;
public class EiffelClientCodegen extends AbstractEiffelCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(EiffelClientCodegen.class);
@@ -168,7 +171,7 @@ public class EiffelClientCodegen extends AbstractEiffelCodegen {
@Override
public String toEnumName(CodegenProperty property) {
- return sanitizeName(property.name).toUpperCase() + "_ENUM";
+ return sanitizeName(property.name).toUpperCase(Locale.ROOT) + "_ENUM";
}
@Override
@@ -179,7 +182,7 @@ public class EiffelClientCodegen extends AbstractEiffelCodegen {
// for symbol, e.g. $, #
if (getSymbolName(value) != null) {
- return getSymbolName(value).toUpperCase();
+ return getSymbolName(value).toUpperCase(Locale.ROOT);
}
// number
@@ -193,7 +196,7 @@ public class EiffelClientCodegen extends AbstractEiffelCodegen {
}
// string
- String var = value.replaceAll("\\W+", "_").toLowerCase();
+ String var = value.replaceAll("\\W+", "_").toLowerCase(Locale.ROOT);
if (var.matches("\\d.*")) {
return "val_" + var;
} else if (var.startsWith("_")) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java
index 2ee741de696..48da0380353 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElixirClientCodegen.java
@@ -447,7 +447,7 @@ public class ElixirClientCodegen extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "%{optional(String.t) => " + getTypeDeclaration(inner) + "}";
} else if (ModelUtils.isPasswordSchema(p)) {
return "String.t";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
index 46f6e36edae..4f041c6843e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ElmClientCodegen.java
@@ -17,15 +17,21 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.NumberSchema;
+import io.swagger.v3.oas.models.media.Schema;
+import io.swagger.v3.oas.models.responses.ApiResponse;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenModel;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenResponse;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-import org.openapitools.codegen.languages.features.BeanValidationFeatures;
-import org.openapitools.codegen.languages.features.JbossFeature;
-import org.openapitools.codegen.languages.features.SwaggerFeatures;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.parameters.*;
-import io.swagger.v3.oas.models.responses.*;
import java.io.File;
import java.text.Collator;
@@ -36,6 +42,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
@@ -259,7 +266,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig {
Collections.sort(parent.children, new Comparator() {
@Override
public int compare(CodegenModel cm1, CodegenModel cm2) {
- return Collator.getInstance().compare(cm1.classname, cm2.classname);
+ return Collator.getInstance(Locale.ROOT).compare(cm1.classname, cm2.classname);
}
});
}
@@ -486,7 +493,7 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getTypeDeclaration(inner);
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getTypeDeclaration(inner);
}
return super.getTypeDeclaration(p);
@@ -506,8 +513,8 @@ public class ElmClientCodegen extends DefaultCodegen implements CodegenConfig {
}
@Override
- public CodegenResponse fromResponse(String responseCode, ApiResponse resp) {
- final CodegenResponse response = super.fromResponse(responseCode, resp);
+ public CodegenResponse fromResponse(OpenAPI openAPI, String responseCode, ApiResponse resp) {
+ final CodegenResponse response = super.fromResponse(openAPI, responseCode, resp);
if (response.dataType != null) {
addEncoderAndDecoder(response.vendorExtensions, response.dataType, response.isMapContainer, response.primitiveType);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
index 631c93e2b6e..ed5889a92fd 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
@@ -21,6 +21,7 @@ import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template;
import org.openapitools.codegen.*;
+import org.openapitools.codegen.mustache.JoinWithCommaLambda;
import io.swagger.v3.oas.models.media.*;
import java.io.File;
@@ -133,6 +134,8 @@ public class ErlangClientCodegen extends DefaultCodegen implements CodegenConfig
public void processOpts() {
super.processOpts();
+ additionalProperties.put("joinWithComma", new JoinWithCommaLambda());
+
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) {
setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME));
} else {
@@ -287,7 +290,7 @@ public class ErlangClientCodegen extends DefaultCodegen implements CodegenConfig
Pattern pattern = Pattern.compile("\\{([^\\}]+)\\}");
for (CodegenOperation o : os) {
// force http method to lower case
- o.httpMethod = o.httpMethod.toLowerCase();
+ o.httpMethod = o.httpMethod.toLowerCase(Locale.ROOT);
if (o.isListContainer) {
o.returnType = "[" + o.returnBaseType + "]";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FinchServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FinchServerCodegen.java
index e4a849f1946..5830c194174 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FinchServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FinchServerCodegen.java
@@ -239,7 +239,7 @@ public class FinchServerCodegen extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
@@ -341,7 +341,7 @@ public class FinchServerCodegen extends DefaultCodegen implements CodegenConfig
}
private void generateScalaPath(CodegenOperation op) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
String path = op.path;
@@ -366,7 +366,7 @@ public class FinchServerCodegen extends DefaultCodegen implements CodegenConfig
final CodegenParameter cp = op.pathParams.get(pathParamIndex);
// TODO: Handle non-primitives…
- scalaPath = colConcat(scalaPath, cp.dataType.toLowerCase());
+ scalaPath = colConcat(scalaPath, cp.dataType.toLowerCase(Locale.ROOT));
pathParamIndex++;
} else {
@@ -425,7 +425,7 @@ public class FinchServerCodegen extends DefaultCodegen implements CodegenConfig
p.vendorExtensions.put("x-codegen-normalized-path-type", toPathParameter(p, "param", true));
} else {
// If parameter is primitive and required, we can rely on data types like "string" or "long"
- p.vendorExtensions.put("x-codegen-normalized-path-type", p.dataType.toLowerCase());
+ p.vendorExtensions.put("x-codegen-normalized-path-type", p.dataType.toLowerCase(Locale.ROOT));
}
p.vendorExtensions.put("x-codegen-normalized-input-type", toInputParameter(p));
} else {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FlashClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FlashClientCodegen.java
index 1f75fce7eac..73ca27fa180 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FlashClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/FlashClientCodegen.java
@@ -17,25 +17,17 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.*;
import org.openapitools.codegen.utils.ModelUtils;
-import org.openapitools.codegen.mustache.*;
-
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.oas.models.parameters.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.HashSet;
-
-import org.apache.commons.lang3.StringUtils;
+import java.util.Locale;
public class FlashClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(FlashClientCodegen.class);
@@ -267,7 +259,7 @@ public class FlashClientCodegen extends DefaultCodegen implements CodegenConfig
// if it's all uppper case, convert to lower case
if (name.matches("^[A-Z_]*$")) {
- name = name.toLowerCase();
+ name = name.toLowerCase(Locale.ROOT);
}
// underscore the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java
index a0bbfecc632..418ecd35769 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellHttpClientCodegen.java
@@ -465,7 +465,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
} else {
baseTitle = baseTitle.trim();
// Drop any API suffix
- if (baseTitle.toUpperCase().endsWith("API")) {
+ if (baseTitle.toUpperCase(Locale.ROOT).endsWith("API")) {
baseTitle = baseTitle.substring(0, baseTitle.length() - 3);
}
}
@@ -473,7 +473,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
if (!additionalProperties.containsKey(PROP_CABAL_PACKAGE)) {
List words = new ArrayList<>();
for (String word : baseTitle.split(" ")) {
- words.add(word.toLowerCase());
+ words.add(word.toLowerCase(Locale.ROOT));
}
setCabalPackage(StringUtils.join(words, "-"));
}
@@ -548,7 +548,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "(Map.Map String " + getTypeDeclaration(inner) + ")";
}
return super.getTypeDeclaration(p);
@@ -570,7 +570,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- Schema additionalProperties2 = (Schema) p.getAdditionalProperties();
+ Schema additionalProperties2 = ModelUtils.getAdditionalProperties(p);
String type = additionalProperties2.getType();
if (null == type) {
LOGGER.error("No Type defined for Additional Schema " + additionalProperties2 + "\n" //
@@ -615,7 +615,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
LOGGER.warn("generated unique operationId `" + uniqueName + "`");
}
op.operationId = uniqueName;
- op.operationIdLowerCase = uniqueName.toLowerCase();
+ op.operationIdLowerCase = uniqueName.toLowerCase(Locale.ROOT);
op.operationIdCamelCase = DefaultCodegen.camelize(uniqueName);
op.operationIdSnakeCase = DefaultCodegen.underscore(uniqueName);
opList.add(op);
@@ -628,7 +628,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
op.vendorExtensions.put(X_OPERATION_TYPE, operationType);
typeNames.add(operationType);
- op.vendorExtensions.put(X_HADDOCK_PATH, String.format("%s %s", op.httpMethod, op.path.replace("/", "\\/")));
+ op.vendorExtensions.put(X_HADDOCK_PATH, String.format(Locale.ROOT, "%s %s", op.httpMethod, op.path.replace("/", "\\/")));
op.vendorExtensions.put(X_HAS_BODY_OR_FORM_PARAM, op.getHasBodyParam() || op.getHasFormParams());
for (CodegenParameter param : op.allParams) {
@@ -1003,9 +1003,9 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
if (word.length() == 0) {
return word;
} else if (word.length() == 1) {
- return word.substring(0, 1).toUpperCase();
+ return word.substring(0, 1).toUpperCase(Locale.ROOT);
} else {
- return word.substring(0, 1).toUpperCase() + word.substring(1);
+ return word.substring(0, 1).toUpperCase(Locale.ROOT) + word.substring(1);
}
}
@@ -1013,9 +1013,9 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
if (word.length() == 0) {
return word;
} else if (word.length() == 1) {
- return word.substring(0, 1).toLowerCase();
+ return word.substring(0, 1).toLowerCase(Locale.ROOT);
} else {
- return word.substring(0, 1).toLowerCase() + word.substring(1);
+ return word.substring(0, 1).toLowerCase(Locale.ROOT) + word.substring(1);
}
}
@@ -1303,7 +1303,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
}
// number
- if (num.contains(datatype.toLowerCase())) {
+ if (num.contains(datatype.toLowerCase(Locale.ROOT))) {
String varName = "Num" + value;
varName = varName.replaceAll("-", "Minus_");
varName = varName.replaceAll("\\+", "Plus_");
@@ -1317,7 +1317,7 @@ public class HaskellHttpClientCodegen extends DefaultCodegen implements CodegenC
@Override
public String toEnumValue(String value, String datatype) {
List num = new ArrayList<>(Arrays.asList("integer", "int", "double", "long", "float"));
- if (num.contains(datatype.toLowerCase())) {
+ if (num.contains(datatype.toLowerCase(Locale.ROOT))) {
return value;
} else {
return "\"" + escapeText(value) + "\"";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
index 15dcf7c98b7..9408d6b8f51 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java
@@ -17,6 +17,10 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Operation;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
@@ -29,15 +33,16 @@ import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.parameters.Parameter;
-import io.swagger.v3.oas.models.media.*;
-
-import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.regex.Pattern;
public class HaskellServantCodegen extends DefaultCodegen implements CodegenConfig {
@@ -204,9 +209,9 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
if (word.length() == 0) {
return word;
} else if (word.length() == 1) {
- return word.substring(0, 1).toUpperCase();
+ return word.substring(0, 1).toUpperCase(Locale.ROOT);
} else {
- return word.substring(0, 1).toUpperCase() + word.substring(1);
+ return word.substring(0, 1).toUpperCase(Locale.ROOT) + word.substring(1);
}
}
@@ -214,9 +219,9 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
if (word.length() == 0) {
return word;
} else if (word.length() == 1) {
- return word.substring(0, 1).toLowerCase();
+ return word.substring(0, 1).toLowerCase(Locale.ROOT);
} else {
- return word.substring(0, 1).toLowerCase() + word.substring(1);
+ return word.substring(0, 1).toLowerCase(Locale.ROOT) + word.substring(1);
}
}
@@ -230,7 +235,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
title = "OpenAPI";
} else {
title = title.trim();
- if (title.toUpperCase().endsWith("API")) {
+ if (title.toUpperCase(Locale.ROOT).endsWith("API")) {
title = title.substring(0, title.length() - 3);
}
}
@@ -240,7 +245,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
// The package name is made by appending the lowercased words of the title interspersed with dashes
List wordsLower = new ArrayList();
for (String word : words) {
- wordsLower.add(word.toLowerCase());
+ wordsLower.add(word.toLowerCase(Locale.ROOT));
}
String cabalName = joinStrings("-", wordsLower);
@@ -293,7 +298,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "Map.Map String " + getTypeDeclaration(inner);
}
return fixModelChars(super.getTypeDeclaration(p));
@@ -328,7 +333,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- Schema additionalProperties2 = (Schema) p.getAdditionalProperties();
+ Schema additionalProperties2 = ModelUtils.getAdditionalProperties(p);
String type = additionalProperties2.getType();
if (null == type) {
LOGGER.error("No Type defined for Additional Property " + additionalProperties2 + "\n" //
@@ -484,7 +489,7 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf
if (returnType.indexOf(" ") >= 0) {
returnType = "(" + returnType + ")";
}
- path.add("Verb '" + op.httpMethod.toUpperCase() + " 200 '[JSON] " + returnType);
+ path.add("Verb '" + op.httpMethod.toUpperCase(Locale.ROOT) + " 200 '[JSON] " + returnType);
type.add("m " + returnType);
op.vendorExtensions.put("x-routeType", joinStrings(" :> ", path));
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JMeterClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JMeterClientCodegen.java
index 830e5b06ade..912ad43a7e4 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JMeterClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JMeterClientCodegen.java
@@ -174,7 +174,7 @@ public class JMeterClientCodegen extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java
index 380265a6470..6cd8ad9815a 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaInflectorServerCodegen.java
@@ -18,7 +18,6 @@
package org.openapitools.codegen.languages;
import io.swagger.v3.oas.models.Operation;
-
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenModel;
@@ -32,6 +31,7 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
@@ -198,7 +198,7 @@ public class JavaInflectorServerCodegen extends AbstractJavaCodegen {
@Override
protected String getOrGenerateOperationId(Operation operation, String path, String httpMethod) {
- return super.getOrGenerateOperationId(operation, path, httpMethod.toUpperCase());
+ return super.getOrGenerateOperationId(operation, path, httpMethod.toUpperCase(Locale.ROOT));
}
public String apiFilename(String templateName, String tag) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java
index 096992071bd..d0354468ae3 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJerseyServerCodegen.java
@@ -17,13 +17,12 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
-import io.swagger.v3.oas.models.*;
-
-import java.util.*;
-
+import io.swagger.v3.oas.models.Operation;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.*;
+
+import java.util.*;
public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
@@ -159,7 +158,7 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
@Override
public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map> operations) {
if (useTags) {
- String basePath = tag.toLowerCase();
+ String basePath = tag.toLowerCase(Locale.ROOT);
if (basePath.startsWith("/")) {
basePath = basePath.substring(1);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java
index bcc5685777d..40932e20231 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPKMSTServerCodegen.java
@@ -21,7 +21,6 @@ import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.PathItem;
import io.swagger.v3.oas.models.tags.Tag;
-
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
@@ -39,6 +38,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
/**
@@ -541,7 +541,7 @@ public class JavaPKMSTServerCodegen extends AbstractJavaCodegen {
// Drop any API suffix
if (title != null) {
title = title.trim().replace(" ", "-");
- if (title.toUpperCase().endsWith("API")) {
+ if (title.toUpperCase(Locale.ROOT).endsWith("API")) {
title = title.substring(0, title.length() - 3);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java
index 4866ca8bd49..64b14186654 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaPlayFrameworkCodegen.java
@@ -30,6 +30,7 @@ import org.openapitools.codegen.languages.features.BeanValidationFeatures;
import java.io.File;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -191,7 +192,7 @@ public class JavaPlayFrameworkCodegen extends AbstractJavaCodegen implements Bea
if (this.useSwaggerUI) {
//App/Controllers
supportingFiles.add(new SupportingFile("openapi.mustache", "public", "openapi.json"));
- supportingFiles.add(new SupportingFile("apiDocController.mustache", String.format("app/%s", apiPackage.replace(".", File.separator)), "ApiDocController.java"));
+ supportingFiles.add(new SupportingFile("apiDocController.mustache", String.format(Locale.ROOT, "app/%s", apiPackage.replace(".", File.separator)), "ApiDocController.java"));
}
//We remove the default api.mustache that is used
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java
index 097917ddaf6..2940ec587c7 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java
@@ -22,7 +22,6 @@ import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.PathItem;
import io.swagger.v3.oas.models.PathItem.HttpMethod;
import io.swagger.v3.oas.models.media.Schema;
-
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenOperation;
@@ -34,6 +33,7 @@ import org.openapitools.codegen.utils.URLPathUtils;
import java.io.File;
import java.net.URL;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
@@ -175,7 +175,7 @@ public class JavaVertXServerCodegen extends AbstractJavaCodegen {
if (operations != null) {
List ops = (List) operations.get("operation");
for (CodegenOperation operation : ops) {
- operation.httpMethod = operation.httpMethod.toLowerCase();
+ operation.httpMethod = operation.httpMethod.toLowerCase(Locale.ROOT);
if ("Void".equalsIgnoreCase(operation.returnType)) {
operation.returnType = null;
@@ -251,7 +251,7 @@ public class JavaVertXServerCodegen extends AbstractJavaCodegen {
serviceIdTemp = computeServiceId(pathname, entry);
entry.getValue().addExtension("x-serviceid", serviceIdTemp);
entry.getValue().addExtension("x-serviceid-varname",
- serviceIdTemp.toUpperCase() + "_SERVICE_ID");
+ serviceIdTemp.toUpperCase(Locale.ROOT) + "_SERVICE_ID");
}
}
}
@@ -284,7 +284,7 @@ public class JavaVertXServerCodegen extends AbstractJavaCodegen {
pattern = Pattern.compile("(_)(.)");
matcher = pattern.matcher(word);
while (matcher.find()) {
- word = matcher.replaceFirst(matcher.group(2).toUpperCase());
+ word = matcher.replaceFirst(matcher.group(2).toUpperCase(Locale.ROOT));
matcher = pattern.matcher(word);
}
return word;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java
index 0bbefee3bed..2991842b88d 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClientCodegen.java
@@ -18,7 +18,12 @@
package org.openapitools.codegen.languages;
import com.google.common.base.Strings;
-
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.info.License;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -27,18 +32,9 @@ import org.openapitools.codegen.CodegenOperation;
import org.openapitools.codegen.CodegenParameter;
import org.openapitools.codegen.CodegenProperty;
import org.openapitools.codegen.CodegenType;
-import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.PathItem;
-import io.swagger.v3.oas.models.PathItem.HttpMethod;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.parameters.*;
-import io.swagger.v3.oas.models.info.*;
-
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,6 +44,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class JavascriptClientCodegen extends DefaultCodegen implements CodegenConfig {
@@ -601,7 +598,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "{String: " + getTypeDeclaration(inner) + "}";
}
return super.getTypeDeclaration(p);
@@ -863,9 +860,9 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
codegenModel.getVendorExtensions().put("x-itemType", getSchemaType(am.getItems()));
}
} else if (ModelUtils.isMapSchema(model)) {
- if (model.getAdditionalProperties() != null) {
+ if (ModelUtils.getAdditionalProperties(model) != null) {
codegenModel.getVendorExtensions().put("x-isMap", true);
- codegenModel.getVendorExtensions().put("x-itemType", getSchemaType((Schema) model.getAdditionalProperties()));
+ codegenModel.getVendorExtensions().put("x-itemType", getSchemaType(ModelUtils.getAdditionalProperties(model)));
} else {
String type = model.getType();
if (isPrimitiveType(type)){
@@ -1132,7 +1129,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
// for symbol, e.g. $, #
if (getSymbolName(value) != null) {
- return (getSymbolName(value)).toUpperCase();
+ return (getSymbolName(value)).toUpperCase(Locale.ROOT);
}
return value;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java
index 9fc66c4f053..c756bf8ac9b 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptClosureAngularClientCodegen.java
@@ -236,7 +236,7 @@ public class JavascriptClosureAngularClientCodegen extends DefaultCodegen implem
Schema inner = ap.getItems();
return getSchemaType(p) + "";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "Object";
} else if (ModelUtils.isFileSchema(p)) {
return "Object";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java
index bb415e2bc41..cc0c78c387f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavascriptFlowtypedClientCodegen.java
@@ -30,7 +30,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
public class JavascriptFlowtypedClientCodegen extends AbstractTypeScriptClientCodegen {
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
public static final String NPM_NAME = "npmName";
public static final String NPM_VERSION = "npmVersion";
@@ -119,7 +119,7 @@ public class JavascriptFlowtypedClientCodegen extends AbstractTypeScriptClientCo
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- codegenModel.additionalPropertiesType = getTypeDeclaration((Schema) schema.getAdditionalProperties());
+ codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(schema));
addImport(codegenModel, codegenModel.additionalPropertiesType);
}
@@ -141,7 +141,7 @@ public class JavascriptFlowtypedClientCodegen extends AbstractTypeScriptClientCo
inner = ((ArraySchema) p).getItems();
return this.getSchemaType(p) + "<" + this.getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- inner = (Schema) p.getAdditionalProperties();
+ inner = ModelUtils.getAdditionalProperties(p);
return "{ [key: string]: " + this.getTypeDeclaration(inner) + "; }";
} else if (ModelUtils.isFileSchema(p)) {
return "any";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java
index bd4bc1c5be0..c41deb8be3d 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LuaClientCodegen.java
@@ -17,21 +17,32 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.ModelUtils;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-
-import java.io.File;
-import java.util.*;
-
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import org.apache.commons.lang3.StringUtils;
-
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Map;
+
public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(LuaClientCodegen.class);
@@ -337,7 +348,7 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getTypeDeclaration(inner);
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getTypeDeclaration(inner);
}
@@ -403,7 +414,7 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig {
// find the datatype of the parameter
//final CodegenParameter cp = op.pathParams.get(pathParamIndex);
// TODO: Handle non-primitives…
- //luaPath = luaPath + cp.dataType.toLowerCase();
+ //luaPath = luaPath + cp.dataType.toLowerCase(Locale.ROOT);
luaPath = luaPath + "/%s";
pathParamIndex++;
} else if (items[i].length() != 0) {
@@ -514,11 +525,11 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return getSymbolName(name).toUpperCase();
+ return getSymbolName(name).toUpperCase(Locale.ROOT);
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -531,7 +542,7 @@ public class LuaClientCodegen extends DefaultCodegen implements CodegenConfig {
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSServerCodegen.java
index 662b13d3a92..d9260bce928 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NodeJSServerCodegen.java
@@ -20,25 +20,37 @@ package org.openapitools.codegen.languages;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
-
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.*;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.info.*;
-import io.swagger.v3.oas.models.PathItem.*;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Operation;
+import io.swagger.v3.oas.models.PathItem;
+import io.swagger.v3.oas.models.PathItem.HttpMethod;
import io.swagger.v3.oas.models.Paths;
-
+import io.swagger.v3.oas.models.info.Info;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenResponse;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.URLPathUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
-import org.apache.commons.lang3.StringUtils;
-
public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(NodeJSServerCodegen.class);
@@ -232,7 +244,7 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig
@SuppressWarnings("unchecked")
List operations = (List) objectMap.get("operation");
for (CodegenOperation operation : operations) {
- operation.httpMethod = operation.httpMethod.toLowerCase();
+ operation.httpMethod = operation.httpMethod.toLowerCase(Locale.ROOT);
List params = operation.allParams;
if (params != null && params.size() == 0) {
@@ -368,7 +380,7 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig
.replaceAll("^[-]*", "")
.replaceAll("[-]*$", "")
.replaceAll("[-]{2,}", "-")
- .toLowerCase();
+ .toLowerCase(Locale.ROOT);
this.additionalProperties.put("projectName", projectName);
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ObjcClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ObjcClientCodegen.java
index 11a7508dc63..6800e3af389 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ObjcClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ObjcClientCodegen.java
@@ -17,6 +17,9 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -28,10 +31,6 @@ import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,11 +39,10 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.lang3.StringUtils;
-
public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(ObjcClientCodegen.class);
@@ -341,8 +339,8 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
}
// TODO avoid using toLowerCase as typeMapping should be case-sensitive
- if (typeMapping.containsKey(openAPIType.toLowerCase())) {
- type = typeMapping.get(openAPIType.toLowerCase());
+ if (typeMapping.containsKey(openAPIType.toLowerCase(Locale.ROOT))) {
+ type = typeMapping.get(openAPIType.toLowerCase(Locale.ROOT));
if (languageSpecificPrimitives.contains(type) && !foundationClasses.contains(type)) {
return toModelNameWithoutReservedWordCheck(type);
}
@@ -377,7 +375,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
return getSchemaType(p) + "<" + innerTypeDeclaration + ">*";
}
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
String innerTypeDeclaration = getTypeDeclaration(inner);
@@ -417,7 +415,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
@Override
public boolean isDataTypeBinary(String dataType) {
- return dataType.toLowerCase().startsWith("nsdata");
+ return dataType.toLowerCase(Locale.ROOT).startsWith("nsdata");
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java
index 08172a2cdce..21ccb6aad03 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PerlClientCodegen.java
@@ -220,7 +220,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[string," + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLaravelServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLaravelServerCodegen.java
index ed9215d4010..85bd0497678 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLaravelServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLaravelServerCodegen.java
@@ -204,7 +204,7 @@ public class PhpLaravelServerCodegen extends AbstractPhpCodegen {
List operations = (List) objectMap.get("operation");
for (CodegenOperation op : operations) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
// check to see if the path contains ".", which is not supported by PHP laravel
// ref: https://github.com/swagger-api/swagger-codegen/issues/6897
if (op.path != null && op.path.contains(".")) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java
index 515e82d68ce..d81856c3134 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java
@@ -17,10 +17,12 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
-import java.util.*;
import java.io.File;
+import java.util.*;
public class PhpLumenServerCodegen extends AbstractPhpCodegen {
@SuppressWarnings("hiding")
@@ -115,7 +117,7 @@ public class PhpLumenServerCodegen extends AbstractPhpCodegen {
List operations = (List) objectMap.get("operation");
for (CodegenOperation op : operations) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
// check to see if the path contains ".", which is not supported by Lumen
if (op.path != null && op.path.contains(".")) {
throw new IllegalArgumentException("'.' (dot) is not supported by PHP Lumen.");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java
index 25142203cc9..84cf10331cc 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java
@@ -116,6 +116,9 @@ public class PhpSilexServerCodegen extends DefaultCodegen implements CodegenConf
supportingFiles.add(new SupportingFile("composer.json", "", "composer.json"));
supportingFiles.add(new SupportingFile("index.mustache", "", "index.php"));
supportingFiles.add(new SupportingFile(".htaccess", "", ".htaccess"));
+
+ // remove this line when this class extends AbstractPhpCodegen
+ supportingFiles.add(new SupportingFile(".gitignore", "", ".gitignore"));
}
@Override
@@ -160,7 +163,7 @@ public class PhpSilexServerCodegen extends DefaultCodegen implements CodegenConf
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[string," + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java
index 15ef0a43e42..69c6bc6d677 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java
@@ -113,7 +113,6 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen {
supportingFiles.add(new SupportingFile("composer.mustache", "", "composer.json"));
supportingFiles.add(new SupportingFile("index.mustache", "", "index.php"));
supportingFiles.add(new SupportingFile(".htaccess", "", ".htaccess"));
- supportingFiles.add(new SupportingFile(".gitignore", "", ".gitignore"));
supportingFiles.add(new SupportingFile("AbstractApiController.mustache", toSrcPath(invokerPackage, srcBasePath), "AbstractApiController.php"));
supportingFiles.add(new SupportingFile("SlimRouter.mustache", toSrcPath(invokerPackage, srcBasePath), "SlimRouter.php"));
supportingFiles.add(new SupportingFile("phpunit.xml.mustache", "", "phpunit.xml.dist"));
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java
index 897ae1716c3..5baf8b5d731 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java
@@ -17,17 +17,11 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.*;
import org.openapitools.codegen.utils.ModelUtils;
-
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.PathItem;
-import io.swagger.v3.oas.models.PathItem.HttpMethod;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.parameters.*;
-import io.swagger.v3.core.util.Yaml;
-
-import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -194,7 +188,7 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg
this.bundleName = bundleName;
this.bundleClassName = bundleName + "Bundle";
this.bundleExtensionName = bundleName + "Extension";
- this.bundleAlias = snakeCase(bundleName).replaceAll("([A-Z]+)", "\\_$1").toLowerCase();
+ this.bundleAlias = snakeCase(bundleName).replaceAll("([A-Z]+)", "\\_$1").toLowerCase(Locale.ROOT);
}
public void setPhpLegacySupport(Boolean support) {
@@ -497,7 +491,7 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg
}
if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getTypeDeclaration(inner);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java
index fee2490ff50..f8b5a5c4bce 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java
@@ -17,23 +17,18 @@
package org.openapitools.codegen.languages;
-import io.swagger.v3.oas.models.PathItem;
-import org.openapitools.codegen.*;
-
-import io.swagger.v3.oas.models.PathItem.HttpMethod;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
+import io.swagger.v3.oas.models.PathItem;
+import io.swagger.v3.oas.models.PathItem.HttpMethod;
import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.core.util.Yaml;
-import io.swagger.v3.oas.models.parameters.*;
+import io.swagger.v3.oas.models.parameters.Parameter;
+import io.swagger.v3.oas.models.parameters.QueryParameter;
+import org.openapitools.codegen.*;
import org.openapitools.codegen.utils.ModelUtils;
-
import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
public class PhpZendExpressivePathHandlerServerCodegen extends AbstractPhpCodegen {
@@ -120,7 +115,7 @@ public class PhpZendExpressivePathHandlerServerCodegen extends AbstractPhpCodege
}
}
if (counter == 0) {
- co.operationIdLowerCase = co.operationId.toLowerCase();
+ co.operationIdLowerCase = co.operationId.toLowerCase(Locale.ROOT);
opList.add(co);
co.baseName = tag;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java
index 789cc14c9c0..f16a7528fa7 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java
@@ -17,14 +17,18 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
-
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import org.openapitools.codegen.utils.ModelUtils;
-
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,6 +37,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import static java.util.UUID.randomUUID;
@@ -40,7 +45,7 @@ import static java.util.UUID.randomUUID;
public class PowerShellClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(PowerShellClientCodegen.class);
- private String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}";
+ private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
protected String sourceFolder = "src";
protected String packageName = "Org.OpenAPITools";
@@ -383,7 +388,7 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo
Schema inner = ap.getItems();
return getTypeDeclaration(inner) + "[]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
// TODO not sure if the following map/hash declaration is correct
return "{String, " + getTypeDeclaration(inner) + "}";
} else if (!languageSpecificPrimitives.contains(getSchemaType(p))) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
index eed683f061c..0b8455108e2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
@@ -17,6 +17,9 @@
package org.openapitools.codegen.languages;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -27,11 +30,6 @@ import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.DefaultCodegen;
import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.parser.util.SchemaTypeUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,13 +38,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
-import org.apache.commons.lang3.StringUtils;
-
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(PythonClientCodegen.class);
@@ -404,7 +399,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "(str, " + getTypeDeclaration(inner) + ")";
}
@@ -436,7 +431,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
// if it's all uppper case, convert to lower case
if (name.matches("^[A-Z_]*$")) {
- name = name.toLowerCase();
+ name = name.toLowerCase(Locale.ROOT);
}
// underscore the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java
index 974135c545a..009dfeff8ba 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonFlaskConnexionServerCodegen.java
@@ -20,21 +20,21 @@ package org.openapitools.codegen.languages;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
-
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.ModelUtils;
-import io.swagger.v3.oas.models.media.*;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.PathItem;
import io.swagger.v3.oas.models.PathItem.HttpMethod;
-import io.swagger.v3.oas.models.*;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.*;
+import org.openapitools.codegen.utils.ModelUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.*;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
public class PythonFlaskConnexionServerCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(PythonFlaskConnexionServerCodegen.class);
@@ -289,7 +289,7 @@ public class PythonFlaskConnexionServerCodegen extends DefaultCodegen implements
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[str, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -400,7 +400,7 @@ public class PythonFlaskConnexionServerCodegen extends DefaultCodegen implements
// if it's all uppper case, convert to lower case
if (name.matches("^[A-Z_]*$")) {
- name = name.toLowerCase();
+ name = name.toLowerCase(Locale.ROOT);
}
// underscore the variable name
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
index dde0e9a2100..6be3b9814d2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RClientCodegen.java
@@ -286,7 +286,7 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return getTypeDeclaration(inner);
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getTypeDeclaration(inner);
}
@@ -428,11 +428,11 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return getSymbolName(name).toUpperCase();
+ return getSymbolName(name).toUpperCase(Locale.ROOT);
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -445,7 +445,7 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java
index b80b423311d..539dda6d2a6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyClientCodegen.java
@@ -17,23 +17,18 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.CliOption;
-import org.openapitools.codegen.CodegenConstants;
-import org.openapitools.codegen.CodegenParameter;
-import org.openapitools.codegen.CodegenProperty;
-import org.openapitools.codegen.CodegenType;
-import org.openapitools.codegen.SupportingFile;
+import io.swagger.v3.oas.models.media.Schema;
+import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
+import java.util.Locale;
import java.util.Map;
-import io.swagger.v3.oas.models.media.*;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
public class RubyClientCodegen extends AbstractRubyCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(RubyClientCodegen.class);
public static final String GEM_NAME = "gemName";
@@ -90,7 +85,7 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
for (String word : Arrays.asList(
"local_var_path", "query_params", "header_params", "_header_accept", "_header_accept_result",
"_header_content_type", "form_params", "post_body", "auth_names")) {
- reservedWords.add(word.toLowerCase());
+ reservedWords.add(word.toLowerCase(Locale.ROOT));
}
@@ -416,7 +411,7 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -429,7 +424,7 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyOnRailsServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyOnRailsServerCodegen.java
index 1c58af9123e..fe929e0270d 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyOnRailsServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RubyOnRailsServerCodegen.java
@@ -28,6 +28,7 @@ import org.openapitools.codegen.SupportingFile;
import io.swagger.v3.oas.models.media.*;
import java.io.File;
+import java.util.Locale;
import java.util.Map;
import org.slf4j.Logger;
@@ -36,7 +37,7 @@ import org.slf4j.LoggerFactory;
public class RubyOnRailsServerCodegen extends AbstractRubyCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(RubyOnRailsServerCodegen.class);
- private static final SimpleDateFormat MIGRATE_FILE_NAME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
+ private static final SimpleDateFormat MIGRATE_FILE_NAME_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ROOT);
protected String gemName;
protected String moduleName;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java
index 76411f0406c..2625c37d06c 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java
@@ -20,7 +20,14 @@ package org.openapitools.codegen.languages;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
import org.apache.commons.lang3.StringUtils;
-import org.openapitools.codegen.*;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.SupportingFile;
import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,6 +36,7 @@ import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class RustClientCodegen extends DefaultCodegen implements CodegenConfig {
@@ -288,7 +296,7 @@ public class RustClientCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return "Vec<" + getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "::std::collections::HashMap";
}
@@ -346,7 +354,7 @@ public class RustClientCodegen extends DefaultCodegen implements CodegenConfig {
List operations = (List) objectMap.get("operation");
for (CodegenOperation operation : operations) {
// http method verb conversion (e.g. PUT => Put)
- operation.httpMethod = camelize(operation.httpMethod.toLowerCase());
+ operation.httpMethod = camelize(operation.httpMethod.toLowerCase(Locale.ROOT));
// update return type to conform to rust standard
/*
if (operation.returnType != null) {
@@ -458,11 +466,11 @@ public class RustClientCodegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return getSymbolName(name).toUpperCase();
+ return getSymbolName(name).toUpperCase(Locale.ROOT);
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
@@ -475,7 +483,7 @@ public class RustClientCodegen extends DefaultCodegen implements CodegenConfig {
@Override
public String toEnumName(CodegenProperty property) {
- String enumName = underscore(toModelName(property.name)).toUpperCase();
+ String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java
index 63fd9d8091c..0486327f3e2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java
@@ -25,7 +25,6 @@ import io.swagger.v3.oas.models.media.FileSchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.media.XML;
import io.swagger.v3.oas.models.parameters.Parameter;
-
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
@@ -52,6 +51,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
@@ -415,7 +415,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
else if (getSymbolName(value) != null) {
- var = getSymbolName(value).toUpperCase();
+ var = getSymbolName(value).toUpperCase(Locale.ROOT);
}
// number
@@ -429,7 +429,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
}
// string
- var = value.replaceAll("\\W+", "_").toUpperCase();
+ var = value.replaceAll("\\W+", "_").toUpperCase(Locale.ROOT);
if (var.matches("\\d.*")) {
var = "_" + var;
} else {
@@ -469,15 +469,15 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
}
boolean isMimetypeXml(String mimetype) {
- return mimetype.toLowerCase().startsWith("application/xml");
+ return mimetype.toLowerCase(Locale.ROOT).startsWith("application/xml");
}
boolean isMimetypePlainText(String mimetype) {
- return mimetype.toLowerCase().startsWith("text/plain");
+ return mimetype.toLowerCase(Locale.ROOT).startsWith("text/plain");
}
boolean isMimetypeWwwFormUrlEncoded(String mimetype) {
- return mimetype.toLowerCase().startsWith("application/x-www-form-urlencoded");
+ return mimetype.toLowerCase(Locale.ROOT).startsWith("application/x-www-form-urlencoded");
}
@Override
@@ -490,7 +490,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
//
// Construct a Rust constant (uppercase) token name, and ensure it's
// unique using a numeric tie-breaker if required.
- String basePathId = sanitizeName(op.path.replace("/", "_").replace("{", "").replace("}", "").replaceAll("^_", "")).toUpperCase();
+ String basePathId = sanitizeName(op.path.replace("/", "_").replace("{", "").replace("}", "").replaceAll("^_", "")).toUpperCase(Locale.ROOT);
String pathId = basePathId;
int pathIdTiebreaker = 2;
boolean found = false;
@@ -521,11 +521,11 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
}
op.vendorExtensions.put("operation_id", underscore(op.operationId));
- op.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase());
+ op.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase(Locale.ROOT));
op.vendorExtensions.put("path", op.path.replace("{", ":").replace("}", ""));
op.vendorExtensions.put("PATH_ID", pathId);
op.vendorExtensions.put("hasPathParams", !op.pathParams.isEmpty());
- op.vendorExtensions.put("HttpMethod", Character.toUpperCase(op.httpMethod.charAt(0)) + op.httpMethod.substring(1).toLowerCase());
+ op.vendorExtensions.put("HttpMethod", Character.toUpperCase(op.httpMethod.charAt(0)) + op.httpMethod.substring(1).toLowerCase(Locale.ROOT));
for (CodegenParameter param : op.allParams) {
processParam(param, op);
}
@@ -603,10 +603,10 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
responseId = "Status" + rsp.code;
}
rsp.vendorExtensions.put("x-responseId", responseId);
- rsp.vendorExtensions.put("x-uppercaseResponseId", underscore(responseId).toUpperCase());
- rsp.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase());
+ rsp.vendorExtensions.put("x-uppercaseResponseId", underscore(responseId).toUpperCase(Locale.ROOT));
+ rsp.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase(Locale.ROOT));
if (rsp.dataType != null) {
- rsp.vendorExtensions.put("uppercase_data_type", (rsp.dataType.replace("models::", "")).toUpperCase());
+ rsp.vendorExtensions.put("uppercase_data_type", (rsp.dataType.replace("models::", "")).toUpperCase(Locale.ROOT));
// Default to producing json if nothing else is specified
if (producesXml) {
@@ -675,7 +675,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
if (op.bodyParam != null) {
// Default to consuming json
- op.bodyParam.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase());
+ op.bodyParam.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase(Locale.ROOT));
if (consumesXml) {
op.bodyParam.vendorExtensions.put("consumesXml", true);
} else if (consumesPlainText) {
@@ -688,7 +688,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
for (CodegenParameter param : op.bodyParams) {
processParam(param, op);
- param.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase());
+ param.vendorExtensions.put("uppercase_operation_id", underscore(op.operationId).toUpperCase(Locale.ROOT));
// Default to producing json if nothing else is specified
if (consumesXml) {
@@ -730,7 +730,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
typeDeclaration.append(innerType).append(">");
return typeDeclaration.toString();
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
String innerType = getTypeDeclaration(inner);
StringBuilder typeDeclaration = new StringBuilder(typeMapping.get("map")).append("<").append(typeMapping.get("string")).append(", ");
typeDeclaration.append(innerType).append(">");
@@ -797,7 +797,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return instantiationTypes.get("array") + "<" + getSchemaType(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return instantiationTypes.get("map") + "<" + typeMapping.get("string") + ", " + getSchemaType(inner) + ">";
} else {
return null;
@@ -807,7 +807,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig {
@Override
public CodegenModel fromModel(String name, Schema model, Map allDefinitions) {
CodegenModel mdl = super.fromModel(name, model, allDefinitions);
- mdl.vendorExtensions.put("upperCaseName", name.toUpperCase());
+ mdl.vendorExtensions.put("upperCaseName", name.toUpperCase(Locale.ROOT));
if (!StringUtils.isEmpty(model.get$ref())) {
Schema schema = allDefinitions.get(ModelUtils.getSimpleRef(model.get$ref()));
mdl.dataType = typeMapping.get(schema.getType());
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java
index 2da46afb59f..d3a42542a8f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java
@@ -276,7 +276,7 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code
} else if (ModelUtils.isIntegerSchema(p)) {
return null;
} else if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "Map[String, " + inner + "].empty ";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java
index 178ed14cee2..df68da86049 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaGatlingCodegen.java
@@ -17,22 +17,31 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.*;
-import org.openapitools.codegen.mustache.*;
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.oas.models.parameters.*;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Operation;
+import io.swagger.v3.oas.models.PathItem;
+import io.swagger.v3.oas.models.media.ArraySchema;
+import io.swagger.v3.oas.models.media.Schema;
+import io.swagger.v3.oas.models.parameters.Parameter;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
+import org.openapitools.codegen.utils.ModelUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.util.*;
import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
public class ScalaGatlingCodegen extends AbstractScalaCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(ScalaGatlingCodegen.class);
@@ -324,10 +333,10 @@ public class ScalaGatlingCodegen extends AbstractScalaCodegen implements Codegen
vendorList.add(extensionMap);
parameterNames.add(parameter.getName());
}
- operation.addExtension("x-gatling-" + parameterType.toLowerCase() + "-params", vendorList);
- operation.addExtension("x-gatling-" + parameterType.toLowerCase() + "-feeder", operation.getOperationId() + parameterType.toUpperCase() + "Feeder");
+ operation.addExtension("x-gatling-" + parameterType.toLowerCase(Locale.ROOT) + "-params", vendorList);
+ operation.addExtension("x-gatling-" + parameterType.toLowerCase(Locale.ROOT) + "-feeder", operation.getOperationId() + parameterType.toUpperCase(Locale.ROOT) + "Feeder");
try {
- FileUtils.writeStringToFile(new File(outputFolder + File.separator + dataFolder + File.separator + operation.getOperationId() + "-" + parameterType.toLowerCase() + "Params.csv"), StringUtils.join(parameterNames, ","));
+ FileUtils.writeStringToFile(new File(outputFolder + File.separator + dataFolder + File.separator + operation.getOperationId() + "-" + parameterType.toLowerCase(Locale.ROOT) + "Params.csv"), StringUtils.join(parameterNames, ","));
} catch (IOException ioe) {
LOGGER.error("Could not create feeder file for operationId" + operation.getOperationId(), ioe);
}
@@ -347,7 +356,7 @@ public class ScalaGatlingCodegen extends AbstractScalaCodegen implements Codegen
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java
index 353152afe7d..a6818980fef 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalatraServerCodegen.java
@@ -17,19 +17,17 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.utils.*;
-import org.openapitools.codegen.mustache.*;
-import io.swagger.v3.oas.models.security.SecurityScheme;
-import io.swagger.v3.oas.models.*;
-import io.swagger.v3.oas.models.media.*;
-import io.swagger.v3.oas.models.responses.ApiResponse;
-import io.swagger.v3.oas.models.parameters.*;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.SupportingFile;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class ScalatraServerCodegen extends AbstractScalaCodegen implements CodegenConfig {
@@ -146,7 +144,7 @@ public class ScalatraServerCodegen extends AbstractScalaCodegen implements Codeg
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
// force http method to lower case
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
String[] items = op.path.split("/", -1);
String scalaPath = "";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
index 4411e27b81b..5e6f269880e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
@@ -18,11 +18,9 @@
package org.openapitools.codegen.languages;
import com.samskivert.mustache.Mustache;
-
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.PathItem;
-
import org.apache.commons.lang3.tuple.Pair;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConstants;
@@ -42,7 +40,12 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.stream.Collectors;
@@ -154,9 +157,9 @@ public class SpringCodegen extends AbstractJavaCodegen
additionalProperties.put("configOptions", configOptions);
// Process java8 option before common java ones to change the default dateLibrary to java8.
- System.out.println("----------------------------------");
+ LOGGER.info("----------------------------------");
if (additionalProperties.containsKey(JAVA_8)) {
- System.out.println("has JAVA8");
+ LOGGER.info("has JAVA8");
this.setJava8(Boolean.valueOf(additionalProperties.get(JAVA_8).toString()));
additionalProperties.put(JAVA_8, java8);
}
@@ -260,7 +263,7 @@ public class SpringCodegen extends AbstractJavaCodegen
additionalProperties.put("delegate-method", true);
} else {
throw new IllegalArgumentException(
- String.format("Can not generate code with `%s` and `%s` true while `%s` is false.",
+ String.format(Locale.ROOT, "Can not generate code with `%s` and `%s` true while `%s` is false.",
DELEGATE_PATTERN, INTERFACE_ONLY, JAVA_8));
}
}
@@ -434,7 +437,7 @@ public class SpringCodegen extends AbstractJavaCodegen
// Drop any API suffix
if (title != null) {
title = title.trim().replace(" ", "-");
- if (title.toUpperCase().endsWith("API")) {
+ if (title.toUpperCase(Locale.ROOT).endsWith("API")) {
title = title.substring(0, title.length() - 3);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java
index 32e198a1652..a975cf63bd7 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java
@@ -17,14 +17,13 @@
package org.openapitools.codegen.languages;
+import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.v3.core.util.Json;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
-
-import com.fasterxml.jackson.databind.JsonNode;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
@@ -43,6 +42,7 @@ import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfig {
@@ -131,7 +131,7 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -142,7 +142,7 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi
Map operations = (Map) objs.get("operations");
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
for (CodegenResponse response : op.responses) {
if ("0".equals(response.code)) {
response.code = "default";
@@ -204,7 +204,7 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi
//path is an unescaped variable in the mustache template api.mustache line 82 '<&path>'
op.path = sanitizePath(op.path);
- op.vendorExtensions.put("x-codegen-httpMethodUpperCase", httpMethod.toUpperCase());
+ op.vendorExtensions.put("x-codegen-httpMethodUpperCase", httpMethod.toUpperCase(Locale.ROOT));
return op;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java
index feaac9dbc5d..8f34f49bbac 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtmlGenerator.java
@@ -19,12 +19,10 @@ package org.openapitools.codegen.languages;
import com.samskivert.mustache.Escapers;
import com.samskivert.mustache.Mustache.Compiler;
-
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.Schema;
-
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConfig;
import org.openapitools.codegen.CodegenConstants;
@@ -42,6 +40,7 @@ import org.openapitools.codegen.utils.ModelUtils;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig {
@@ -118,7 +117,7 @@ public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return getSchemaType(p) + "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return getSchemaType(p) + "[String, " + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -129,7 +128,7 @@ public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig
Map operations = (Map) objs.get("operations");
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
for (CodegenResponse response : op.responses) {
if ("0".equals(response.code)) {
response.code = "default";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java
index 0e29b372804..a8b3f0d64e5 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift3Codegen.java
@@ -230,7 +230,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- final Schema additionalProperties = (Schema) schema.getAdditionalProperties();
+ final Schema additionalProperties = ModelUtils.getAdditionalProperties(schema);
if (additionalProperties != null) {
codegenModel.additionalPropertiesType = getSchemaType(additionalProperties);
@@ -333,7 +333,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "[String:" + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -422,7 +422,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- return getSchemaType((Schema) p.getAdditionalProperties());
+ return getSchemaType(ModelUtils.getAdditionalProperties(p));
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
String inner = getSchemaType(ap.getItems());
@@ -454,6 +454,12 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
return newOperationId;
}
+ // operationId starts with a number
+ if (operationId.matches("^\\d.*")) {
+ LOGGER.warn(operationId + " (starting with a number) cannot be used as method name. Renamed to " + camelize(sanitizeName("call_" + operationId), true));
+ operationId = camelize(sanitizeName("call_" + operationId), true);
+ }
+
return operationId;
}
@@ -578,7 +584,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase()), true);
+ return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase(Locale.ROOT)), true);
}
// Camelize only when we have a structure defined below
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java
index f765bf1bc36..76e2b0602bd 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/Swift4Codegen.java
@@ -284,7 +284,7 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig {
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel,
Schema schema) {
- final Schema additionalProperties = (Schema) schema.getAdditionalProperties();
+ final Schema additionalProperties = ModelUtils.getAdditionalProperties(schema);
if (additionalProperties != null) {
codegenModel.additionalPropertiesType = getSchemaType(additionalProperties);
@@ -420,7 +420,7 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig {
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "[String:" + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -524,7 +524,7 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig {
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- return getSchemaType((Schema) p.getAdditionalProperties());
+ return getSchemaType(ModelUtils.getAdditionalProperties(p));
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
String inner = getSchemaType(ap.getItems());
@@ -559,6 +559,13 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig {
return newOperationId;
}
+ // operationId starts with a number
+ if (operationId.matches("^\\d.*")) {
+ LOGGER.warn(operationId + " (starting with a number) cannot be used as method name. Renamed to " + camelize(sanitizeName("call_" + operationId), true));
+ operationId = camelize(sanitizeName("call_" + operationId), true);
+ }
+
+
return operationId;
}
@@ -690,7 +697,7 @@ public class Swift4Codegen extends DefaultCodegen implements CodegenConfig {
// for symbol, e.g. $, #
if (getSymbolName(name) != null) {
- return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase()), true);
+ return camelize(WordUtils.capitalizeFully(getSymbolName(name).toUpperCase(Locale.ROOT)), true);
}
// Camelize only when we have a structure defined below
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java
index 0a45cf78ddc..97aeb0479b2 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java
@@ -270,7 +270,7 @@ public class SwiftClientCodegen extends DefaultCodegen implements CodegenConfig
Schema inner = ap.getItems();
return "[" + getTypeDeclaration(inner) + "]";
} else if (ModelUtils.isMapSchema(p)) {
- Schema inner = (Schema) p.getAdditionalProperties();
+ Schema inner = ModelUtils.getAdditionalProperties(p);
return "[String:" + getTypeDeclaration(inner) + "]";
}
return super.getTypeDeclaration(p);
@@ -359,7 +359,7 @@ public class SwiftClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toInstantiationType(Schema p) {
if (ModelUtils.isMapSchema(p)) {
- String inner = getSchemaType((Schema) p.getAdditionalProperties());
+ String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
return "[String:" + inner + "]";
} else if (ModelUtils.isArraySchema(p)) {
ArraySchema ap = (ArraySchema) p;
@@ -450,6 +450,12 @@ public class SwiftClientCodegen extends DefaultCodegen implements CodegenConfig
return newOperationId;
}
+ // operationId starts with a number
+ if (operationId.matches("^\\d.*")) {
+ LOGGER.warn(operationId + " (starting with a number) cannot be used as method name. Renamed to " + camelize(sanitizeName("call_" + operationId), true));
+ operationId = camelize(sanitizeName("call_" + operationId), true);
+ }
+
return operationId;
}
@@ -577,7 +583,7 @@ public class SwiftClientCodegen extends DefaultCodegen implements CodegenConfig
}
// string
- String enumName = sanitizeName(underscore(name).toUpperCase());
+ String enumName = sanitizeName(underscore(name).toUpperCase(Locale.ROOT));
enumName = enumName.replaceFirst("^_", "");
enumName = enumName.replaceFirst("_$", "");
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java
index ecfd9b5b1ca..c08a980a339 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAngularClientCodegen.java
@@ -32,7 +32,7 @@ import java.util.*;
public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(TypeScriptAngularClientCodegen.class);
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
private static final String X_DISCRIMINATOR_TYPE = "x-discriminator-value";
private static String CLASS_NAME_SUFFIX_PATTERN = "^[a-zA-Z0-9]*$";
private static String FILE_NAME_SUFFIX_PATTERN = "^[a-zA-Z0-9.-]*$";
@@ -98,7 +98,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- codegenModel.additionalPropertiesType = getTypeDeclaration((Schema) schema.getAdditionalProperties());
+ codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(schema));
addImport(codegenModel, codegenModel.additionalPropertiesType);
}
@@ -539,7 +539,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
private void validateFileSuffixArgument(String argument, String value) {
if (!value.matches(FILE_NAME_SUFFIX_PATTERN)) {
throw new IllegalArgumentException(
- String.format("%s file suffix only allows '.', '-' and alphanumeric characters.", argument)
+ String.format(Locale.ROOT, "%s file suffix only allows '.', '-' and alphanumeric characters.", argument)
);
}
}
@@ -553,7 +553,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
private void validateClassSuffixArgument(String argument, String value) {
if (!value.matches(CLASS_NAME_SUFFIX_PATTERN)) {
throw new IllegalArgumentException(
- String.format("%s class suffix only allows alphanumeric characters.", argument)
+ String.format(Locale.ROOT, "%s class suffix only allows alphanumeric characters.", argument)
);
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java
index fe1a44b06b9..90aa18de863 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAureliaClientCodegen.java
@@ -17,10 +17,16 @@
package org.openapitools.codegen.languages;
-import org.openapitools.codegen.*;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenModel;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.SupportingFile;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TreeSet;
@@ -107,7 +113,7 @@ public class TypeScriptAureliaClientCodegen extends AbstractTypeScriptClientCode
List operationList = (List) operations.get("operation");
for (CodegenOperation op : operationList) {
// Aurelia uses "asGet", "asPost", ... methods; change the method format
- op.httpMethod = initialCaps(op.httpMethod.toLowerCase());
+ op.httpMethod = initialCaps(op.httpMethod.toLowerCase(Locale.ROOT));
// Collect models to be imported
for (CodegenParameter param : op.allParams) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
index bb1161d21e0..58289942173 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
@@ -27,9 +27,10 @@ import org.openapitools.codegen.utils.ModelUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodegen {
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
public static final String NPM_NAME = "npmName";
public static final String NPM_VERSION = "npmVersion";
@@ -114,7 +115,7 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
inner = ((ArraySchema) p).getItems();
return this.getSchemaType(p) + "<" + this.getTypeDeclaration(inner) + ">";
} else if (ModelUtils.isMapSchema(p)) {
- inner = (Schema) p.getAdditionalProperties();
+ inner = ModelUtils.getAdditionalProperties(p);
return "{ [key: string]: " + this.getTypeDeclaration(inner) + "; }";
} else if (ModelUtils.isFileSchema(p)) {
return "any";
@@ -127,7 +128,7 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- codegenModel.additionalPropertiesType = getTypeDeclaration((Schema) schema.getAdditionalProperties());
+ codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(schema));
addImport(codegenModel, codegenModel.additionalPropertiesType);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java
index 82c9008891d..28259a7dcdb 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java
@@ -22,6 +22,7 @@ import io.swagger.v3.oas.models.media.FileSchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.parser.util.SchemaTypeUtil;
import org.openapitools.codegen.*;
+import org.openapitools.codegen.utils.ModelUtils;
import java.io.File;
import java.text.SimpleDateFormat;
@@ -29,7 +30,7 @@ import java.util.*;
public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCodegen {
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
private static final String X_DISCRIMINATOR_TYPE = "x-discriminator-value";
public static final String NPM_NAME = "npmName";
@@ -77,7 +78,7 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- codegenModel.additionalPropertiesType = getTypeDeclaration((Schema) schema.getAdditionalProperties());
+ codegenModel.additionalPropertiesType = getTypeDeclaration(ModelUtils.getAdditionalProperties(schema));
addImport(codegenModel, codegenModel.additionalPropertiesType);
}
@@ -220,7 +221,7 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo
StringBuilder parameterName = new StringBuilder();
int insideCurly = 0;
- op.httpMethod = op.httpMethod.toLowerCase();
+ op.httpMethod = op.httpMethod.toLowerCase(Locale.ROOT);
// Iterate through existing string, one character at a time.
for (int i = 0; i < op.path.length(); i++) {
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
index 247bee5b63e..53689ae1b32 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptJqueryClientCodegen.java
@@ -30,10 +30,11 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Locale;
public class TypeScriptJqueryClientCodegen extends AbstractTypeScriptClientCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(TypeScriptJqueryClientCodegen.class);
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
public static final String NPM_NAME = "npmName";
public static final String NPM_VERSION = "npmVersion";
@@ -134,18 +135,9 @@ public class TypeScriptJqueryClientCodegen extends AbstractTypeScriptClientCodeg
return addModelPrefix(name);
}
- @Override
- public void postProcessParameter(CodegenParameter parameter) {
- super.postProcessParameter(parameter);
-
- if (!parameter.isEnum) {
- parameter.dataType = addModelPrefix(parameter.dataType);
- }
- }
-
@Override
protected void addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, Schema schema) {
- codegenModel.additionalPropertiesType = getSchemaType((Schema) schema.getAdditionalProperties());
+ codegenModel.additionalPropertiesType = getSchemaType(ModelUtils.getAdditionalProperties(schema));
addImport(codegenModel, codegenModel.additionalPropertiesType);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java
index 45f00f626be..3e6b1848f01 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNodeClientCodegen.java
@@ -31,7 +31,7 @@ import java.util.*;
public class TypeScriptNodeClientCodegen extends AbstractTypeScriptClientCodegen {
private static final Logger LOGGER = LoggerFactory.getLogger(TypeScriptNodeClientCodegen.class);
- private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm");
+ private static final SimpleDateFormat SNAPSHOT_SUFFIX_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.ROOT);
public static final String NPM_NAME = "npmName";
public static final String NPM_VERSION = "npmVersion";
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/JoinWithCommaLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/JoinWithCommaLambda.java
new file mode 100644
index 00000000000..80944554940
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/JoinWithCommaLambda.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
+ * Copyright 2018 SmartBear Software
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openapitools.codegen.mustache;
+
+import com.samskivert.mustache.Mustache;
+import com.samskivert.mustache.Template;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.DefaultCodegen;
+
+import java.io.IOException;
+import java.io.Writer;
+
+/**
+ * Split text by 2 spaces and then join the strings with ", "
+ *
+ * Register:
+ *
+ * additionalProperties.put("joinWithComma", new JoinWithCommaLambda());
+ *
+ *
+ * Use:
+ *
+ * {{#joinWithComma}}{{name}}{{/joinWithComma}}
+ *
+ */
+public class JoinWithCommaLambda implements Mustache.Lambda {
+ private CodegenConfig generator = null;
+
+ public JoinWithCommaLambda() {
+
+ }
+
+ public JoinWithCommaLambda generator(final CodegenConfig generator) {
+ this.generator = generator;
+ return this;
+ }
+
+ @Override
+ public void execute(Template.Fragment fragment, Writer writer) throws IOException {
+ String[] substr = fragment.execute().trim().split(" ");
+
+ writer.write(String.join(", ", substr));
+ }
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/LowercaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/LowercaseLambda.java
index 7db62729150..ba466fd0073 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/LowercaseLambda.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/LowercaseLambda.java
@@ -23,6 +23,7 @@ import org.openapitools.codegen.CodegenConfig;
import java.io.IOException;
import java.io.Writer;
+import java.util.Locale;
/**
* Converts text in a fragment to lowercase.
@@ -51,7 +52,7 @@ public class LowercaseLambda implements Mustache.Lambda {
@Override
public void execute(Template.Fragment fragment, Writer writer) throws IOException {
- String text = fragment.execute().toLowerCase();
+ String text = fragment.execute().toLowerCase(Locale.ROOT);
if (generator != null && generator.reservedWords().contains(text)) {
text = generator.escapeReservedWord(text);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/TitlecaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/TitlecaseLambda.java
index e3d1eb7a986..e9ec42991b6 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/TitlecaseLambda.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/TitlecaseLambda.java
@@ -22,6 +22,7 @@ import com.samskivert.mustache.Template;
import java.io.IOException;
import java.io.Writer;
+import java.util.Locale;
/**
* Converts text in a fragment to title case.
@@ -60,7 +61,7 @@ public class TitlecaseLambda implements Mustache.Lambda {
}
private String titleCase(final String input) {
- return input.substring(0, 1).toUpperCase() + input.substring(1);
+ return input.substring(0, 1).toUpperCase(Locale.ROOT) + input.substring(1);
}
@Override
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/UppercaseLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/UppercaseLambda.java
index 745eb10b27a..98b835b55bc 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/UppercaseLambda.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/mustache/UppercaseLambda.java
@@ -22,6 +22,7 @@ import com.samskivert.mustache.Template;
import java.io.IOException;
import java.io.Writer;
+import java.util.Locale;
/**
* Converts text in a fragment to uppercase.
@@ -40,6 +41,6 @@ public class UppercaseLambda implements Mustache.Lambda {
@Override
public void execute(Template.Fragment fragment, Writer writer) throws IOException {
String text = fragment.execute();
- writer.write(text.toUpperCase());
+ writer.write(text.toUpperCase(Locale.ROOT));
}
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
index c5afa2dd8b1..7d2eeb40c43 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java
@@ -20,6 +20,7 @@ package org.openapitools.codegen.utils;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.PathItem;
+import io.swagger.v3.oas.models.headers.Header;
import io.swagger.v3.oas.models.media.ArraySchema;
import io.swagger.v3.oas.models.media.BinarySchema;
import io.swagger.v3.oas.models.media.BooleanSchema;
@@ -307,6 +308,9 @@ public class ModelUtils {
if (schema.getAdditionalProperties() instanceof Schema) {
return true;
}
+ if (schema.getAdditionalProperties() instanceof Boolean && (Boolean)schema.getAdditionalProperties()) {
+ return true;
+ }
return false;
}
@@ -657,4 +661,35 @@ public class ModelUtils {
return schema;
}
+ public static Schema getAdditionalProperties(Schema schema) {
+ if(schema.getAdditionalProperties() instanceof Schema) {
+ return (Schema) schema.getAdditionalProperties();
+ }
+ if(schema.getAdditionalProperties() instanceof Boolean && (Boolean)schema.getAdditionalProperties()) {
+ return new ObjectSchema();
+ }
+ return null;
+ }
+
+ public static Header getReferencedHeader(OpenAPI openAPI, Header header) {
+ if (header != null && StringUtils.isNotEmpty(header.get$ref())) {
+ String name = getSimpleRef(header.get$ref());
+ Header referencedheader = getHeader(openAPI, name);
+ if (referencedheader != null) {
+ return referencedheader;
+ }
+ }
+ return header;
+ }
+
+ public static Header getHeader(OpenAPI openAPI, String name) {
+ if (name == null) {
+ return null;
+ }
+
+ if (openAPI != null && openAPI.getComponents() != null && openAPI.getComponents().getHeaders() != null) {
+ return openAPI.getComponents().getHeaders().get(name);
+ }
+ return null;
+ }
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java
index 91aba80d82c..fdfa6fdfd6b 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/URLPathUtils.java
@@ -50,7 +50,7 @@ public class URLPathUtils {
return getServerURL(servers.get(0));
}
- static URL getServerURL(final Server server) {
+ public static URL getServerURL(final Server server) {
String url = server.getUrl();
ServerVariables variables = server.getVariables();
if(variables == null) {
diff --git a/modules/openapi-generator/src/main/resources/Java/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/JSON.mustache
index 92fa0f9d0fa..ae8de32fafc 100644
--- a/modules/openapi-generator/src/main/resources/Java/JSON.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/JSON.mustache
@@ -40,6 +40,7 @@ import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
{{/java8}}
import java.util.Date;
+import java.util.Locale;
import java.util.Map;
import java.util.HashMap;
@@ -65,9 +66,9 @@ public class JSON {
public Class getClassForElement(JsonElement readElement) {
Map classByDiscriminatorValue = new HashMap();
{{#mappedModels}}
- classByDiscriminatorValue.put("{{mappingName}}".toUpperCase(), {{modelName}}.class);
+ classByDiscriminatorValue.put("{{mappingName}}".toUpperCase(Locale.ROOT), {{modelName}}.class);
{{/mappedModels}}
- classByDiscriminatorValue.put("{{classname}}".toUpperCase(), {{classname}}.class);
+ classByDiscriminatorValue.put("{{classname}}".toUpperCase(Locale.ROOT), {{classname}}.class);
return getClassByDiscriminator(
classByDiscriminatorValue,
getDiscriminatorValue(readElement, "{{{propertyName}}}"));
@@ -91,7 +92,7 @@ public class JSON {
}
private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) {
- Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue.toUpperCase());
+ Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue.toUpperCase(Locale.ROOT));
if(null == clazz) {
throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">");
}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/ApiClient.mustache
index cf8d5c45ba2..42bdf68613b 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/ApiClient.mustache
@@ -13,7 +13,7 @@ import java.util.function.Supplier;
import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
import static io.restassured.config.RestAssuredConfig.config;
-import static org.openapitools.client.GsonObjectMapper.gson;
+import static {{invokerPackage}}.GsonObjectMapper.gson;
{{/fullJavaUtil}}
public class ApiClient {
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/api.mustache
index 1f400d0efa1..75c3a373ae3 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/api.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/rest-assured/api.mustache
@@ -28,6 +28,7 @@ import {{invokerPackage}}.JSON;
import static io.restassured.http.Method.*;
+@Api(value = "{{{baseName}}}")
public class {{classname}} {
private RequestSpecBuilder reqSpec;
@@ -43,15 +44,12 @@ public class {{classname}} {
{{#operations}}
{{#operation}}
- @ApiOperation(value = "{{{summary}}}", notes = "{{{notes}}}"{{#hasAuthMethods}}, authorizations = {
- {{#authMethods}}@Authorization(value = "{{name}}"{{#isOAuth}}, scopes = {
- {{#scopes}}@AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{#hasMore}},
- {{/hasMore}}{{/scopes}}
- }{{/isOAuth}}){{#hasMore}},
- {{/hasMore}}{{/authMethods}}
- }{{/hasAuthMethods}}, tags={ {{#tags}}{{#name}}"{{{name}}}"{{/name}}{{^-last}}, {{/-last}}{{/tags}} })
+ @ApiOperation(value = "{{{summary}}}",
+ notes = "{{{notes}}}",
+ nickname = "{{{operationId}}}",
+ tags = { {{#tags}}{{#name}}"{{{name}}}"{{/name}}{{^-last}}, {{/-last}}{{/tags}} })
@ApiResponses(value = { {{#responses}}
- @ApiResponse(code = {{{code}}}, message = "{{{message}}}") {{#hasMore}},{{/hasMore}}{{/responses}} })
+ @ApiResponse(code = {{{code}}}, message = "{{{message}}}") {{#hasMore}},{{/hasMore}}{{/responses}} })
{{#isDeprecated}}
@Deprecated
{{/isDeprecated}}
@@ -139,7 +137,7 @@ public class {{classname}} {
{{#bodyParams}}
/**
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper body({{{dataType}}} {{paramName}}) {
@@ -152,7 +150,7 @@ public class {{classname}} {
public static final String {{#convert}}{{paramName}}{{/convert}}_HEADER = "{{baseName}}";
/**
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper {{paramName}}Header(String {{paramName}}) {
@@ -165,7 +163,7 @@ public class {{classname}} {
public static final String {{#convert}}{{paramName}}{{/convert}}_PATH = "{{baseName}}";
/**
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper {{paramName}}Path(Object {{paramName}}) {
@@ -178,7 +176,7 @@ public class {{classname}} {
public static final String {{#convert}}{{paramName}}{{/convert}}_QUERY = "{{baseName}}";
/**
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper {{paramName}}Query(Object... {{paramName}}) {
@@ -192,7 +190,7 @@ public class {{classname}} {
public static final String {{#convert}}{{paramName}}{{/convert}}_FORM = "{{baseName}}";
/**
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper {{paramName}}Form(Object... {{paramName}}) {
@@ -207,7 +205,7 @@ public class {{classname}} {
/**
* It will assume that the control name is file and the <content-type> is <application/octet-stream>
* @see #reqSpec for customise
- * @param {{paramName}} ({{{dataType}}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ * @param {{paramName}} ({{dataType}}) {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
* @return operation
*/
public {{operationIdCamelCase}}Oper {{paramName}}MultiPart({{{dataType}}} {{paramName}}) {
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/ApiClient.mustache
index ad1fcc649dd..96ff0f77653 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/resteasy/ApiClient.mustache
@@ -16,6 +16,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TimeZone;
@@ -64,7 +65,7 @@ public class ApiClient {
json = new JSON();
httpClient = buildHttpClient(debugging);
- this.dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+ this.dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ROOT);
// Use UTC as the default time zone.
this.dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
@@ -477,7 +478,7 @@ public class ApiClient {
public Entity> serialize(Object obj, Map formParams, String contentType) throws ApiException {
Entity> entity = null;
if (contentType.startsWith("multipart/form-data")) {
- MultipartFormDataOutput multipart = new MultipartFormDataOutput();
+ MultipartFormDataOutput multipart = new MultipartFormDataOutput();
//MultiPart multiPart = new MultiPart();
for (Entry param: formParams.entrySet()) {
if (param.getValue() instanceof File) {
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/api.mustache
index f48180f4381..beede4b55b1 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/api.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/api.mustache
@@ -8,6 +8,7 @@ import {{invokerPackage}}.ApiClient;
{{^fullJavaUtil}}import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;{{/fullJavaUtil}}
import org.springframework.beans.factory.annotation.Autowired;
@@ -77,7 +78,7 @@ public class {{classname}} {
final HttpHeaders {{localVariablePrefix}}headerParams = new HttpHeaders();
final MultiValueMap {{localVariablePrefix}}formParams = new LinkedMultiValueMap();{{#hasQueryParams}}
- {{#queryParams}}{{localVariablePrefix}}queryParams.putAll({{localVariablePrefix}}apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase()){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));{{#hasMore}}
+ {{#queryParams}}{{localVariablePrefix}}queryParams.putAll({{localVariablePrefix}}apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));{{#hasMore}}
{{/hasMore}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}}
{{#headerParams}}if ({{paramName}} != null)
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache
index ac8958824cb..7dbb56a3da1 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/JSON.mustache
@@ -39,6 +39,7 @@ import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
{{/java8}}
import java.util.Date;
+import java.util.Locale;
import java.util.Map;
import java.util.HashMap;
@@ -62,9 +63,9 @@ public class JSON {
public Class getClassForElement(JsonElement readElement) {
Map classByDiscriminatorValue = new HashMap();
{{#mappedModels}}
- classByDiscriminatorValue.put("{{mappingName}}".toUpperCase(), {{modelName}}.class);
+ classByDiscriminatorValue.put("{{mappingName}}".toUpperCase(Locale.ROOT), {{modelName}}.class);
{{/mappedModels}}
- classByDiscriminatorValue.put("{{classname}}".toUpperCase(), {{classname}}.class);
+ classByDiscriminatorValue.put("{{classname}}".toUpperCase(Locale.ROOT), {{classname}}.class);
return getClassByDiscriminator(
classByDiscriminatorValue,
getDiscriminatorValue(readElement, "{{{propertyName}}}"));
@@ -84,7 +85,7 @@ public class JSON {
}
private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) {
- Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue.toUpperCase());
+ Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue.toUpperCase(Locale.ROOT));
if(null == clazz) {
throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">");
}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache
index fb80f0d2dba..3bcf3ede667 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache
@@ -18,6 +18,7 @@ import io.vertx.core.file.FileSystem;
import io.vertx.core.file.OpenOptions;
import io.vertx.core.http.HttpHeaders;
import io.vertx.core.http.HttpMethod;
+import io.vertx.core.json.DecodeException;
import io.vertx.core.json.Json;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.client.HttpRequest;
@@ -553,7 +554,11 @@ public class ApiClient {
handleFileDownload(httpResponse, handler);
return;
} else {
- resultContent = Json.decodeValue(httpResponse.body(), returnType);
+ try {
+ resultContent = Json.mapper.readValue(httpResponse.bodyAsString(), returnType);
+ } catch (Exception e) {
+ throw new DecodeException("Failed to decode:" + e.getMessage(), e);
+ }
}
result = Future.succeededFuture(resultContent);
}
@@ -597,4 +602,4 @@ public class ApiClient {
auth.applyToParams(queryParams, headerParams);
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache
index 6d6a38e25c0..9c3f9fb140c 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache
@@ -8,6 +8,7 @@ import {{invokerPackage}}.ApiClient;
{{^fullJavaUtil}}import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;{{/fullJavaUtil}}
import org.springframework.beans.factory.annotation.Autowired;
@@ -77,7 +78,7 @@ public class {{classname}} {
final HttpHeaders {{localVariablePrefix}}headerParams = new HttpHeaders();
final MultiValueMap {{localVariablePrefix}}formParams = new LinkedMultiValueMap();{{#hasQueryParams}}
- {{#queryParams}}{{localVariablePrefix}}queryParams.putAll({{localVariablePrefix}}apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase()){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));{{#hasMore}}
+ {{#queryParams}}{{localVariablePrefix}}queryParams.putAll({{localVariablePrefix}}apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));{{#hasMore}}
{{/hasMore}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}}
{{#headerParams}}if ({{paramName}} != null)
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/RestApplication.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/RestApplication.mustache
index d3d8b238d72..a7673c8f138 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/RestApplication.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/RestApplication.mustache
@@ -3,7 +3,7 @@ package {{invokerPackage}};
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
-@ApplicationPath("/")
+@ApplicationPath("{{{contextPath}}}")
public class RestApplication extends Application {
// Add implementation-specific details here
}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/queryParams.mustache
index c1c9e8b45cb..48660b59a8e 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{#defaultValue}}@DefaultValue("{{{defaultValue}}}"){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}) {{#defaultValue}}@DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf/queryParams.mustache
index 6a98efdac02..60ec7b9af89 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}}@DefaultValue("{{{defaultValue}}}") {{/defaultValue}}{{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}}@DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}) {{/defaultValue}}{{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/queryParams.mustache
index 9055e6f16dc..a8e45cd5f78 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}){{#defaultValue}} @DefaultValue("{{{defaultValue}}}"){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}){{#defaultValue}} @DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/RestApplication.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/RestApplication.mustache
index df9a31434b6..99f572b54ff 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/RestApplication.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/RestApplication.mustache
@@ -3,7 +3,7 @@ package {{invokerPackage}};
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
-@ApplicationPath("/")
+@ApplicationPath("{{{contextPath}}}")
public class RestApplication extends Application {
}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/RestApplication.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/RestApplication.mustache
index cdab3c0830b..0f9c4b28e86 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/RestApplication.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/RestApplication.mustache
@@ -15,7 +15,7 @@ import {{package}}.impl.{{classname}}ServiceImpl;
{{/apis}}
{{/apiInfo}}
-@ApplicationPath("/")
+@ApplicationPath("{{{contextPath}}}")
public class RestApplication extends Application {
{{#useSwaggerFeature}}
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/queryParams.mustache
index 292fbb4600f..0fb3c78c63f 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}} @DefaultValue("{{{defaultValue}}}"){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}} @DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/RestApplication.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/RestApplication.mustache
index 82b8d9533e0..3dd570e9c35 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/RestApplication.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/RestApplication.mustache
@@ -3,7 +3,7 @@ package {{invokerPackage}};
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
-@ApplicationPath("/")
+@ApplicationPath("{{{contextPath}}}")
public class RestApplication extends Application {
}
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/queryParams.mustache
index 4434783a461..279efb3cfa3 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}} @DefaultValue("{{{defaultValue}}}"){{/defaultValue}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{description}}"){{/description}}{{/useSwaggerAnnotations}} {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{#defaultValue}} @DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{description}}"){{/description}}{{/useSwaggerAnnotations}} {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaPlayFramework/openapiUtils.mustache b/modules/openapi-generator/src/main/resources/JavaPlayFramework/openapiUtils.mustache
index 24091812020..e85eb571fe3 100644
--- a/modules/openapi-generator/src/main/resources/JavaPlayFramework/openapiUtils.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaPlayFramework/openapiUtils.mustache
@@ -104,6 +104,6 @@ public class OpenAPIUtils {
}
public static String formatDatetime(Date date) {
- return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").format(date);
+ return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ROOT).format(date);
}
-}
\ No newline at end of file
+}
diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/queryParams.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/queryParams.mustache
index 182152c6e5a..97e90bafefe 100644
--- a/modules/openapi-generator/src/main/resources/JavaSpring/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaSpring/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{defaultValue}}}"{{/defaultValue}}) {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestParam(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{>optionalDataType}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}) {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestParam(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}) {{>optionalDataType}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaVertXServer/apiVerticle.mustache b/modules/openapi-generator/src/main/resources/JavaVertXServer/apiVerticle.mustache
index ad95c328257..66d7f51f8c5 100644
--- a/modules/openapi-generator/src/main/resources/JavaVertXServer/apiVerticle.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaVertXServer/apiVerticle.mustache
@@ -68,7 +68,7 @@ public class {{classname}}Verticle extends AbstractVerticle {
{{{dataType}}} {{paramName}} = {{paramName}}Param;
{{/required}}
{{^required}}
- {{{dataType}}} {{paramName}} = ({{paramName}}Param == null) ? {{#defaultValue}}{{defaultValue}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}} : {{paramName}}Param;
+ {{{dataType}}} {{paramName}} = ({{paramName}}Param == null) ? {{#defaultValue}}{{#isEnum}}"{{/isEnum}}{{{defaultValue}}}{{#isEnum}}"{{/isEnum}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}} : {{paramName}}Param;
{{/required}}
{{/isString}}
{{^isString}}
diff --git a/modules/openapi-generator/src/main/resources/MSF4J/queryParams.mustache b/modules/openapi-generator/src/main/resources/MSF4J/queryParams.mustache
index 9055e6f16dc..a8e45cd5f78 100644
--- a/modules/openapi-generator/src/main/resources/MSF4J/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/MSF4J/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}){{#defaultValue}} @DefaultValue("{{{defaultValue}}}"){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, {{> allowableValues }}{{/allowableValues}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}){{#defaultValue}} @DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}} @QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache
index 81df5d1ff56..d00fcdeb6e3 100644
--- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache
+++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/api-source.mustache
@@ -36,55 +36,55 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
}
{{/isContainer}}{{/isPrimitiveType}}{{/required}}{{/allParams}}
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("{{{path}}}");
- {{#pathParams}}boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("{{baseName}}") + utility::conversions::to_string_t("}"), ApiClient::parameterToString({{{paramName}}}));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("{{{path}}}");
+ {{#pathParams}}boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("{{baseName}}") + utility::conversions::to_string_t("}"), ApiClient::parameterToString({{{paramName}}}));
{{/pathParams}}
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
+ std::unordered_set localVarResponseHttpContentTypes;
{{#produces}}
- responseHttpContentTypes.insert( utility::conversions::to_string_t("{{{mediaType}}}") );
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("{{{mediaType}}}") );
{{/produces}}
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
{{#vendorExtensions.x-codegen-response.isString}}
- responseHttpContentType = utility::conversions::to_string_t("text/plain");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("text/plain");
{{/vendorExtensions.x-codegen-response.isString}}
{{^vendorExtensions.x-codegen-response.isString}}
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
{{/vendorExtensions.x-codegen-response.isString}}
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
{{#vendorExtensions.x-codegen-response.isString}}
// plain text
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("text/plain")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("text/plain")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("text/plain");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("text/plain");
}
{{/vendorExtensions.x-codegen-response.isString}}
{{#vendorExtensions.x-codegen-response-ishttpcontent}}
else
{
//It's going to be binary, so just use the first one.
- responseHttpContentType = *responseHttpContentTypes.begin();
+ localVarResponseHttpContentType = *localVarResponseHttpContentTypes.begin();
}
{{/vendorExtensions.x-codegen-response-ishttpcontent}}
{{^vendorExtensions.x-codegen-response-ishttpcontent}}
@@ -94,11 +94,11 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
}
{{/vendorExtensions.x-codegen-response-ishttpcontent}}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
+ std::unordered_set localVarConsumeHttpContentTypes;
{{#consumes}}
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("{{{mediaType}}}") );
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("{{{mediaType}}}") );
{{/consumes}}
{{#allParams}}
@@ -131,17 +131,17 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
{{/required}}
{
{{#isQueryParam}}
- queryParams[utility::conversions::to_string_t("{{baseName}}")] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
+ localVarQueryParams[utility::conversions::to_string_t("{{baseName}}")] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
{{/isQueryParam}}
{{#isHeaderParam}}
- headerParams[utility::conversions::to_string_t("{{baseName}}")] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
+ localVarHeaderParams[utility::conversions::to_string_t("{{baseName}}")] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
{{/isHeaderParam}}
{{#isFormParam}}
{{#isFile}}
- fileParams[ utility::conversions::to_string_t("{{baseName}}") ] = {{^required}}*{{/required}}{{paramName}};
+ localVarFileParams[ utility::conversions::to_string_t("{{baseName}}") ] = {{^required}}*{{/required}}{{paramName}};
{{/isFile}}
{{^isFile}}
- formParams[ utility::conversions::to_string_t("{{baseName}}") ] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
+ localVarFormParams[ utility::conversions::to_string_t("{{baseName}}") ] = ApiClient::parameterToString({{^required}}*{{/required}}{{paramName}});
{{/isFile}}
{{/isFormParam}}
}
@@ -149,77 +149,77 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
{{/isBodyParam}}
{{/allParams}}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
{{#bodyParam}}
- web::json::value json;
+ web::json::value localVarJson;
{{#isPrimitiveType}}
- json = ModelBase::toJson({{paramName}});
+ localVarJson = ModelBase::toJson({{paramName}});
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{#isListContainer}}
{
- std::vector jsonArray;
- for( auto& item : {{paramName}} )
+ std::vector localVarJsonArray;
+ for( auto& localVarItem : {{paramName}} )
{
- {{#items.isPrimitiveType}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isPrimitiveType}}{{^items.isPrimitiveType}}{{#items.isString}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isDateTime}}{{^items.isDateTime}}jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() );
+ {{#items.isPrimitiveType}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isPrimitiveType}}{{^items.isPrimitiveType}}{{#items.isString}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isDateTime}}{{^items.isDateTime}}localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
{{/items.isDateTime}}{{/items.isString}}{{/items.isPrimitiveType}}
}
- json = web::json::value::array(jsonArray);
+ localVarJson = web::json::value::array(localVarJsonArray);
}
{{/isListContainer}}
- {{^isListContainer}}{{#required}}json = ModelBase::toJson({{paramName}});
+ {{^isListContainer}}{{#required}}localVarJson = ModelBase::toJson({{paramName}});
{{/required}}{{^required}}if ({{paramName}})
- json = ModelBase::toJson(*{{paramName}});{{/required}}
+ localVarJson = ModelBase::toJson(*{{paramName}});{{/required}}
{{/isListContainer}}
{{/isPrimitiveType}}
- httpBody = std::shared_ptr( new JsonBody( json ) );
+ localVarHttpBody = std::shared_ptr( new JsonBody( localVarJson ) );
{{/bodyParam}}
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
{{#bodyParam}}
- std::shared_ptr multipart(new MultipartFormData);
+ std::shared_ptr localVarMultipart(new MultipartFormData);
{{#isPrimitiveType}}
- multipart->add(ModelBase::toHttpContent("{{paramName}}", {{paramName}}));
+ localVarMultipart->add(ModelBase::toHttpContent("{{paramName}}", {{paramName}}));
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{#isListContainer}}
{
- std::vector jsonArray;
- for( auto& item : {{paramName}} )
+ std::vector localVarJsonArray;
+ for( auto& localVarItem : {{paramName}} )
{
- {{#items.isPrimitiveType}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isPrimitiveType}}{{^items.isPrimitiveType}}{{#items.isString}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}jsonArray.push_back(ModelBase::toJson(item));
- {{/items.isDateTime}}{{^items.isDateTime}}jsonArray.push_back( item.get() ? item->toJson() : web::json::value::null() );
+ {{#items.isPrimitiveType}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isPrimitiveType}}{{^items.isPrimitiveType}}{{#items.isString}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}localVarJsonArray.push_back(ModelBase::toJson(localVarItem));
+ {{/items.isDateTime}}{{^items.isDateTime}}localVarJsonArray.push_back( localVarItem.get() ? localVarItem->toJson() : web::json::value::null() );
{{/items.isDateTime}}{{/items.isString}}{{/items.isPrimitiveType}}
}
- multipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("{{paramName}}"), web::json::value::array(jsonArray), utility::conversions::to_string_t("application/json")));
+ localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("{{paramName}}"), web::json::value::array(localVarJsonArray), utility::conversions::to_string_t("application/json")));
}{{/isListContainer}}
- {{^isListContainer}}{{#isString}}multipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("{{paramName}}"), {{paramName}}));
+ {{^isListContainer}}{{#isString}}localVarMultipart->add(ModelBase::toHttpContent(utility::conversions::to_string_t("{{paramName}}"), {{paramName}}));
{{/isString}}{{^isString}}if({{^required}}{{paramName}} && (*{{paramName}}){{/required}}{{#required}}{{paramName}}{{/required}}.get())
{
- {{^required}}(*{{/required}}{{paramName}}{{^required}}){{/required}}->toMultipart(multipart, utility::conversions::to_string_t("{{paramName}}"));
+ {{^required}}(*{{/required}}{{paramName}}{{^required}}){{/required}}->toMultipart(localVarMultipart, utility::conversions::to_string_t("{{paramName}}"));
}
{{/isString}}
{{/isListContainer}}
{{/isPrimitiveType}}
- httpBody = multipart;
- requestHttpContentType += utility::conversions::to_string_t("; boundary=") + multipart->getBoundary();
+ localVarHttpBody = localVarMultipart;
+ localVarRequestHttpContentType += utility::conversions::to_string_t("; boundary=") + localVarMultipart->getBoundary();
{{/bodyParam}}
}
else
@@ -232,19 +232,19 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
{{#isApiKey}}
{{#isKeyInHeader}}
{
- utility::string_t apiKey = apiConfiguration->getApiKey(utility::conversions::to_string_t("{{keyParamName}}"));
- if ( apiKey.size() > 0 )
+ utility::string_t localVarApiKey = localVarApiConfiguration->getApiKey(utility::conversions::to_string_t("{{keyParamName}}"));
+ if ( localVarApiKey.size() > 0 )
{
- headerParams[utility::conversions::to_string_t("{{keyParamName}}")] = apiKey;
+ localVarHeaderParams[utility::conversions::to_string_t("{{keyParamName}}")] = localVarApiKey;
}
}
{{/isKeyInHeader}}
{{#isKeyInQuery}}
{
- utility::string_t apiKey = apiConfiguration->getApiKey(utility::conversions::to_string_t("{{keyParamName}}"));
- if ( apiKey.size() > 0 )
+ utility::string_t localVarApiKey = localVarApiConfiguration->getApiKey(utility::conversions::to_string_t("{{keyParamName}}"));
+ if ( localVarApiKey.size() > 0 )
{
- queryParams[utility::conversions::to_string_t("{{keyParamName}}")] = apiKey;
+ localVarQueryParams[utility::conversions::to_string_t("{{keyParamName}}")] = localVarApiKey;
}
}
{{/isKeyInQuery}}
@@ -257,91 +257,91 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
{{/isOAuth}}
{{/authMethods}}
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("{{httpMethod}}"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("{{httpMethod}}"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling {{operationId}}: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling {{operationId}}: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling {{operationId}}: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling {{operationId}}: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
{{#vendorExtensions.x-codegen-response-ishttpcontent}}
- return response.extract_vector();
+ return localVarResponse.extract_vector();
})
- .then([=](std::vector response)
+ .then([=](std::vector localVarResponse)
{
- HttpContent result;
- std::shared_ptr stream = std::make_shared(std::string(response.begin(), response.end()));
- result.setData(stream);
- return result;
+ HttpContent localVarResult;
+ std::shared_ptr stream = std::make_shared(std::string(localVarResponse.begin(), localVarResponse.end()));
+ localVarResult.setData(stream);
+ return localVarResult;
{{/vendorExtensions.x-codegen-response-ishttpcontent}}
{{^vendorExtensions.x-codegen-response-ishttpcontent}}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
{{^returnType}}
return void();
{{/returnType}}
{{#returnType}}
{{#returnContainer}}
- {{{returnType}}} result;
+ {{{returnType}}} localVarResult;
{{/returnContainer}}
{{^returnContainer}}
- {{{returnType}}} result({{{defaultResponse}}});
+ {{{returnType}}} localVarResult({{{defaultResponse}}});
{{/returnContainer}}
- if(responseHttpContentType == utility::conversions::to_string_t("application/json"))
+ if(localVarResponseHttpContentType == utility::conversions::to_string_t("application/json"))
{
- web::json::value json = web::json::value::parse(response);
+ web::json::value localVarJson = web::json::value::parse(localVarResponse);
- {{#isListContainer}}for( auto& item : json.as_array() )
+ {{#isListContainer}}for( auto& localVarItem : localVarJson.as_array() )
{
- {{#vendorExtensions.x-codegen-response.items.isPrimitiveType}}result.push_back(ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(item));
- {{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.isString}}result.push_back(ModelBase::stringFromJson(item));
- {{/vendorExtensions.x-codegen-response.items.isString}}{{^vendorExtensions.x-codegen-response.items.isString}}{{{vendorExtensions.x-codegen-response.items.datatype}}} itemObj({{{vendorExtensions.x-codegen-response.items.defaultValue}}});
- itemObj->fromJson(item);
- result.push_back(itemObj);
+ {{#vendorExtensions.x-codegen-response.items.isPrimitiveType}}localVarResult.push_back(ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(localVarItem));
+ {{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.isString}}localVarResult.push_back(ModelBase::stringFromJson(localVarItem));
+ {{/vendorExtensions.x-codegen-response.items.isString}}{{^vendorExtensions.x-codegen-response.items.isString}}{{{vendorExtensions.x-codegen-response.items.datatype}}} localVarItemObj({{{vendorExtensions.x-codegen-response.items.defaultValue}}});
+ localVarItemObj->fromJson(localVarItem);
+ localVarResult.push_back(localVarItemObj);
{{/vendorExtensions.x-codegen-response.items.isString}}{{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}
}
- {{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}for( auto& item : json.as_object() )
+ {{/isListContainer}}{{^isListContainer}}{{#isMapContainer}}for( auto& localVarItem : localVarJson.as_object() )
{
- {{#vendorExtensions.x-codegen-response.items.isPrimitiveType}}result[item.first] = ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(item.second);
- {{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.isString}}result[item.first] = ModelBase::stringFromJson(item.second);
- {{/vendorExtensions.x-codegen-response.items.isString}}{{^vendorExtensions.x-codegen-response.items.isString}}{{{vendorExtensions.x-codegen-response.items.datatype}}} itemObj({{{vendorExtensions.x-codegen-response.items.defaultValue}}});
- itemObj->fromJson(item.second);
- result[item.first] = itemObj;
+ {{#vendorExtensions.x-codegen-response.items.isPrimitiveType}}localVarResult[localVarItem.first] = ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(localVarItem.second);
+ {{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.items.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.isString}}localVarResult[localVarItem.first] = ModelBase::stringFromJson(localVarItem.second);
+ {{/vendorExtensions.x-codegen-response.items.isString}}{{^vendorExtensions.x-codegen-response.items.isString}}{{{vendorExtensions.x-codegen-response.items.datatype}}} localVarItemObj({{{vendorExtensions.x-codegen-response.items.defaultValue}}});
+ localVarItemObj->fromJson(localVarItem.second);
+ localVarResult[localVarItem.first] = localVarItemObj;
{{/vendorExtensions.x-codegen-response.items.isString}}{{/vendorExtensions.x-codegen-response.items.isPrimitiveType}}
}
- {{/isMapContainer}}{{^isMapContainer}}{{#vendorExtensions.x-codegen-response.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.datatype}}result = ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(json);
- {{/vendorExtensions.x-codegen-response.items.datatype}}{{^vendorExtensions.x-codegen-response.items.datatype}}result = ModelBase::{{vendorExtensions.x-codegen-response.datatype}}FromJson(json);
- {{/vendorExtensions.x-codegen-response.items.datatype}}{{/vendorExtensions.x-codegen-response.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.isString}}result = ModelBase::stringFromJson(json);
- {{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}result->fromJson(json);{{/vendorExtensions.x-codegen-response.isString}}{{/vendorExtensions.x-codegen-response.isPrimitiveType}}{{/isMapContainer}}{{/isListContainer}}
+ {{/isMapContainer}}{{^isMapContainer}}{{#vendorExtensions.x-codegen-response.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.items.datatype}}localVarResult = ModelBase::{{vendorExtensions.x-codegen-response.items.datatype}}FromJson(localVarJson);
+ {{/vendorExtensions.x-codegen-response.items.datatype}}{{^vendorExtensions.x-codegen-response.items.datatype}}localVarResult = ModelBase::{{vendorExtensions.x-codegen-response.datatype}}FromJson(localVarJson);
+ {{/vendorExtensions.x-codegen-response.items.datatype}}{{/vendorExtensions.x-codegen-response.isPrimitiveType}}{{^vendorExtensions.x-codegen-response.isPrimitiveType}}{{#vendorExtensions.x-codegen-response.isString}}localVarResult = ModelBase::stringFromJson(localVarJson);
+ {{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}localVarResult->fromJson(localVarJson);{{/vendorExtensions.x-codegen-response.isString}}{{/vendorExtensions.x-codegen-response.isPrimitiveType}}{{/isMapContainer}}{{/isListContainer}}
}{{#vendorExtensions.x-codegen-response.isString}}
- else if(responseHttpContentType == utility::conversions::to_string_t("text/plain"))
+ else if(localVarResponseHttpContentType == utility::conversions::to_string_t("text/plain"))
{
- result = response;
+ localVarResult = localVarResponse;
}{{/vendorExtensions.x-codegen-response.isString}}
- // else if(responseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
+ // else if(localVarResponseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
// {
// TODO multipart response parsing
// }
@@ -351,7 +351,7 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
, utility::conversions::to_string_t("error calling {{operationId}}: unsupported response type"));
}
- return result;
+ return localVarResult;
{{/returnType}}
{{/vendorExtensions.x-codegen-response-ishttpcontent}}
});
diff --git a/modules/openapi-generator/src/main/resources/erlang-client/api.mustache b/modules/openapi-generator/src/main/resources/erlang-client/api.mustache
index c292cf28aa3..a2335745bbb 100644
--- a/modules/openapi-generator/src/main/resources/erlang-client/api.mustache
+++ b/modules/openapi-generator/src/main/resources/erlang-client/api.mustache
@@ -22,9 +22,9 @@
Method = {{httpMethod}},
Path = ["{{{replacedPathName}}}"],
- QS = {{#queryParams.isEmpty}}[]{{/queryParams.isEmpty}}{{^queryParams.isEmpty}}lists:flatten([{{#queryParams}}{{#required}}{{^-first}}, {{/-first}}{{#qsEncode}}{{this}}{{/qsEncode}}{{/required}}{{/queryParams}}])++{{packageName}}_utils:optional_params([{{#queryParams}}{{^required}}{{^-first}}, {{/-first}}'{{baseName}}'{{/required}}{{/queryParams}}], _OptionalParams){{/queryParams.isEmpty}},
- Headers = {{#headerParams.isEmpty}}[]{{/headerParams.isEmpty}}{{^headerParams.isEmpty}}[{{#headerParams}}{{#required}}{{^-first}}, {{/-first}}{<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/headerParams}}]++{{packageName}}_utils:optional_params([{{#headerParams}}{{^required}}{{^-first}}, {{/-first}}'{{baseName}}'{{/required}}{{/headerParams}}], _OptionalParams){{/headerParams.isEmpty}},
- Body1 = {{^formParams.isEmpty}}{form, [{{#formParams}}{{#required}}{{^-first}}, {{/-first}}{<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/formParams}}]++{{packageName}}_utils:optional_params([{{#formParams}}{{^required}}{{^-first}}, {{/-first}}'{{baseName}}'{{/required}}{{/formParams}}], _OptionalParams)}{{/formParams.isEmpty}}{{#formParams.isEmpty}}{{#bodyParams.isEmpty}}[]{{/bodyParams.isEmpty}}{{^bodyParams.isEmpty}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/bodyParams.isEmpty}}{{/formParams.isEmpty}},
+ QS = {{#queryParams.isEmpty}}[]{{/queryParams.isEmpty}}{{^queryParams.isEmpty}}lists:flatten([{{#joinWithComma}}{{#queryParams}}{{#required}}{{#qsEncode}}{{this}}{{/qsEncode}} {{/required}}{{/queryParams}}{{/joinWithComma}}])++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#queryParams}}{{^required}} '{{baseName}}'{{/required}}{{/queryParams}}{{/joinWithComma}}], _OptionalParams){{/queryParams.isEmpty}},
+ Headers = {{#headerParams.isEmpty}}[]{{/headerParams.isEmpty}}{{^headerParams.isEmpty}}[{{#headerParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/headerParams}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#headerParams}}{{^required}} '{{baseName}}'{{/required}}{{/headerParams}}{{/joinWithComma}}], _OptionalParams){{/headerParams.isEmpty}},
+ Body1 = {{^formParams.isEmpty}}{form, [{{#joinWithComma}}{{#formParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/formParams}}{{/joinWithComma}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#formParams}}{{^required}} '{{baseName}}'{{/required}}{{/formParams}}{{/joinWithComma}}], _OptionalParams)}{{/formParams.isEmpty}}{{#formParams.isEmpty}}{{#bodyParams.isEmpty}}[]{{/bodyParams.isEmpty}}{{^bodyParams.isEmpty}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/bodyParams.isEmpty}}{{/formParams.isEmpty}},
ContentTypeHeader = {{packageName}}_utils:select_header_content_type([{{#consumes}}{{^-first}}, {{/-first}}<<"{{mediaType}}">>{{/consumes}}]),
Opts = maps:get(hackney_opts, Optional, []),
diff --git a/modules/openapi-generator/src/main/resources/go/model.mustache b/modules/openapi-generator/src/main/resources/go/model.mustache
index f669ec2c2bb..4243daa4e2d 100644
--- a/modules/openapi-generator/src/main/resources/go/model.mustache
+++ b/modules/openapi-generator/src/main/resources/go/model.mustache
@@ -35,7 +35,7 @@ type {{classname}} struct {
{{#description}}
// {{{description}}}
{{/description}}
- {{name}} {{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}"{{/withXml}}`
+ {{name}} {{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}`
{{/vars}}
}
{{/isEnum}}
diff --git a/modules/openapi-generator/src/main/resources/java-pkmst/queryParams.mustache b/modules/openapi-generator/src/main/resources/java-pkmst/queryParams.mustache
index 182152c6e5a..97e90bafefe 100644
--- a/modules/openapi-generator/src/main/resources/java-pkmst/queryParams.mustache
+++ b/modules/openapi-generator/src/main/resources/java-pkmst/queryParams.mustache
@@ -1 +1 @@
-{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{defaultValue}}}"{{/defaultValue}}) {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestParam(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{>optionalDataType}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
+{{#isQueryParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{#-last}}{{/-last}}{{/values}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = {{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}) {{#useBeanValidation}}@Valid{{/useBeanValidation}} @RequestParam(value = "{{baseName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue={{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{/defaultValue}}) {{>optionalDataType}} {{paramName}}{{/isQueryParam}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/lumen/.gitignore b/modules/openapi-generator/src/main/resources/lumen/.gitignore
new file mode 100644
index 00000000000..390a8878ede
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/lumen/.gitignore
@@ -0,0 +1,8 @@
+# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
+
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+# composer.lock
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/php-laravel/.gitignore b/modules/openapi-generator/src/main/resources/php-laravel/.gitignore
new file mode 100644
index 00000000000..286a6119198
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/php-laravel/.gitignore
@@ -0,0 +1,19 @@
+# ref: https://github.com/github/gitignore/blob/master/Laravel.gitignore
+
+vendor/
+node_modules/
+npm-debug.log
+yarn-error.log
+
+# Laravel 4 specific
+bootstrap/compiled.php
+app/storage/
+
+# Laravel 5 & Lumen specific
+public/storage
+public/hot
+storage/*.key
+.env
+Homestead.yaml
+Homestead.json
+/.vagrant
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/php-silex/.gitignore b/modules/openapi-generator/src/main/resources/php-silex/.gitignore
new file mode 100644
index 00000000000..390a8878ede
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/php-silex/.gitignore
@@ -0,0 +1,8 @@
+# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
+
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+# composer.lock
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/php-slim-server/.gitignore b/modules/openapi-generator/src/main/resources/php-slim-server/.gitignore
index 23a42ca8d8a..390a8878ede 100644
--- a/modules/openapi-generator/src/main/resources/php-slim-server/.gitignore
+++ b/modules/openapi-generator/src/main/resources/php-slim-server/.gitignore
@@ -1,3 +1,5 @@
+# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
+
composer.phar
/vendor/
diff --git a/modules/openapi-generator/src/main/resources/php-slim-server/.htaccess b/modules/openapi-generator/src/main/resources/php-slim-server/.htaccess
index e47b5fb8a0c..f6a2ceb3952 100644
--- a/modules/openapi-generator/src/main/resources/php-slim-server/.htaccess
+++ b/modules/openapi-generator/src/main/resources/php-slim-server/.htaccess
@@ -1,5 +1,6 @@
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteRule ^ index.php [QSA,L]
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/php-slim-server/README.mustache b/modules/openapi-generator/src/main/resources/php-slim-server/README.mustache
index e7b73f219bf..c8375231584 100644
--- a/modules/openapi-generator/src/main/resources/php-slim-server/README.mustache
+++ b/modules/openapi-generator/src/main/resources/php-slim-server/README.mustache
@@ -1,22 +1,77 @@
-# OpenAPI generated server
+# {{packageName}} - PHP Slim Server library for {{appName}}
-## Overview
-This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the
-[OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub. This
-is an example of building a PHP Slim server.
+[Slim Framework Documentation](https://www.slimframework.com/docs/)
-This example uses the [Slim Framework](http://www.slimframework.com/). To see how to make this your own, please take a look at the template here:
+## Requirements
-[TEMPLATES](https://github.com/openapitools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources/php-slim-server/)
+* Web server with URL rewriting
+* PHP 5.5 or newer
+
+This package contains `.htaccess` for Apache configuration.
+If you use another server(Nginx, HHVM, IIS, lighttpd) check out [Web Servers](https://www.slimframework.com/docs/v3/start/web-servers.html) doc.
+
+## Installation via [Composer](https://getcomposer.org/)
+
+Navigate into your project's root directory and execute the bash command shown below.
+This command downloads the Slim Framework and its third-party dependencies into your project's `vendor/` directory.
+```bash
+$ composer install
+```
+
+## Start devserver
+
+Run the following command in terminal to start localhost web server, assuming `./php-slim-server/` is public-accessible directory with `index.php` file:
+```bash
+$ php -S localhost:8888 -t php-slim-server
+```
+> **Warning** This web server was designed to aid application development.
+> It may also be useful for testing purposes or for application demonstrations that are run in controlled environments.
+> It is not intended to be a full-featured web server. It should not be used on a public network.
+
+## Run tests
+
+This package uses PHPUnit 4.8 for unit testing.
+[Test folder]({{testBasePath}}) contains templates which you can fill with real test assertions.
+How to write tests read at [PHPUnit Manual - Chapter 2. Writing Tests for PHPUnit](https://phpunit.de/manual/4.8/en/writing-tests-for-phpunit.html).
+
+Command | Tool | Target
+---- | ---- | ----
+`$ composer test` | PHPUnit | All tests
+`$ composer run test-apis` | PHPUnit | Apis tests
+`$ composer run test-models` | PHPUnit | Models tests
+
+{{#generateApiDocs}}
+## API Endpoints
+
+All URIs are relative to *{{{basePath}}}*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | **{{operationId}}** | **{{httpMethod}}** {{path}} | {{#summary}}{{{summary}}}{{/summary}}
+{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
+{{/generateApiDocs}}
+
+{{#generateModelDocs}}
+## Models
+
+{{#modelPackage}}
+{{#models}}{{#model}}* {{{modelPackage}}}\{{{classname}}}
+{{/model}}{{/models}}
+{{/modelPackage}}
+{{^modelPackage}}
+No model defined in this package
+{{/modelPackage}}
+{{/generateModelDocs}}
{{#authMethods}}
{{^hasMore}}
## Authentication
+
{{/hasMore}}
{{/authMethods}}
{{#authMethods}}
{{#isBasic}}
-> Important! To make Basic Authentication work you need to implement `authenticator` function in [SlimRouter]({{srcBasePath}}/SlimRouter.php) class.
-> Documentation [tuupola/slim-basic-auth](https://github.com/tuupola/slim-basic-auth)
+> Important! To make Basic Authentication work you need to implement `authenticator` function in [SlimRouter]({{srcBasePath}}/SlimRouter.php) class.
+> Documentation [tuupola/slim-basic-auth](https://github.com/tuupola/slim-basic-auth#readme)
{{/isBasic}}
{{/authMethods}}
diff --git a/modules/openapi-generator/src/main/resources/php-symfony/.gitignore b/modules/openapi-generator/src/main/resources/php-symfony/.gitignore
new file mode 100644
index 00000000000..20b7b989760
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/php-symfony/.gitignore
@@ -0,0 +1,54 @@
+# ref: https://github.com/github/gitignore/blob/master/Symfony.gitignore
+
+# Cache and logs (Symfony2)
+/app/cache/*
+/app/logs/*
+!app/cache/.gitkeep
+!app/logs/.gitkeep
+
+# Email spool folder
+/app/spool/*
+
+# Cache, session files and logs (Symfony3)
+/var/cache/*
+/var/logs/*
+/var/sessions/*
+!var/cache/.gitkeep
+!var/logs/.gitkeep
+!var/sessions/.gitkeep
+
+# Parameters
+/app/config/parameters.yml
+/app/config/parameters.ini
+
+# Managed by Composer
+/app/bootstrap.php.cache
+/var/bootstrap.php.cache
+/bin/*
+!bin/console
+!bin/symfony_requirements
+/vendor/
+
+# Assets and user uploads
+/web/bundles/
+/web/uploads/
+
+# PHPUnit
+/app/phpunit.xml
+/phpunit.xml
+
+# Build data
+/build/
+
+# Composer PHAR
+/composer.phar
+
+# Backup entities generated with doctrine:generate:entities command
+**/Entity/*~
+
+# Embedded web-server pid file
+/.web-server-pid
+
+# From root gitignore
+/Tests/cache/
+/Tests/logs/
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache b/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache
index 69ac276f6c1..3c623d307b5 100644
--- a/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache
+++ b/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache
@@ -25,7 +25,7 @@
"ext-mbstring": "*",
"symfony/validator": "*",
"jms/serializer-bundle": "*",
- "symfony/framework-bundle": "^2.3|^3.0"
+ "symfony/framework-bundle": "^2.3|^3.0|^4.1"
},
"require-dev": {
"phpunit/phpunit": "~4.8",
diff --git a/modules/openapi-generator/src/main/resources/php-symfony/services.mustache b/modules/openapi-generator/src/main/resources/php-symfony/services.mustache
index 6d61563c32d..f28cde4d73f 100644
--- a/modules/openapi-generator/src/main/resources/php-symfony/services.mustache
+++ b/modules/openapi-generator/src/main/resources/php-symfony/services.mustache
@@ -14,10 +14,10 @@ services:
class: {{modelPackage}}\ModelSerializer
{{bundleAlias}}.service.serializer:
- class: %{{bundleAlias}}.serializer%
+ class: '%{{bundleAlias}}.serializer%'
{{bundleAlias}}.service.validator:
- class: %{{bundleAlias}}.validator%
+ class: '%{{bundleAlias}}.validator%'
{{#apiInfo}}
{{#apis}}
diff --git a/modules/openapi-generator/src/main/resources/php/.gitignore b/modules/openapi-generator/src/main/resources/php/.gitignore
new file mode 100644
index 00000000000..edcf63f6aee
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/php/.gitignore
@@ -0,0 +1,8 @@
+# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
+
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache b/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache
index 280b4e53389..2ade78f5a61 100644
--- a/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache
+++ b/modules/openapi-generator/src/main/resources/swift4/AlamofireImplementations.mustache
@@ -17,8 +17,37 @@ class AlamofireRequestBuilderFactory: RequestBuilderFactory {
}
}
+private struct SynchronizedDictionary {
+
+ private var dictionary = [K: V]()
+ private let queue = DispatchQueue(
+ label: "SynchronizedDictionary",
+ qos: DispatchQoS.userInitiated,
+ attributes: [DispatchQueue.Attributes.concurrent],
+ autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency.inherit,
+ target: nil
+ )
+
+ public subscript(key: K) -> V? {
+ get {
+ var value: V?
+
+ queue.sync {
+ value = self.dictionary[key]
+ }
+
+ return value
+ }
+ set {
+ queue.sync(flags: DispatchWorkItemFlags.barrier) {
+ self.dictionary[key] = newValue
+ }
+ }
+ }
+ }
+
// Store manager to retain its reference
-private var managerStore: [String: Alamofire.SessionManager] = [:]
+private var managerStore = SynchronizedDictionary()
open class AlamofireRequestBuilder: RequestBuilder {
required public init(method: String, URLString: String, parameters: [String : Any]?, isBody: Bool, headers: [String : String] = [:]) {
@@ -112,7 +141,7 @@ open class AlamofireRequestBuilder: RequestBuilder {
}
let cleanupRequest = {
- _ = managerStore.removeValue(forKey: managerId)
+ managerStore[managerId] = nil
}
let validatedRequest = request.validate()
@@ -314,7 +343,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuilde
}
let cleanupRequest = {
- _ = managerStore.removeValue(forKey: managerId)
+ managerStore[managerId] = nil
}
let validatedRequest = request.validate()
diff --git a/modules/openapi-generator/src/main/resources/typescript-angular/README.mustache b/modules/openapi-generator/src/main/resources/typescript-angular/README.mustache
index c701faf6be6..ad56f190c41 100644
--- a/modules/openapi-generator/src/main/resources/typescript-angular/README.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-angular/README.mustache
@@ -11,10 +11,10 @@ npm run build
### publishing
{{#useNgPackagr}}
-First build the package than run ```npm publish dist``` (don't forget to specify the `dist` folder!)
+First build the package then run ```npm publish dist``` (don't forget to specify the `dist` folder!)
{{/useNgPackagr}}
{{^useNgPackagr}}
-First build the package than run ```npm publish```
+First build the package then run ```npm publish```
{{/useNgPackagr}}
### consuming
@@ -190,4 +190,4 @@ import { environment } from '../environments/environment';
bootstrap: [ AppComponent ]
})
export class AppModule { }
-```
\ No newline at end of file
+```
diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/api.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/api.mustache
index d791ace1d7a..f6da696178d 100644
--- a/modules/openapi-generator/src/main/resources/typescript-fetch/api.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-fetch/api.mustache
@@ -102,7 +102,11 @@ export const {{classname}}FetchParamCreator = function (configuration?: Configur
const localVarPath = `{{{path}}}`{{#pathParams}}
.replace(`{${"{{baseName}}"}}`, encodeURIComponent(String({{paramName}}))){{/pathParams}};
const localVarUrlObj = url.parse(localVarPath, true);
- const localVarRequestOptions = Object.assign({ method: '{{httpMethod}}' }, options);
+ let baseOptions;
+ if (configuration) {
+ baseOptions = configuration.baseOptions;
+ }
+ const localVarRequestOptions = Object.assign({ method: '{{httpMethod}}' }, baseOptions, options);
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
{{#hasFormParams}}
diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/configuration.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/configuration.mustache
index 5614b839645..777f4fa1a2b 100644
--- a/modules/openapi-generator/src/main/resources/typescript-fetch/configuration.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-fetch/configuration.mustache
@@ -7,6 +7,7 @@ export interface ConfigurationParameters {
password?: string;
accessToken?: string | ((name: string, scopes?: string[]) => string);
basePath?: string;
+ baseOptions?: any;
}
export class Configuration {
@@ -44,6 +45,13 @@ export class Configuration {
* @memberof Configuration
*/
basePath?: string;
+ /**
+ * base options for fetch calls
+ *
+ * @type {any}
+ * @memberof Configuration
+ */
+ baseOptions?: any;
constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey;
diff --git a/modules/openapi-generator/src/main/resources/typescript-jquery/api.mustache b/modules/openapi-generator/src/main/resources/typescript-jquery/api.mustache
index 71678eada2b..182f2f09b37 100644
--- a/modules/openapi-generator/src/main/resources/typescript-jquery/api.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-jquery/api.mustache
@@ -238,7 +238,7 @@ export class {{classname}} {
>();
$.ajax(requestOptions).then(
(data: {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}any{{/returnType}}, textStatus: string, jqXHR: JQueryXHR) =>
- dfd.resolve({response: jqXHR, body: data),
+ dfd.resolve({response: jqXHR, body: data}),
(xhr: JQueryXHR, textStatus: string, errorThrown: string) =>
dfd.reject({response: xhr, errorThrown: errorThrown})
);
diff --git a/modules/openapi-generator/src/main/resources/ze-ph/.gitignore b/modules/openapi-generator/src/main/resources/ze-ph/.gitignore
new file mode 100644
index 00000000000..be88ab49679
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/ze-ph/.gitignore
@@ -0,0 +1,26 @@
+# ref: https://github.com/github/gitignore/blob/master/ZendFramework.gitignore
+
+# Composer files
+composer.phar
+vendor/
+
+# Local configs
+config/autoload/*.local.php
+
+# Binary gettext files
+*.mo
+
+# Data
+data/logs/
+data/cache/
+data/sessions/
+data/tmp/
+temp/
+
+#Doctrine 2
+data/DoctrineORMModule/Proxy/
+data/DoctrineORMModule/cache/
+
+# Legacy ZF1
+demos/
+extras/documentation
\ No newline at end of file
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java
index c9a98d66f58..ee7b4f9b38d 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/AbstractOptionsTest.java
@@ -30,6 +30,7 @@ import org.testng.annotations.Test;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Set;
public abstract class AbstractOptionsTest {
@@ -58,12 +59,12 @@ public abstract class AbstractOptionsTest {
final Set skipped = new HashSet(cliOptions);
skipped.removeAll(testOptions);
if (!skipped.isEmpty()) {
- Assert.fail(String.format("These options weren't checked: %s.", StringUtils.join(skipped, ", ")));
+ Assert.fail(String.format(Locale.ROOT, "These options weren't checked: %s.", StringUtils.join(skipped, ", ")));
}
final Set undocumented = new HashSet(testOptions);
undocumented.removeAll(cliOptions);
if (!undocumented.isEmpty()) {
- Assert.fail(String.format("These options weren't documented: %s. Are you expecting base options and calling cliOptions.clear()?", StringUtils.join(undocumented, ", ")));
+ Assert.fail(String.format(Locale.ROOT,"These options weren't documented: %s. Are you expecting base options and calling cliOptions.clear()?", StringUtils.join(undocumented, ", ")));
}
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
index 7a6fc2e0ae4..2666cc2c6dd 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java
@@ -208,9 +208,7 @@ public class DefaultCodegenTest {
};
- Method method = DefaultCodegen.class.getDeclaredMethod("getAllAliases", Map.class);
- method.setAccessible(true);
- Map aliases = (Map)method.invoke(null, schemas);
+ Map aliases = DefaultCodegen.getAllAliases(schemas);
Assert.assertEquals(aliases.size(), 0);
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java
index 94f4aa7c05c..ac37ef22731 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java
@@ -31,20 +31,12 @@ import io.swagger.v3.oas.models.media.ObjectSchema;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.media.StringSchema;
import io.swagger.v3.oas.models.parameters.RequestBody;
+import io.swagger.v3.oas.models.responses.ApiResponse;
import io.swagger.v3.parser.core.models.ParseOptions;
import io.swagger.v3.parser.util.SchemaTypeUtil;
-import org.openapitools.codegen.ClientOptInput;
-import org.openapitools.codegen.CodegenConstants;
-import org.openapitools.codegen.CodegenModel;
-import org.openapitools.codegen.CodegenModelFactory;
-import org.openapitools.codegen.CodegenModelType;
-import org.openapitools.codegen.CodegenOperation;
-import org.openapitools.codegen.CodegenParameter;
-import org.openapitools.codegen.CodegenProperty;
-import org.openapitools.codegen.MockDefaultGenerator;
+import org.openapitools.codegen.*;
import org.openapitools.codegen.MockDefaultGenerator.WrittenTemplateBasedFile;
-import org.openapitools.codegen.TestUtils;
import org.openapitools.codegen.config.CodegenConfigurator;
import org.openapitools.codegen.languages.JavaClientCodegen;
import org.openapitools.codegen.utils.ModelUtils;
@@ -307,6 +299,49 @@ public class JavaClientCodegenTest {
output.deleteOnExit();
}
+ @Test
+ public void testReferencedHeader() {
+ final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/issue855.yaml", null, new ParseOptions()).getOpenAPI();
+ JavaClientCodegen codegen = new JavaClientCodegen();
+
+ ApiResponse ok_200 = openAPI.getComponents().getResponses().get("OK_200");
+ CodegenResponse response = codegen.fromResponse(openAPI, "200", ok_200);
+
+ Assert.assertEquals(1, response.headers.size());
+ CodegenProperty header = response.headers.get(0);
+ Assert.assertEquals("UUID", header.dataType);
+ Assert.assertEquals("Request", header.baseName);
+ }
+
+ @Test
+ public void testFreeFormObjects() {
+ final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/issue796.yaml", null, new ParseOptions()).getOpenAPI();
+ JavaClientCodegen codegen = new JavaClientCodegen();
+
+ Schema test1 = openAPI.getComponents().getSchemas().get("MapTest1");
+ CodegenModel cm1 = codegen.fromModel("MapTest1", test1, openAPI.getComponents().getSchemas());
+ Assert.assertEquals(cm1.getDataType(), "Map");
+ Assert.assertEquals(cm1.getParent(), "HashMap");
+ Assert.assertEquals(cm1.getClassname(), "MapTest1");
+
+ Schema test2 = openAPI.getComponents().getSchemas().get("MapTest2");
+ CodegenModel cm2 = codegen.fromModel("MapTest2", test2, openAPI.getComponents().getSchemas());
+ Assert.assertEquals(cm2.getDataType(), "Map");
+ Assert.assertEquals(cm2.getParent(), "HashMap");
+ Assert.assertEquals(cm2.getClassname(), "MapTest2");
+
+ Schema test3 = openAPI.getComponents().getSchemas().get("MapTest3");
+ CodegenModel cm3 = codegen.fromModel("MapTest3", test3, openAPI.getComponents().getSchemas());
+ Assert.assertEquals(cm3.getDataType(), "Map");
+ Assert.assertEquals(cm3.getParent(), "HashMap");
+ Assert.assertEquals(cm3.getClassname(), "MapTest3");
+
+ Schema other = openAPI.getComponents().getSchemas().get("OtherObj");
+ CodegenModel cm = codegen.fromModel("OtherObj", other, openAPI.getComponents().getSchemas());
+ Assert.assertEquals(cm.getDataType(), "Object");
+ Assert.assertEquals(cm.getClassname(), "OtherObj");
+ }
+
private void ensureContainsFile(Map generatedFiles, File root, String filename) {
File file = new File(root, filename);
String absoluteFilename = file.getAbsolutePath().replace("\\", "/");
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java
index 6f7bb58ff43..a0c5a326ead 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java
@@ -23,6 +23,7 @@ import org.openapitools.codegen.languages.RubyClientCodegen;
import io.swagger.parser.OpenAPIParser;
import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.parser.core.models.ParseOptions;
import org.apache.commons.io.FileUtils;
@@ -169,4 +170,61 @@ public class RubyClientCodegenTest {
Assert.assertEquals(bp.example, "OnlinePetstore::Pet.new");
}
+
+ @Test(description = "test nullable for properties")
+ public void nullableTest() {
+ final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/petstore_oas3_test.yaml", null, new ParseOptions()).getOpenAPI();
+ final RubyClientCodegen codegen = new RubyClientCodegen();
+ codegen.setModuleName("OnlinePetstore");
+ final String path = "/pet";
+
+ final Schema schema = openAPI.getComponents().getSchemas().get("NullablePet");
+ CodegenModel nullablePet = codegen.fromModel("NullablePet", schema, openAPI.getComponents().getSchemas());
+ CodegenProperty cp0 = nullablePet.getVars().get(0);
+ Assert.assertTrue(cp0.isNullable);
+
+ CodegenProperty cp1 = nullablePet.getVars().get(1);
+ Assert.assertFalse(cp1.isNullable);
+
+ CodegenProperty cp2 = nullablePet.getVars().get(2);
+ Assert.assertTrue(cp2.isNullable);
+
+ CodegenProperty cp3 = nullablePet.getVars().get(3);
+ Assert.assertTrue(cp3.isNullable);
+
+ CodegenProperty cp4 = nullablePet.getVars().get(4);
+ Assert.assertFalse(cp4.isNullable);
+
+ CodegenProperty cp5 = nullablePet.getVars().get(5);
+ Assert.assertTrue(cp5.isNullable);
+ }
+
+ @Test(description = "test properties without nullable")
+ public void propertiesWithoutNullableTest() {
+ final OpenAPI openAPI = new OpenAPIParser().readLocation("src/test/resources/3_0/petstore_oas3_test.yaml", null, new ParseOptions()).getOpenAPI();
+ final RubyClientCodegen codegen = new RubyClientCodegen();
+ codegen.setModuleName("OnlinePetstore");
+ final String path = "/pet";
+
+ final Schema schema = openAPI.getComponents().getSchemas().get("Pet");
+ CodegenModel nullablePet = codegen.fromModel("Pet", schema, openAPI.getComponents().getSchemas());
+ CodegenProperty cp0 = nullablePet.getVars().get(0);
+ Assert.assertFalse(cp0.isNullable);
+
+ CodegenProperty cp1 = nullablePet.getVars().get(1);
+ Assert.assertFalse(cp1.isNullable);
+
+ CodegenProperty cp2 = nullablePet.getVars().get(2);
+ Assert.assertFalse(cp2.isNullable);
+
+ CodegenProperty cp3 = nullablePet.getVars().get(3);
+ Assert.assertFalse(cp3.isNullable);
+
+ CodegenProperty cp4 = nullablePet.getVars().get(4);
+ Assert.assertFalse(cp4.isNullable);
+
+ CodegenProperty cp5 = nullablePet.getVars().get(5);
+ Assert.assertFalse(cp5.isNullable);
+ }
+
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java
index a34f056497f..68f1b2a2bde 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/testutils/AssertFile.java
@@ -28,6 +28,7 @@ import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
import difflib.Delta;
import difflib.DiffUtils;
@@ -71,7 +72,7 @@ public class AssertFile {
Path actualDir = absoluteActual.resolve(relativeExpectedDir);
if (!Files.exists(actualDir)) {
- fail(String.format("Directory '%s' is missing.", actualDir));
+ fail(String.format(Locale.ROOT,"Directory '%s' is missing.", actualDir));
}
String[] expected = expectedDir.toFile().list();
@@ -86,7 +87,7 @@ public class AssertFile {
assertEquals(expected,
actual,
- String.format("Directory content of '%s' and '%s' differ.", expectedDir, actualDir));
+ String.format(Locale.ROOT, "Directory content of '%s' and '%s' differ.", expectedDir, actualDir));
return FileVisitResult.CONTINUE;
}
@@ -97,7 +98,7 @@ public class AssertFile {
Path actualFile = absoluteActual.resolve(relativeExpectedFile);
if (!Files.exists(actualFile)) {
- fail(String.format("File '%s' is missing.", actualFile));
+ fail(String.format(Locale.ROOT, "File '%s' is missing.", actualFile));
}
assertFilesAreEqual(expectedFile, actualFile);
diff --git a/modules/openapi-generator/src/test/resources/3_0/issue796.yaml b/modules/openapi-generator/src/test/resources/3_0/issue796.yaml
new file mode 100644
index 00000000000..4b3103ec08a
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/issue796.yaml
@@ -0,0 +1,37 @@
+openapi: 3.0.1
+info:
+ title: Issue 796
+ license:
+ name: Apache-2.0
+ url: http://www.apache.org/licenses/LICENSE-2.0.html
+ version: 1.0.0
+servers:
+- url: http://localhost:123/api
+paths:
+ /test:
+ get:
+ tags:
+ - test
+ responses:
+ 201:
+ description: Successful response
+components:
+ schemas:
+ MapTest1:
+ type: object
+ description: This type example 1
+ additionalProperties: {}
+ MapTest2:
+ type: object
+ description: This type example 2
+ additionalProperties: true
+ MapTest3:
+ type: object
+ description: This type example 3
+ additionalProperties:
+ type: object
+ OtherObj:
+ type: object
+ description: This type example 4
+ additionalProperties: false
+
diff --git a/modules/openapi-generator/src/test/resources/3_0/issue855.yaml b/modules/openapi-generator/src/test/resources/3_0/issue855.yaml
new file mode 100644
index 00000000000..7ef2d00348f
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/issue855.yaml
@@ -0,0 +1,29 @@
+openapi: 3.0.1
+info:
+ title: Issue 855 example
+ version: 1.0.0
+components:
+ headers:
+ Request:
+ description: ID of the request, unique to the call, as determined by the initiating party.
+ required: true
+ example: "99391c7e-ad88-49ec-a2ad-99ddcb1f7721"
+ schema:
+ type: string
+ format: uuid
+
+ responses:
+ OK_200:
+ description: OK
+ headers:
+ Request:
+ $ref: "#/components/headers/Request"
+
+paths:
+ /ping:
+ get:
+ summary: Get Payment Information
+ description: Returns the content of a payment object
+ responses:
+ '200':
+ $ref: "#/components/responses/OK_200"
\ No newline at end of file
diff --git a/modules/openapi-generator/src/test/resources/3_0/petstore_oas3_test.yaml b/modules/openapi-generator/src/test/resources/3_0/petstore_oas3_test.yaml
new file mode 100644
index 00000000000..c9c83e09a6b
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/petstore_oas3_test.yaml
@@ -0,0 +1,741 @@
+openapi: 3.0.0
+servers:
+ - url: 'http://petstore.swagger.io/v2'
+info:
+ description: >-
+ A test spec based on the Petstore spec with OAS3 related test cases such as nullable
+ version: 1.0.0
+ title: OpenAPI Petstore
+ license:
+ name: Apache-2.0
+ url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+tags:
+ - name: pet
+ description: Everything about your Pets
+ - name: store
+ description: Access to Petstore orders
+ - name: user
+ description: Operations about user
+paths:
+ /pet:
+ post:
+ tags:
+ - pet
+ summary: Add a new pet to the store
+ description: ''
+ operationId: addPet
+ responses:
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ $ref: '#/components/requestBodies/Pet'
+ put:
+ tags:
+ - pet
+ summary: Update an existing pet
+ description: ''
+ operationId: updatePet
+ responses:
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ '405':
+ description: Validation exception
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ $ref: '#/components/requestBodies/Pet'
+ /pet/findByStatus:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by status
+ description: Multiple status values can be provided with comma separated strings
+ operationId: findPetsByStatus
+ parameters:
+ - name: status
+ in: query
+ description: Status values that need to be considered for filter
+ required: true
+ style: form
+ explode: false
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - available
+ - pending
+ - sold
+ default: available
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ '400':
+ description: Invalid status value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ /pet/findByTags:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by tags
+ description: >-
+ Multiple tags can be provided with comma separated strings. Use tag1,
+ tag2, tag3 for testing.
+ operationId: findPetsByTags
+ parameters:
+ - name: tags
+ in: query
+ description: Tags to filter by
+ required: true
+ style: form
+ explode: false
+ schema:
+ type: array
+ items:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ '400':
+ description: Invalid tag value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ deprecated: true
+ '/pet/{petId}':
+ get:
+ tags:
+ - pet
+ summary: Find pet by ID
+ description: Returns a single pet
+ operationId: getPetById
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to return
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ security:
+ - api_key: []
+ post:
+ tags:
+ - pet
+ summary: Updates a pet in the store with form data
+ description: ''
+ operationId: updatePetWithForm
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet that needs to be updated
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ type: object
+ properties:
+ name:
+ description: Updated name of the pet
+ type: string
+ status:
+ description: Updated status of the pet
+ type: string
+ delete:
+ tags:
+ - pet
+ summary: Deletes a pet
+ description: ''
+ operationId: deletePet
+ parameters:
+ - name: api_key
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: petId
+ in: path
+ description: Pet id to delete
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '400':
+ description: Invalid pet value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ '/pet/{petId}/uploadImage':
+ post:
+ tags:
+ - pet
+ summary: uploads an image
+ description: ''
+ operationId: uploadFile
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to update
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ additionalMetadata:
+ description: Additional data to pass to server
+ type: string
+ file:
+ description: file to upload
+ type: string
+ format: binary
+ /store/inventory:
+ get:
+ tags:
+ - store
+ summary: Returns pet inventories by status
+ description: Returns a map of status codes to quantities
+ operationId: getInventory
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: object
+ additionalProperties:
+ type: integer
+ format: int32
+ security:
+ - api_key: []
+ /store/order:
+ post:
+ tags:
+ - store
+ summary: Place an order for a pet
+ description: ''
+ operationId: placeOrder
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ '400':
+ description: Invalid Order
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ description: order placed for purchasing the pet
+ required: true
+ '/store/order/{orderId}':
+ get:
+ tags:
+ - store
+ summary: Find purchase order by ID
+ description: >-
+ For valid response try integer IDs with value <= 5 or > 10. Other values
+ will generated exceptions
+ operationId: getOrderById
+ parameters:
+ - name: orderId
+ in: path
+ description: ID of pet that needs to be fetched
+ required: true
+ schema:
+ type: integer
+ format: int64
+ minimum: 1
+ maximum: 5
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ delete:
+ tags:
+ - store
+ summary: Delete purchase order by ID
+ description: >-
+ For valid response try integer IDs with value < 1000. Anything above
+ 1000 or nonintegers will generate API errors
+ operationId: deleteOrder
+ parameters:
+ - name: orderId
+ in: path
+ description: ID of the order that needs to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ /user:
+ post:
+ tags:
+ - user
+ summary: Create user
+ description: This can only be done by the logged in user.
+ operationId: createUser
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Created user object
+ required: true
+ /user/createWithArray:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithArrayInput
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ $ref: '#/components/requestBodies/UserArray'
+ /user/createWithList:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithListInput
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ $ref: '#/components/requestBodies/UserArray'
+ /user/login:
+ get:
+ tags:
+ - user
+ summary: Logs user into the system
+ description: ''
+ operationId: loginUser
+ parameters:
+ - name: username
+ in: query
+ description: The user name for login
+ required: true
+ schema:
+ type: string
+ - name: password
+ in: query
+ description: The password for login in clear text
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ headers:
+ X-Rate-Limit:
+ description: calls per hour allowed by the user
+ schema:
+ type: integer
+ format: int32
+ X-Expires-After:
+ description: date in UTC when toekn expires
+ schema:
+ type: string
+ format: date-time
+ content:
+ application/xml:
+ schema:
+ type: string
+ application/json:
+ schema:
+ type: string
+ '400':
+ description: Invalid username/password supplied
+ /user/logout:
+ get:
+ tags:
+ - user
+ summary: Logs out current logged in user session
+ description: ''
+ operationId: logoutUser
+ responses:
+ default:
+ description: successful operation
+ '/user/{username}':
+ get:
+ tags:
+ - user
+ summary: Get user by user name
+ description: ''
+ operationId: getUserByName
+ parameters:
+ - name: username
+ in: path
+ description: The name that needs to be fetched. Use user1 for testing.
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/User'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ put:
+ tags:
+ - user
+ summary: Updated user
+ description: This can only be done by the logged in user.
+ operationId: updateUser
+ parameters:
+ - name: username
+ in: path
+ description: name that need to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid user supplied
+ '404':
+ description: User not found
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Updated user object
+ required: true
+ delete:
+ tags:
+ - user
+ summary: Delete user
+ description: This can only be done by the logged in user.
+ operationId: deleteUser
+ parameters:
+ - name: username
+ in: path
+ description: The name that needs to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+externalDocs:
+ description: Find out more about Swagger
+ url: 'http://swagger.io'
+components:
+ requestBodies:
+ UserArray:
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/User'
+ description: List of user object
+ required: true
+ Pet:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ description: Pet object that needs to be added to the store
+ required: true
+ securitySchemes:
+ petstore_auth:
+ type: oauth2
+ flows:
+ implicit:
+ authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
+ scopes:
+ 'write:pets': modify pets in your account
+ 'read:pets': read your pets
+ api_key:
+ type: apiKey
+ name: api_key
+ in: header
+ schemas:
+ Order:
+ title: Pet Order
+ description: An order for a pets from the pet store
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ petId:
+ type: integer
+ format: int64
+ quantity:
+ type: integer
+ format: int32
+ shipDate:
+ type: string
+ format: date-time
+ status:
+ type: string
+ description: Order Status
+ enum:
+ - placed
+ - approved
+ - delivered
+ complete:
+ type: boolean
+ default: false
+ xml:
+ name: Order
+ Category:
+ title: Pet category
+ description: A category for a pet
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ xml:
+ name: Category
+ User:
+ title: a User
+ description: A User who is purchasing from the pet store
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ username:
+ type: string
+ firstName:
+ type: string
+ lastName:
+ type: string
+ email:
+ type: string
+ password:
+ type: string
+ phone:
+ type: string
+ userStatus:
+ type: integer
+ format: int32
+ description: User Status
+ xml:
+ name: User
+ Tag:
+ title: Pet Tag
+ description: A tag for a pet
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ xml:
+ name: Tag
+ Pet:
+ title: a Pet
+ description: A pet for sale in the pet store
+ type: object
+ required:
+ - name
+ - photoUrls
+ properties:
+ id:
+ type: integer
+ format: int64
+ category:
+ $ref: '#/components/schemas/Category'
+ name:
+ type: string
+ example: doggie
+ photoUrls:
+ type: array
+ xml:
+ name: photoUrl
+ wrapped: true
+ items:
+ type: string
+ tags:
+ type: array
+ xml:
+ name: tag
+ wrapped: true
+ items:
+ $ref: '#/components/schemas/Tag'
+ status:
+ type: string
+ description: pet status in the store
+ enum:
+ - available
+ - pending
+ - sold
+ xml:
+ name: Pet
+ NullablePet:
+ title: a Pet
+ description: A pet for sale in the pet store
+ type: object
+ required:
+ - name
+ - photoUrls
+ properties:
+ id:
+ nullable: true
+ type: integer
+ format: int64
+ category:
+ $ref: '#/components/schemas/Category'
+ name:
+ nullable: true
+ type: string
+ example: doggie
+ photoUrls:
+ nullable: true
+ type: array
+ xml:
+ name: photoUrl
+ wrapped: true
+ items:
+ type: string
+ tags:
+ type: array
+ xml:
+ name: tag
+ wrapped: true
+ items:
+ $ref: '#/components/schemas/Tag'
+ status:
+ nullable: true
+ type: string
+ description: pet status in the store
+ enum:
+ - available
+ - pending
+ - sold
+ xml:
+ name: Pet
+ ApiResponse:
+ title: An uploaded response
+ description: Describes the result of uploading an image resource
+ type: object
+ properties:
+ code:
+ type: integer
+ format: int32
+ type:
+ type: string
+ message:
+ type: string
diff --git a/pom.xml b/pom.xml
index 7458544e86d..7dbe747ac63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -277,6 +277,33 @@
+
+ de.thetaphi
+ forbiddenapis
+ 2.5
+
+
+
+ jdk-unsafe
+ jdk-deprecated
+ jdk-internal
+
+ jdk-non-portable
+ jdk-reflection
+
+
+
+
+
+ check
+ testCheck
+
+
+
+
@@ -1104,6 +1131,8 @@
+ 1.8
+ 1.8
2.0.2-OpenAPITools.org-1
2.0.1
2.11.1
diff --git a/samples/client/petstore-security-test/php/.gitignore b/samples/client/petstore-security-test/php/.gitignore
new file mode 100644
index 00000000000..edcf63f6aee
--- /dev/null
+++ b/samples/client/petstore-security-test/php/.gitignore
@@ -0,0 +1,8 @@
+# ref: https://github.com/github/gitignore/blob/master/Composer.gitignore
+
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
\ No newline at end of file
diff --git a/samples/client/petstore-security-test/typescript-fetch/.openapi-generator/VERSION b/samples/client/petstore-security-test/typescript-fetch/.openapi-generator/VERSION
index 855ff9501eb..0f58aa04141 100644
--- a/samples/client/petstore-security-test/typescript-fetch/.openapi-generator/VERSION
+++ b/samples/client/petstore-security-test/typescript-fetch/.openapi-generator/VERSION
@@ -1 +1 @@
-2.4.0-SNAPSHOT
\ No newline at end of file
+3.1.2-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore-security-test/typescript-fetch/api.ts b/samples/client/petstore-security-test/typescript-fetch/api.ts
index d69e2ae751d..f5b4defe68b 100644
--- a/samples/client/petstore-security-test/typescript-fetch/api.ts
+++ b/samples/client/petstore-security-test/typescript-fetch/api.ts
@@ -1,14 +1,14 @@
///
// tslint:disable
/**
- * Swagger Petstore *_/ ' \" =end -- \\r\\n \\n \\r
+ * OpenAPI Petstore *_/ ' \" =end -- \\r\\n \\n \\r
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end --
*
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
- * Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
+ * Contact: something@something.abc *_/ ' \" =end -- \\r\\n \\n \\r
*
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
* Do not edit the class manually.
*/
@@ -17,7 +17,7 @@ import * as url from "url";
import * as portableFetch from "portable-fetch";
import { Configuration } from "./configuration";
-const BASE_PATH = "https://petstore.swagger.io *_/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r".replace(/\/+$/, "");
+const BASE_PATH = "http://petstore.swagger.io *_/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r".replace(/\/+$/, "");
/**
*
@@ -55,7 +55,7 @@ export interface FetchArgs {
* @class BaseAPI
*/
export class BaseAPI {
- protected configuration: Configuration;
+ protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected fetch: FetchAPI = portableFetch) {
if (configuration) {
@@ -72,7 +72,7 @@ export class BaseAPI {
* @extends {Error}
*/
export class RequiredError extends Error {
- name: "RequiredError"
+ name: "RequiredError" = "RequiredError";
constructor(public field: string, msg?: string) {
super(msg);
}
@@ -81,13 +81,13 @@ export class RequiredError extends Error {
/**
* Model for testing reserved words *_/ ' \" =end -- \\r\\n \\n \\r
* @export
- * @interface ModelReturn
+ * @interface Return
*/
-export interface ModelReturn {
+export interface Return {
/**
* property description *_/ ' \" =end -- \\r\\n \\n \\r
* @type {number}
- * @memberof ModelReturn
+ * @memberof Return
*/
_return?: number;
}
@@ -102,29 +102,29 @@ export const FakeApiFetchParamCreator = function (configuration?: Configuration)
/**
*
* @summary To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
- * @param {string} [testCodeInjectEndRnNR] To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
+ * @param {UNKNOWN_BASE_TYPE} [UNKNOWN_BASE_TYPE]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- testCodeInjectEndRnNR(testCodeInjectEndRnNR?: string, options: any = {}): FetchArgs {
+ testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE?: UNKNOWN_BASE_TYPE, options: any = {}): FetchArgs {
const localVarPath = `/fake`;
const localVarUrlObj = url.parse(localVarPath, true);
- const localVarRequestOptions = Object.assign({ method: 'PUT' }, options);
+ let baseOptions;
+ if (configuration) {
+ baseOptions = configuration.baseOptions;
+ }
+ const localVarRequestOptions = Object.assign({ method: 'PUT' }, baseOptions, options);
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
- const localVarFormParams = new url.URLSearchParams();
- if (testCodeInjectEndRnNR !== undefined) {
- localVarFormParams.set('test code inject */ ' " =end -- \r\n \n \r', testCodeInjectEndRnNR as any);
- }
-
- localVarHeaderParameter['Content-Type'] = 'application/x-www-form-urlencoded';
+ localVarHeaderParameter['Content-Type'] = 'application/json';
localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query);
// fix override query string Detail: https://stackoverflow.com/a/7517673/1077943
delete localVarUrlObj.search;
localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers);
- localVarRequestOptions.body = localVarFormParams.toString();
+ const needsSerialization = ("UNKNOWN_BASE_TYPE" !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
+ localVarRequestOptions.body = needsSerialization ? JSON.stringify(UNKNOWN_BASE_TYPE || {}) : (UNKNOWN_BASE_TYPE || "");
return {
url: url.format(localVarUrlObj),
@@ -143,12 +143,12 @@ export const FakeApiFp = function(configuration?: Configuration) {
/**
*
* @summary To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
- * @param {string} [testCodeInjectEndRnNR] To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
+ * @param {UNKNOWN_BASE_TYPE} [UNKNOWN_BASE_TYPE]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- testCodeInjectEndRnNR(testCodeInjectEndRnNR?: string, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise {
- const localVarFetchArgs = FakeApiFetchParamCreator(configuration).testCodeInjectEndRnNR(testCodeInjectEndRnNR, options);
+ testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE?: UNKNOWN_BASE_TYPE, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise {
+ const localVarFetchArgs = FakeApiFetchParamCreator(configuration).testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE, options);
return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => {
return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {
if (response.status >= 200 && response.status < 300) {
@@ -171,12 +171,12 @@ export const FakeApiFactory = function (configuration?: Configuration, fetch?: F
/**
*
* @summary To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
- * @param {string} [testCodeInjectEndRnNR] To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
+ * @param {UNKNOWN_BASE_TYPE} [UNKNOWN_BASE_TYPE]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- testCodeInjectEndRnNR(testCodeInjectEndRnNR?: string, options?: any) {
- return FakeApiFp(configuration).testCodeInjectEndRnNR(testCodeInjectEndRnNR, options)(fetch, basePath);
+ testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE?: UNKNOWN_BASE_TYPE, options?: any) {
+ return FakeApiFp(configuration).testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE, options)(fetch, basePath);
},
};
};
@@ -191,13 +191,13 @@ export class FakeApi extends BaseAPI {
/**
*
* @summary To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
- * @param {string} [testCodeInjectEndRnNR] To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
+ * @param {UNKNOWN_BASE_TYPE} [UNKNOWN_BASE_TYPE]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof FakeApi
*/
- public testCodeInjectEndRnNR(testCodeInjectEndRnNR?: string, options?: any) {
- return FakeApiFp(this.configuration).testCodeInjectEndRnNR(testCodeInjectEndRnNR, options)(this.fetch, this.basePath);
+ public testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE?: UNKNOWN_BASE_TYPE, options?: any) {
+ return FakeApiFp(this.configuration).testCodeInjectEndRnNR(UNKNOWN_BASE_TYPE, options)(this.fetch, this.basePath);
}
}
diff --git a/samples/client/petstore-security-test/typescript-fetch/configuration.ts b/samples/client/petstore-security-test/typescript-fetch/configuration.ts
index 06288872871..73d80a44392 100644
--- a/samples/client/petstore-security-test/typescript-fetch/configuration.ts
+++ b/samples/client/petstore-security-test/typescript-fetch/configuration.ts
@@ -1,13 +1,13 @@
// tslint:disable
/**
- * Swagger Petstore *_/ ' \" =end -- \\r\\n \\n \\r
+ * OpenAPI Petstore *_/ ' \" =end -- \\r\\n \\n \\r
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end --
*
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
- * Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
+ * Contact: something@something.abc *_/ ' \" =end -- \\r\\n \\n \\r
*
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
* Do not edit the class manually.
*/
@@ -18,6 +18,7 @@ export interface ConfigurationParameters {
password?: string;
accessToken?: string | ((name: string, scopes?: string[]) => string);
basePath?: string;
+ baseOptions?: any;
}
export class Configuration {
@@ -55,6 +56,13 @@ export class Configuration {
* @memberof Configuration
*/
basePath?: string;
+ /**
+ * base options for fetch calls
+ *
+ * @type {any}
+ * @memberof Configuration
+ */
+ baseOptions?: any;
constructor(param: ConfigurationParameters = {}) {
this.apiKey = param.apiKey;
diff --git a/samples/client/petstore-security-test/typescript-fetch/git_push.sh b/samples/client/petstore-security-test/typescript-fetch/git_push.sh
index a1ff4c9bcba..188eeaea7bc 100644
--- a/samples/client/petstore-security-test/typescript-fetch/git_push.sh
+++ b/samples/client/petstore-security-test/typescript-fetch/git_push.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
-# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update"
git_user_id=$1
git_repo_id=$2
diff --git a/samples/client/petstore-security-test/typescript-fetch/index.ts b/samples/client/petstore-security-test/typescript-fetch/index.ts
index 2670610eb94..06529df41e4 100644
--- a/samples/client/petstore-security-test/typescript-fetch/index.ts
+++ b/samples/client/petstore-security-test/typescript-fetch/index.ts
@@ -1,13 +1,13 @@
// tslint:disable
/**
- * Swagger Petstore *_/ ' \" =end -- \\r\\n \\n \\r
+ * OpenAPI Petstore *_/ ' \" =end -- \\r\\n \\n \\r
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end --
*
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
- * Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
+ * Contact: something@something.abc *_/ ' \" =end -- \\r\\n \\n \\r
*
- * NOTE: This class is auto generated by the swagger code generator program.
- * https://github.com/swagger-api/swagger-codegen.git
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
* Do not edit the class manually.
*/
diff --git a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
index c2f9a7f99f7..8d99e86ca8a 100644
--- a/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
+++ b/samples/client/petstore/cpp-restsdk/api/PetApi.cpp
@@ -45,72 +45,72 @@ pplx::task PetApi::addPet(std::shared_ptr pet)
}
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet");
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet");
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
+ std::unordered_set localVarResponseHttpContentTypes;
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->addPet does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
+ std::unordered_set localVarConsumeHttpContentTypes;
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
- web::json::value json;
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
+ web::json::value localVarJson;
- json = ModelBase::toJson(pet);
+ localVarJson = ModelBase::toJson(pet);
- httpBody = std::shared_ptr( new JsonBody( json ) );
+ localVarHttpBody = std::shared_ptr( new JsonBody( localVarJson ) );
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
- std::shared_ptr multipart(new MultipartFormData);
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ std::shared_ptr localVarMultipart(new MultipartFormData);
if(pet.get())
{
- pet->toMultipart(multipart, utility::conversions::to_string_t("pet"));
+ pet->toMultipart(localVarMultipart, utility::conversions::to_string_t("pet"));
}
- httpBody = multipart;
- requestHttpContentType += utility::conversions::to_string_t("; boundary=") + multipart->getBoundary();
+ localVarHttpBody = localVarMultipart;
+ localVarRequestHttpContentType += utility::conversions::to_string_t("; boundary=") + localVarMultipart->getBoundary();
}
else
{
@@ -120,36 +120,36 @@ pplx::task PetApi::addPet(std::shared_ptr pet)
// authentication (petstore_auth) required
// oauth2 authentication is added automatically as part of the http_client_config
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("POST"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling addPet: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling addPet: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling addPet: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling addPet: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
return void();
});
@@ -158,60 +158,60 @@ pplx::task PetApi::deletePet(int64_t petId, boost::optional apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/{petId}");
- boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/{petId}");
+ boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
+ std::unordered_set localVarResponseHttpContentTypes;
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->deletePet does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
+ std::unordered_set localVarConsumeHttpContentTypes;
if (apiKey)
{
- headerParams[utility::conversions::to_string_t("api_key")] = ApiClient::parameterToString(*apiKey);
+ localVarHeaderParams[utility::conversions::to_string_t("api_key")] = ApiClient::parameterToString(*apiKey);
}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -221,36 +221,36 @@ pplx::task PetApi::deletePet(int64_t petId, boost::optionalcallApi(path, utility::conversions::to_string_t("DELETE"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("DELETE"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling deletePet: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling deletePet: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling deletePet: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling deletePet: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
return void();
});
@@ -259,60 +259,60 @@ pplx::task>> PetApi::findPetsByStatus(std::vect
{
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/findByStatus");
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/findByStatus");
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ std::unordered_set localVarResponseHttpContentTypes;
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->findPetsByStatus does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
+ std::unordered_set localVarConsumeHttpContentTypes;
{
- queryParams[utility::conversions::to_string_t("status")] = ApiClient::parameterToString(status);
+ localVarQueryParams[utility::conversions::to_string_t("status")] = ApiClient::parameterToString(status);
}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -322,53 +322,53 @@ pplx::task>> PetApi::findPetsByStatus(std::vect
// authentication (petstore_auth) required
// oauth2 authentication is added automatically as part of the http_client_config
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("GET"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling findPetsByStatus: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling findPetsByStatus: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling findPetsByStatus: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling findPetsByStatus: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
- std::vector> result;
+ std::vector> localVarResult;
- if(responseHttpContentType == utility::conversions::to_string_t("application/json"))
+ if(localVarResponseHttpContentType == utility::conversions::to_string_t("application/json"))
{
- web::json::value json = web::json::value::parse(response);
+ web::json::value localVarJson = web::json::value::parse(localVarResponse);
- for( auto& item : json.as_array() )
+ for( auto& localVarItem : localVarJson.as_array() )
{
- std::shared_ptr itemObj(new Pet());
- itemObj->fromJson(item);
- result.push_back(itemObj);
+ std::shared_ptr localVarItemObj(new Pet());
+ localVarItemObj->fromJson(localVarItem);
+ localVarResult.push_back(localVarItemObj);
}
}
- // else if(responseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
+ // else if(localVarResponseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
// {
// TODO multipart response parsing
// }
@@ -378,67 +378,67 @@ pplx::task>> PetApi::findPetsByStatus(std::vect
, utility::conversions::to_string_t("error calling findPetsByStatus: unsupported response type"));
}
- return result;
+ return localVarResult;
});
}
pplx::task>> PetApi::findPetsByTags(std::vector tags)
{
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/findByTags");
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/findByTags");
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ std::unordered_set localVarResponseHttpContentTypes;
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->findPetsByTags does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
+ std::unordered_set localVarConsumeHttpContentTypes;
{
- queryParams[utility::conversions::to_string_t("tags")] = ApiClient::parameterToString(tags);
+ localVarQueryParams[utility::conversions::to_string_t("tags")] = ApiClient::parameterToString(tags);
}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -448,53 +448,53 @@ pplx::task>> PetApi::findPetsByTags(std::vector
// authentication (petstore_auth) required
// oauth2 authentication is added automatically as part of the http_client_config
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("GET"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling findPetsByTags: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling findPetsByTags: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling findPetsByTags: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling findPetsByTags: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
- std::vector> result;
+ std::vector> localVarResult;
- if(responseHttpContentType == utility::conversions::to_string_t("application/json"))
+ if(localVarResponseHttpContentType == utility::conversions::to_string_t("application/json"))
{
- web::json::value json = web::json::value::parse(response);
+ web::json::value localVarJson = web::json::value::parse(localVarResponse);
- for( auto& item : json.as_array() )
+ for( auto& localVarItem : localVarJson.as_array() )
{
- std::shared_ptr itemObj(new Pet());
- itemObj->fromJson(item);
- result.push_back(itemObj);
+ std::shared_ptr localVarItemObj(new Pet());
+ localVarItemObj->fromJson(localVarItem);
+ localVarResult.push_back(localVarItemObj);
}
}
- // else if(responseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
+ // else if(localVarResponseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
// {
// TODO multipart response parsing
// }
@@ -504,65 +504,65 @@ pplx::task>> PetApi::findPetsByTags(std::vector
, utility::conversions::to_string_t("error calling findPetsByTags: unsupported response type"));
}
- return result;
+ return localVarResult;
});
}
pplx::task> PetApi::getPetById(int64_t petId)
{
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/{petId}");
- boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/{petId}");
+ boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ std::unordered_set localVarResponseHttpContentTypes;
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->getPetById does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
+ std::unordered_set localVarConsumeHttpContentTypes;
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -571,53 +571,53 @@ pplx::task> PetApi::getPetById(int64_t petId)
// authentication (api_key) required
{
- utility::string_t apiKey = apiConfiguration->getApiKey(utility::conversions::to_string_t("api_key"));
- if ( apiKey.size() > 0 )
+ utility::string_t localVarApiKey = localVarApiConfiguration->getApiKey(utility::conversions::to_string_t("api_key"));
+ if ( localVarApiKey.size() > 0 )
{
- headerParams[utility::conversions::to_string_t("api_key")] = apiKey;
+ localVarHeaderParams[utility::conversions::to_string_t("api_key")] = localVarApiKey;
}
}
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("GET"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("GET"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling getPetById: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling getPetById: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling getPetById: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling getPetById: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
- std::shared_ptr result(new Pet());
+ std::shared_ptr localVarResult(new Pet());
- if(responseHttpContentType == utility::conversions::to_string_t("application/json"))
+ if(localVarResponseHttpContentType == utility::conversions::to_string_t("application/json"))
{
- web::json::value json = web::json::value::parse(response);
+ web::json::value localVarJson = web::json::value::parse(localVarResponse);
- result->fromJson(json);
+ localVarResult->fromJson(localVarJson);
}
- // else if(responseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
+ // else if(localVarResponseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
// {
// TODO multipart response parsing
// }
@@ -627,7 +627,7 @@ pplx::task> PetApi::getPetById(int64_t petId)
, utility::conversions::to_string_t("error calling getPetById: unsupported response type"));
}
- return result;
+ return localVarResult;
});
}
pplx::task PetApi::updatePet(std::shared_ptr pet)
@@ -640,72 +640,72 @@ pplx::task PetApi::updatePet(std::shared_ptr pet)
}
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet");
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet");
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
+ std::unordered_set localVarResponseHttpContentTypes;
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->updatePet does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
+ std::unordered_set localVarConsumeHttpContentTypes;
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("application/xml") );
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
- web::json::value json;
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
+ web::json::value localVarJson;
- json = ModelBase::toJson(pet);
+ localVarJson = ModelBase::toJson(pet);
- httpBody = std::shared_ptr( new JsonBody( json ) );
+ localVarHttpBody = std::shared_ptr( new JsonBody( localVarJson ) );
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
- std::shared_ptr multipart(new MultipartFormData);
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ std::shared_ptr localVarMultipart(new MultipartFormData);
if(pet.get())
{
- pet->toMultipart(multipart, utility::conversions::to_string_t("pet"));
+ pet->toMultipart(localVarMultipart, utility::conversions::to_string_t("pet"));
}
- httpBody = multipart;
- requestHttpContentType += utility::conversions::to_string_t("; boundary=") + multipart->getBoundary();
+ localVarHttpBody = localVarMultipart;
+ localVarRequestHttpContentType += utility::conversions::to_string_t("; boundary=") + localVarMultipart->getBoundary();
}
else
{
@@ -715,36 +715,36 @@ pplx::task PetApi::updatePet(std::shared_ptr pet)
// authentication (petstore_auth) required
// oauth2 authentication is added automatically as part of the http_client_config
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("PUT"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("PUT"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling updatePet: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling updatePet: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling updatePet: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling updatePet: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
return void();
});
@@ -753,65 +753,65 @@ pplx::task PetApi::updatePetWithForm(int64_t petId, boost::optional apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/{petId}");
- boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/{petId}");
+ boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
+ std::unordered_set localVarResponseHttpContentTypes;
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->updatePetWithForm does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("application/x-www-form-urlencoded") );
+ std::unordered_set localVarConsumeHttpContentTypes;
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("application/x-www-form-urlencoded") );
if (name)
{
- formParams[ utility::conversions::to_string_t("name") ] = ApiClient::parameterToString(*name);
+ localVarFormParams[ utility::conversions::to_string_t("name") ] = ApiClient::parameterToString(*name);
}
if (status)
{
- formParams[ utility::conversions::to_string_t("status") ] = ApiClient::parameterToString(*status);
+ localVarFormParams[ utility::conversions::to_string_t("status") ] = ApiClient::parameterToString(*status);
}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -821,36 +821,36 @@ pplx::task PetApi::updatePetWithForm(int64_t petId, boost::optionalcallApi(path, utility::conversions::to_string_t("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("POST"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling updatePetWithForm: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling updatePetWithForm: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling updatePetWithForm: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling updatePetWithForm: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
return void();
});
@@ -859,66 +859,66 @@ pplx::task> PetApi::uploadFile(int64_t petId, boost
{
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/pet/{petId}/uploadImage");
- boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/pet/{petId}/uploadImage");
+ boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("petId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(petId));
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map localVarQueryParams;
+ std::map localVarHeaderParams( localVarApiConfiguration->getDefaultHeaders() );
+ std::map localVarFormParams;
+ std::map> localVarFileParams;
- std::unordered_set responseHttpContentTypes;
- responseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
+ std::unordered_set localVarResponseHttpContentTypes;
+ localVarResponseHttpContentTypes.insert( utility::conversions::to_string_t("application/json") );
- utility::string_t responseHttpContentType;
+ utility::string_t localVarResponseHttpContentType;
// use JSON if possible
- if ( responseHttpContentTypes.size() == 0 )
+ if ( localVarResponseHttpContentTypes.size() == 0 )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// JSON
- else if ( responseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != responseHttpContentTypes.end() )
+ else if ( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( responseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != responseHttpContentTypes.end() )
+ else if( localVarResponseHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarResponseHttpContentTypes.end() )
{
- responseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarResponseHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
throw ApiException(400, utility::conversions::to_string_t("PetApi->uploadFile does not produce any supported media type"));
}
- headerParams[utility::conversions::to_string_t("Accept")] = responseHttpContentType;
+ localVarHeaderParams[utility::conversions::to_string_t("Accept")] = localVarResponseHttpContentType;
- std::unordered_set consumeHttpContentTypes;
- consumeHttpContentTypes.insert( utility::conversions::to_string_t("multipart/form-data") );
+ std::unordered_set localVarConsumeHttpContentTypes;
+ localVarConsumeHttpContentTypes.insert( utility::conversions::to_string_t("multipart/form-data") );
if (additionalMetadata)
{
- formParams[ utility::conversions::to_string_t("additionalMetadata") ] = ApiClient::parameterToString(*additionalMetadata);
+ localVarFormParams[ utility::conversions::to_string_t("additionalMetadata") ] = ApiClient::parameterToString(*additionalMetadata);
}
if (file && *file != nullptr)
{
- fileParams[ utility::conversions::to_string_t("file") ] = *file;
+ localVarFileParams[ utility::conversions::to_string_t("file") ] = *file;
}
- std::shared_ptr httpBody;
- utility::string_t requestHttpContentType;
+ std::shared_ptr localVarHttpBody;
+ utility::string_t localVarRequestHttpContentType;
// use JSON if possible
- if ( consumeHttpContentTypes.size() == 0 || consumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != consumeHttpContentTypes.end() )
+ if ( localVarConsumeHttpContentTypes.size() == 0 || localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("application/json")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("application/json");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("application/json");
}
// multipart formdata
- else if( consumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != consumeHttpContentTypes.end() )
+ else if( localVarConsumeHttpContentTypes.find(utility::conversions::to_string_t("multipart/form-data")) != localVarConsumeHttpContentTypes.end() )
{
- requestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
+ localVarRequestHttpContentType = utility::conversions::to_string_t("multipart/form-data");
}
else
{
@@ -928,46 +928,46 @@ pplx::task> PetApi::uploadFile(int64_t petId, boost
// authentication (petstore_auth) required
// oauth2 authentication is added automatically as part of the http_client_config
- return m_ApiClient->callApi(path, utility::conversions::to_string_t("POST"), queryParams, httpBody, headerParams, formParams, fileParams, requestHttpContentType)
- .then([=](web::http::http_response response)
+ return m_ApiClient->callApi(localVarPath, utility::conversions::to_string_t("POST"), localVarQueryParams, localVarHttpBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarRequestHttpContentType)
+ .then([=](web::http::http_response localVarResponse)
{
// 1xx - informational : OK
// 2xx - successful : OK
// 3xx - redirection : OK
// 4xx - client error : not OK
// 5xx - client error : not OK
- if (response.status_code() >= 400)
+ if (localVarResponse.status_code() >= 400)
{
- throw ApiException(response.status_code()
- , utility::conversions::to_string_t("error calling uploadFile: ") + response.reason_phrase()
- , std::make_shared(response.extract_utf8string(true).get()));
+ throw ApiException(localVarResponse.status_code()
+ , utility::conversions::to_string_t("error calling uploadFile: ") + localVarResponse.reason_phrase()
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
// check response content type
- if(response.headers().has(utility::conversions::to_string_t("Content-Type")))
+ if(localVarResponse.headers().has(utility::conversions::to_string_t("Content-Type")))
{
- utility::string_t contentType = response.headers()[utility::conversions::to_string_t("Content-Type")];
- if( contentType.find(responseHttpContentType) == std::string::npos )
+ utility::string_t localVarContentType = localVarResponse.headers()[utility::conversions::to_string_t("Content-Type")];
+ if( localVarContentType.find(localVarResponseHttpContentType) == std::string::npos )
{
throw ApiException(500
- , utility::conversions::to_string_t("error calling uploadFile: unexpected response type: ") + contentType
- , std::make_shared(response.extract_utf8string(true).get()));
+ , utility::conversions::to_string_t("error calling uploadFile: unexpected response type: ") + localVarContentType
+ , std::make_shared(localVarResponse.extract_utf8string(true).get()));
}
}
- return response.extract_string();
+ return localVarResponse.extract_string();
})
- .then([=](utility::string_t response)
+ .then([=](utility::string_t localVarResponse)
{
- std::shared_ptr result(new ApiResponse());
+ std::shared_ptr localVarResult(new ApiResponse());
- if(responseHttpContentType == utility::conversions::to_string_t("application/json"))
+ if(localVarResponseHttpContentType == utility::conversions::to_string_t("application/json"))
{
- web::json::value json = web::json::value::parse(response);
+ web::json::value localVarJson = web::json::value::parse(localVarResponse);
- result->fromJson(json);
+ localVarResult->fromJson(localVarJson);
}
- // else if(responseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
+ // else if(localVarResponseHttpContentType == utility::conversions::to_string_t("multipart/form-data"))
// {
// TODO multipart response parsing
// }
@@ -977,7 +977,7 @@ pplx::task> PetApi::uploadFile(int64_t petId, boost
, utility::conversions::to_string_t("error calling uploadFile: unsupported response type"));
}
- return result;
+ return localVarResult;
});
}
diff --git a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
index ca188d17328..c690f2be511 100644
--- a/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
+++ b/samples/client/petstore/cpp-restsdk/api/StoreApi.cpp
@@ -39,56 +39,56 @@ pplx::task StoreApi::deleteOrder(utility::string_t orderId)
{
- std::shared_ptr apiConfiguration( m_ApiClient->getConfiguration() );
- utility::string_t path = utility::conversions::to_string_t("/store/order/{orderId}");
- boost::replace_all(path, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("orderId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(orderId));
+ std::shared_ptr localVarApiConfiguration( m_ApiClient->getConfiguration() );
+ utility::string_t localVarPath = utility::conversions::to_string_t("/store/order/{orderId}");
+ boost::replace_all(localVarPath, utility::conversions::to_string_t("{") + utility::conversions::to_string_t("orderId") + utility::conversions::to_string_t("}"), ApiClient::parameterToString(orderId));
- std::map queryParams;
- std::map headerParams( apiConfiguration->getDefaultHeaders() );
- std::map formParams;
- std::map> fileParams;
+ std::map