From 146bfeb6d6f758fb25aed53371de0539f51de31a Mon Sep 17 00:00:00 2001
From: tgerth <39165556+tgerth@users.noreply.github.com>
Date: Fri, 12 Jun 2020 11:23:42 +0200
Subject: [PATCH] [JAVA] RxJava3 support (#6622)
* rx3 support
* ran the shell script ./bin/generate-samples.sht
* added missing rx3 migration, removed tabs
---
bin/configs/java-retrofit2rx3.yaml | 9 ++++
docs/generators/java.md | 1 +
.../codegen/languages/JavaClientCodegen.java | 44 ++++++++++++++----
.../libraries/retrofit2/ApiClient.mustache | 7 ++-
.../Java/libraries/retrofit2/api.mustache | 10 +++-
.../libraries/retrofit2/build.gradle.mustache | 7 +++
.../libraries/retrofit2/build.sbt.mustache | 4 ++
.../Java/libraries/retrofit2/pom.mustache | 15 ++++++
.../org/openapitools/client/ApiClient.java | 2 +-
.../builds/default/.openapi-generator/FILES | 12 ++---
.../builds/with-npm/.openapi-generator/FILES | 12 ++---
.../builds/default/.openapi-generator/FILES | 12 ++---
.../builds/with-npm/.openapi-generator/FILES | 12 ++---
.../builds/default/.openapi-generator/FILES | 12 ++---
.../builds/with-npm/.openapi-generator/FILES | 12 ++---
.../builds/default/.openapi-generator/FILES | 12 ++---
.../builds/with-npm/.openapi-generator/FILES | 12 ++---
.../.openapi-generator/FILES | 12 ++---
.../builds/with-npm/.openapi-generator/FILES | 12 ++---
.../.openapi-generator/FILES | 12 ++---
.../default/.openapi-generator/FILES | 12 ++---
.../npm/.openapi-generator/FILES | 12 ++---
.../.openapi-generator/FILES | 46 +++++++++----------
23 files changed, 187 insertions(+), 114 deletions(-)
create mode 100644 bin/configs/java-retrofit2rx3.yaml
diff --git a/bin/configs/java-retrofit2rx3.yaml b/bin/configs/java-retrofit2rx3.yaml
new file mode 100644
index 00000000000..e4a1b5207c6
--- /dev/null
+++ b/bin/configs/java-retrofit2rx3.yaml
@@ -0,0 +1,9 @@
+generatorName: java
+outputDir: samples/client/petstore/java/retrofit2rx3
+library: retrofit2
+inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml
+templateDir: modules/openapi-generator/src/main/resources/Java
+additionalProperties:
+ useRxJava3: "true"
+ artifactId: petstore-retrofit2-rx3
+ hideGenerationTimestamp: "true"
diff --git a/docs/generators/java.md b/docs/generators/java.md
index 3d0d3afda00..1ce62bf0cba 100644
--- a/docs/generators/java.md
+++ b/docs/generators/java.md
@@ -61,6 +61,7 @@ If false: the 'additionalProperties' implementation is compliant with the OAS an
|useRuntimeException|Use RuntimeException instead of Exception| |false|
|useRxJava|Whether to use the RxJava adapter with the retrofit2 library.| |false|
|useRxJava2|Whether to use the RxJava2 adapter with the retrofit2 library.| |false|
+|useRxJava3|Whether to use the RxJava3 adapter with the retrofit2 library.| |false|
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
## IMPORT MAPPING
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
index 47e71873876..88b236733fa 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
@@ -51,6 +51,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
public static final String USE_RX_JAVA = "useRxJava";
public static final String USE_RX_JAVA2 = "useRxJava2";
+ public static final String USE_RX_JAVA3 = "useRxJava3";
public static final String DO_NOT_USE_RX = "doNotUseRx";
public static final String USE_PLAY_WS = "usePlayWS";
public static final String PLAY_VERSION = "playVersion";
@@ -88,6 +89,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
protected String gradleWrapperPackage = "gradle.wrapper";
protected boolean useRxJava = false;
protected boolean useRxJava2 = false;
+ protected boolean useRxJava3 = false;
// backwards compatibility for openapi configs that specify neither rx1 nor rx2
// (mustache does not allow for boolean operators so we need this extra field)
protected boolean doNotUseRx = true;
@@ -131,6 +133,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
cliOptions.add(CliOption.newBoolean(USE_RX_JAVA, "Whether to use the RxJava adapter with the retrofit2 library."));
cliOptions.add(CliOption.newBoolean(USE_RX_JAVA2, "Whether to use the RxJava2 adapter with the retrofit2 library."));
+ cliOptions.add(CliOption.newBoolean(USE_RX_JAVA3, "Whether to use the RxJava3 adapter with the retrofit2 library."));
cliOptions.add(CliOption.newBoolean(PARCELABLE_MODEL, "Whether to generate models for Android that implement Parcelable with the okhttp-gson library."));
cliOptions.add(CliOption.newBoolean(USE_PLAY_WS, "Use Play! Async HTTP client (Play WS API)"));
cliOptions.add(CliOption.newString(PLAY_VERSION, "Version of Play! Framework (possible values \"play24\", \"play25\" (default), \"play26\")"));
@@ -148,7 +151,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
supportedLibraries.put(JERSEY2, "HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x");
supportedLibraries.put(FEIGN, "HTTP client: OpenFeign 9.x (deprecated) or 10.x (default). JSON processing: Jackson 2.9.x.");
supportedLibraries.put(OKHTTP_GSON, "[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
- supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)");
+ supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2/3]=true'. (RxJava 1.x or 2.x or 3.x)");
supportedLibraries.put(RESTTEMPLATE, "HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x");
supportedLibraries.put(WEBCLIENT, "HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x");
supportedLibraries.put(RESTEASY, "HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x");
@@ -213,15 +216,33 @@ public class JavaClientCodegen extends AbstractJavaCodegen
super.processOpts();
// RxJava
- if (additionalProperties.containsKey(USE_RX_JAVA) && additionalProperties.containsKey(USE_RX_JAVA2)) {
- LOGGER.warn("You specified both RxJava versions 1 and 2 but they are mutually exclusive. Defaulting to v2.");
- } else if (additionalProperties.containsKey(USE_RX_JAVA)) {
- this.setUseRxJava(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA).toString()));
+ if (additionalProperties.containsKey(USE_RX_JAVA) && additionalProperties.containsKey(USE_RX_JAVA2) && additionalProperties.containsKey(USE_RX_JAVA3)){
+ LOGGER.warn("You specified all RxJava versions 1, 2 and 3 but they are mutually exclusive. Defaulting to v3.");
+ this.setUseRxJava3(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA3).toString()));
+ }else {
+ if (additionalProperties.containsKey(USE_RX_JAVA) && additionalProperties.containsKey(USE_RX_JAVA2)){
+ LOGGER.warn("You specified both RxJava versions 1 and 2 but they are mutually exclusive. Defaulting to v2.");
+ this.setUseRxJava2(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA2).toString()));
+ }else if (additionalProperties.containsKey(USE_RX_JAVA) && additionalProperties.containsKey(USE_RX_JAVA3)) {
+ LOGGER.warn("You specified both RxJava versions 1 and 3 but they are mutually exclusive. Defaulting to v3.");
+ this.setUseRxJava3(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA3).toString()));
+ }else if(additionalProperties.containsKey(USE_RX_JAVA2) && additionalProperties.containsKey(USE_RX_JAVA3)){
+ LOGGER.warn("You specified both RxJava versions 2 and 3 but they are mutually exclusive. Defaulting to v3.");
+ this.setUseRxJava3(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA3).toString()));
+ }else{
+ if(additionalProperties.containsKey(USE_RX_JAVA)){
+ this.setUseRxJava(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA).toString()));
+ }
+ if(additionalProperties.containsKey(USE_RX_JAVA2)){
+ this.setUseRxJava2(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA2).toString()));
+ }
+ if(additionalProperties.containsKey(USE_RX_JAVA3)){
+ this.setUseRxJava3(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA3).toString()));
+ }
+ }
}
- if (additionalProperties.containsKey(USE_RX_JAVA2)) {
- this.setUseRxJava2(Boolean.valueOf(additionalProperties.get(USE_RX_JAVA2).toString()));
- }
- if (!useRxJava && !useRxJava2) {
+
+ if (!useRxJava && !useRxJava2 && !useRxJava3) {
additionalProperties.put(DO_NOT_USE_RX, true);
}
@@ -802,6 +823,11 @@ public class JavaClientCodegen extends AbstractJavaCodegen
this.useRxJava2 = useRxJava2;
doNotUseRx = false;
}
+
+ public void setUseRxJava3(boolean useRxJava3) {
+ this.useRxJava3 = useRxJava3;
+ doNotUseRx = false;
+ }
public void setDoNotUseRx(boolean doNotUseRx) {
this.doNotUseRx = doNotUseRx;
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/ApiClient.mustache
index 88f0a67004c..c0ca8d00c18 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/ApiClient.mustache
@@ -25,6 +25,9 @@ import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
{{#useRxJava2}}
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
{{/useRxJava2}}
+{{#useRxJava3}}
+import hu.akarnokd.rxjava3.retrofit.RxJava3CallAdapterFactory;
+{{/useRxJava3}}
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
import {{invokerPackage}}.auth.HttpBasicAuth;
@@ -151,7 +154,9 @@ public class ApiClient {
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
{{/useRxJava}}{{#useRxJava2}}
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- {{/useRxJava2}}
+ {{/useRxJava2}}{{#useRxJava3}}
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ {{/useRxJava3}}
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonCustomConverterFactory.create(json.getGson()));
}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/api.mustache
index 44f33a514f8..a54e6ffd60f 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/api.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/api.mustache
@@ -8,10 +8,16 @@ import rx.Observable;
{{#useRxJava2}}
import io.reactivex.Observable;
{{/useRxJava2}}
+{{#useRxJava3}}
+import io.reactivex.rxjava3.core.Observable;
+{{/useRxJava3}}
{{^returnType}}
{{#useRxJava2}}
import io.reactivex.Completable;
{{/useRxJava2}}
+{{#useRxJava3}}
+import io.reactivex.rxjava3.core.Completable;
+{{/useRxJava3}}
{{/returnType}}
{{#doNotUseRx}}
import retrofit2.Call;
@@ -41,7 +47,7 @@ public interface {{classname}} {
{{#allParams}}
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
{{/allParams}}
- * @return {{^doNotUseRx}}{{#useRxJava}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/useRxJava}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
+ * @return {{^doNotUseRx}}{{#useRxJava}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/useRxJava}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}}
{{#isDeprecated}}
* @deprecated
{{/isDeprecated}}
@@ -68,7 +74,7 @@ public interface {{classname}} {
{{/prioritizedContentTypes}}
{{/formParams}}
@{{httpMethod}}("{{{path}}}")
- {{^doNotUseRx}}{{#useRxJava}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/useRxJava}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}});{{/allParams}}
+ {{^doNotUseRx}}{{#useRxJava}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/useRxJava}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}{{/isResponseFile}}>{{/doNotUseRx}} {{operationId}}({{^allParams}});{{/allParams}}
{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{#hasMore}}, {{/hasMore}}{{^hasMore}}
);{{/hasMore}}{{/allParams}}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache
index 6a7b8e8cca8..3098d699287 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.gradle.mustache
@@ -145,6 +145,9 @@ ext {
{{#useRxJava2}}
rx_java_version = "2.1.1"
{{/useRxJava2}}
+ {{#useRxJava3}}
+ rx_java_version = "3.0.4"
+ {{/useRxJava3}}
{{#joda}}
jodatime_version = "2.9.9"
{{/joda}}
@@ -166,6 +169,10 @@ dependencies {
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile "io.reactivex.rxjava2:rxjava:$rx_java_version"
{{/useRxJava2}}
+ {{#useRxJava3}}
+ compile 'com.github.akarnokd:rxjava3-retrofit-adapter:3.0.0'
+ compile "io.reactivex.rxjava3:rxjava:$rx_java_version"
+ {{/useRxJava3}}
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile "com.google.code.findbugs:jsr305:3.0.2"
compile ("org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"){
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache
index 4c85b1411d2..55d77e1d0de 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/build.sbt.mustache
@@ -44,6 +44,10 @@ lazy val root = (project in file(".")).
"com.squareup.retrofit2" % "adapter-rxjava2" % "2.3.0" % "compile",
"io.reactivex.rxjava2" % "rxjava" % "2.1.1" % "compile",
{{/useRxJava2}}
+ {{#useRxJava3}}
+ "com.github.akarnokd" % "rxjava3-retrofit-adapter" % "3.0.0" % "compile",
+ "io.reactivex.rxjava3" % "rxjava" % "3.0.4" % "compile",
+ {{/useRxJava3}}
"io.swagger" % "swagger-annotations" % "1.5.21" % "compile",
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile",
{{#joda}}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/pom.mustache
index 61bacc3bb7c..ba983599e24 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/retrofit2/pom.mustache
@@ -276,6 +276,18 @@
${retrofit-version}
{{/useRxJava2}}
+ {{#useRxJava3}}
+
+ io.reactivex.rxjava3
+ rxjava
+ ${rxjava-version}
+
+
+ com.github.akarnokd
+ rxjava3-retrofit-adapter
+ 3.0.0
+
+ {{/useRxJava3}}
{{#usePlayWS}}
@@ -400,6 +412,9 @@
{{#useRxJava2}}
2.1.1
{{/useRxJava2}}
+ {{#useRxJava3}}
+ 3.0.4
+ {{/useRxJava3}}
{{#joda}}
2.9.9
{{/joda}}
diff --git a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/ApiClient.java
index 76999eb684e..6df4b915bf9 100644
--- a/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/petstore/java/retrofit2rx2/src/main/java/org/openapitools/client/ApiClient.java
@@ -126,7 +126,7 @@ public class ApiClient {
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .addConverterFactory(ScalarsConverterFactory.create())
+ .addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonCustomConverterFactory.create(json.getGson()));
}
diff --git a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/FILES
index bc66e2a3865..7f11560dda7 100644
--- a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/default/.openapi-generator/FILES
@@ -9,11 +9,11 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
variables.ts
diff --git a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v6-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/FILES
index bc66e2a3865..7f11560dda7 100644
--- a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/default/.openapi-generator/FILES
@@ -9,11 +9,11 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
variables.ts
diff --git a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v6-provided-in-root/builds/with-npm/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/default/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/default/.openapi-generator/FILES
index bc66e2a3865..7f11560dda7 100644
--- a/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/default/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/default/.openapi-generator/FILES
@@ -9,11 +9,11 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
variables.ts
diff --git a/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/with-npm/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v7-not-provided-in-root/builds/with-npm/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/default/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/default/.openapi-generator/FILES
index bc66e2a3865..7f11560dda7 100644
--- a/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/default/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/default/.openapi-generator/FILES
@@ -9,11 +9,11 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
variables.ts
diff --git a/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/with-npm/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/with-npm/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/with-npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v7-provided-in-root/builds/with-npm/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/single-request-parameter/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/single-request-parameter/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/single-request-parameter/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/single-request-parameter/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-npm/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-prefixed-module-name/.openapi-generator/FILES b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-prefixed-module-name/.openapi-generator/FILES
index a2650d9db08..d85eeefc6f2 100644
--- a/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-prefixed-module-name/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-angular-v8-provided-in-root/builds/with-prefixed-module-name/.openapi-generator/FILES
@@ -9,12 +9,12 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
ng-package.json
package.json
diff --git a/samples/client/petstore/typescript-node/default/.openapi-generator/FILES b/samples/client/petstore/typescript-node/default/.openapi-generator/FILES
index c4f1df469e4..ff52c7c5b2b 100644
--- a/samples/client/petstore/typescript-node/default/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-node/default/.openapi-generator/FILES
@@ -5,10 +5,10 @@ api/petApi.ts
api/storeApi.ts
api/userApi.ts
git_push.sh
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
diff --git a/samples/client/petstore/typescript-node/npm/.openapi-generator/FILES b/samples/client/petstore/typescript-node/npm/.openapi-generator/FILES
index 914f5ced854..d24a1934784 100644
--- a/samples/client/petstore/typescript-node/npm/.openapi-generator/FILES
+++ b/samples/client/petstore/typescript-node/npm/.openapi-generator/FILES
@@ -5,12 +5,12 @@ api/petApi.ts
api/storeApi.ts
api/userApi.ts
git_push.sh
-model/./apiResponse.ts
-model/./category.ts
-model/./order.ts
-model/./pet.ts
-model/./tag.ts
-model/./user.ts
+model/apiResponse.ts
+model/category.ts
+model/order.ts
+model/pet.ts
+model/tag.ts
+model/user.ts
model/models.ts
package.json
tsconfig.json
diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES
index b00a0510b77..8c41d6e8cf5 100644
--- a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES
+++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES
@@ -1,26 +1,26 @@
-./Api/ApiServer.php
-./Api/PetApiInterface.php
-./Api/StoreApiInterface.php
-./Api/UserApiInterface.php
-./Controller/Controller.php
-./Controller/PetController.php
-./Controller/StoreController.php
-./Controller/UserController.php
-./Model/ApiResponse.php
-./Model/Category.php
-./Model/Order.php
-./Model/Pet.php
-./Model/Tag.php
-./Model/User.php
-./Service/JmsSerializer.php
-./Service/SerializerInterface.php
-./Service/StrictJsonDeserializationVisitor.php
-./Service/SymfonyValidator.php
-./Service/TypeMismatchException.php
-./Service/ValidatorInterface.php
-./Tests/AppKernel.php
-./Tests/Controller/ControllerTest.php
-./Tests/test_config.yml
+Api/ApiServer.php
+Api/PetApiInterface.php
+Api/StoreApiInterface.php
+Api/UserApiInterface.php
+Controller/Controller.php
+Controller/PetController.php
+Controller/StoreController.php
+Controller/UserController.php
+Model/ApiResponse.php
+Model/Category.php
+Model/Order.php
+Model/Pet.php
+Model/Tag.php
+Model/User.php
+Service/JmsSerializer.php
+Service/SerializerInterface.php
+Service/StrictJsonDeserializationVisitor.php
+Service/SymfonyValidator.php
+Service/TypeMismatchException.php
+Service/ValidatorInterface.php
+Tests/AppKernel.php
+Tests/Controller/ControllerTest.php
+Tests/test_config.yml
.coveralls.yml
.gitignore
.php_cs.dist