From e8160d8d7d86b48d07fc7d2b38c64916162edf47 Mon Sep 17 00:00:00 2001 From: n1t4chi Date: Thu, 10 Aug 2023 17:22:08 +0200 Subject: [PATCH] Improve type reference in toEntity call in order to fix issue with LinkedHashMap being returned instead of maped object to POJO (#16293) --- .../jvm-spring-webclient/infrastructure/ApiClient.kt.mustache | 3 ++- .../kotlin/org/openapitools/client/infrastructure/ApiClient.kt | 3 ++- .../kotlin/org/openapitools/client/infrastructure/ApiClient.kt | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/infrastructure/ApiClient.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/infrastructure/ApiClient.kt.mustache index 85f5a40469d..d9d956d3fa7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/infrastructure/ApiClient.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/infrastructure/ApiClient.kt.mustache @@ -1,5 +1,6 @@ package {{packageName}}.infrastructure; +import org.springframework.core.ParameterizedTypeReference import org.springframework.http.HttpHeaders import org.springframework.http.HttpMethod import org.springframework.http.MediaType @@ -13,7 +14,7 @@ open class ApiClient(protected val client: WebClient) { protected inline fun request(requestConfig: RequestConfig): Mono> { return prepare(defaults(requestConfig)) .retrieve() - .toEntity(T::class.java) + .toEntity(object : ParameterizedTypeReference() {}) } protected fun prepare(requestConfig: RequestConfig) = diff --git a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index 2011dd43cd1..d49ddb28e2e 100644 --- a/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin-jvm-spring-2-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -1,5 +1,6 @@ package org.openapitools.client.infrastructure; +import org.springframework.core.ParameterizedTypeReference import org.springframework.http.HttpHeaders import org.springframework.http.HttpMethod import org.springframework.http.MediaType @@ -13,7 +14,7 @@ open class ApiClient(protected val client: WebClient) { protected inline fun request(requestConfig: RequestConfig): Mono> { return prepare(defaults(requestConfig)) .retrieve() - .toEntity(T::class.java) + .toEntity(object : ParameterizedTypeReference() {}) } protected fun prepare(requestConfig: RequestConfig) = diff --git a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index 2011dd43cd1..d49ddb28e2e 100644 --- a/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin-jvm-spring-3-webclient/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -1,5 +1,6 @@ package org.openapitools.client.infrastructure; +import org.springframework.core.ParameterizedTypeReference import org.springframework.http.HttpHeaders import org.springframework.http.HttpMethod import org.springframework.http.MediaType @@ -13,7 +14,7 @@ open class ApiClient(protected val client: WebClient) { protected inline fun request(requestConfig: RequestConfig): Mono> { return prepare(defaults(requestConfig)) .retrieve() - .toEntity(T::class.java) + .toEntity(object : ParameterizedTypeReference() {}) } protected fun prepare(requestConfig: RequestConfig) =