From 7e89e1ea81546f9fab7a67fedf76d0cc2f5e4859 Mon Sep 17 00:00:00 2001
From: martin-mfg <2026226+martin-mfg@users.noreply.github.com>
Date: Wed, 21 Jun 2023 09:55:29 +0200
Subject: [PATCH] fix import mapping for return types (#14525) (#15719)
* importContainerType = true
* add unit test
* disable MyImportTest
* build all samples, add import exceptions
* simplify code
* delete myImportTest
* generate docs
* extend comment
* remove inline comment
---
docs/generators/groovy.md | 1 +
.../openapitools/codegen/DefaultCodegen.java | 21 ++++++++++++++++--
.../codegen/languages/CppQtClientCodegen.java | 10 +++++++++
.../languages/CppTinyClientCodegen.java | 8 +++++++
.../languages/GroovyClientCodegen.java | 1 +
.../languages/JavaCXFServerCodegen.java | 12 ++++++++--
.../JavaJAXRSCXFCDIServerCodegen.java | 10 +++++++++
.../languages/JavaJAXRSSpecServerCodegen.java | 10 +++++++++
.../languages/JavaJerseyServerCodegen.java | 8 +++++++
.../languages/JavaPlayFrameworkCodegen.java | 3 ++-
.../JavaResteasyEapServerCodegen.java | 8 +++++++
.../languages/JavaResteasyServerCodegen.java | 12 +++++++---
.../codegen/languages/NimClientCodegen.java | 3 ++-
.../codegen/languages/SpringCodegen.java | 13 +++--------
.../codegen/java/JavaClientCodegenTest.java | 22 +++++++++++++++++++
.../src/test/resources/3_0/issue14525.yaml | 18 +++++++++++++++
.../petstore/cpp-qt/client/PFXUserApi.h | 1 -
.../CppRestPetstoreClient/api/PetApi.h | 1 +
.../petstore/cpp-tiny/lib/service/UserApi.h | 1 -
.../org/openapitools/api/UserApi.groovy | 1 -
.../groovy/org/openapitools/model/Pet.groovy | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../server/petstore/cpp-pistache/api/PetApi.h | 1 +
.../petstore/cpp-pistache/impl/PetApiImpl.h | 1 +
.../server/src/handlers/OAIPetApiHandler.h | 1 +
.../server/src/requests/OAIPetApiRequest.h | 1 +
.../cpp-restbed/generated/3_0/api/FakeApi.h | 1 +
.../cpp-restbed/generated/3_0/api/PetApi.h | 1 +
.../openapitools/server/api/FakeService.java | 1 +
.../server/api/FakeServiceImpl.java | 1 +
.../openapitools/server/api/PetService.java | 1 +
.../server/api/PetServiceImpl.java | 1 +
.../openapitools/server/api/FakeService.java | 1 +
.../server/api/FakeServiceImpl.java | 1 +
.../openapitools/server/api/PetService.java | 1 +
.../server/api/PetServiceImpl.java | 1 +
.../java/org/openapitools/api/FakeApi.java | 1 +
.../org/openapitools/api/FakeApiService.java | 1 +
.../gen/java/org/openapitools/api/PetApi.java | 1 +
.../org/openapitools/api/PetApiService.java | 1 +
.../api/impl/FakeApiServiceImpl.java | 1 +
.../api/impl/PetApiServiceImpl.java | 1 +
.../puppies/store/apis/UserApiController.java | 1 -
.../store/apis/UserApiControllerImp.java | 1 -
.../apis/UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../app/controllers/UserApiController.java | 1 -
.../app/controllers/UserApiControllerImp.java | 1 -
.../UserApiControllerImpInterface.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../org/openapitools/api/UserApiService.java | 1 -
.../api/impl/UserApiServiceImpl.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../org/openapitools/api/UserApiDelegate.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
.../openapitools/virtualan/api/UserApi.java | 1 -
.../virtualan/api/UserApiController.java | 1 -
.../java/org/openapitools/api/UserApi.java | 1 -
.../openapitools/api/UserApiController.java | 1 -
175 files changed, 162 insertions(+), 157 deletions(-)
create mode 100644 modules/openapi-generator/src/test/resources/3_0/issue14525.yaml
diff --git a/docs/generators/groovy.md b/docs/generators/groovy.md
index 8643d6d2d3f..7a1e04c8d61 100644
--- a/docs/generators/groovy.md
+++ b/docs/generators/groovy.md
@@ -123,6 +123,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
File
Float
Integer
+List
Long
Map
Object
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 91aa3fe722a..59260c803e2 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
@@ -659,6 +659,23 @@ public class DefaultCodegen implements CodegenConfig {
return objs;
}
+ /**
+ * Removes importToRemove from the imports of objs, if present.
+ * This is useful to remove imports that are already present in operations-related template files, to avoid importing the same thing twice.
+ *
+ * @param objs imports will be removed from this objs' imports collection
+ * @param importToRemove the import statement to be removed
+ */
+ protected void removeImport(OperationsMap objs, String importToRemove) {
+ List