Skip to content

Commit 4bfc124

Browse files
committed
Kotlin nullability for Spring Boot 4 compatibility
For Kotlin WebClient and RestClient generated clients. The current implementation causes a generated client like ```kt open class ApiClient(protected val client: RestClient) { protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): ResponseEntity<T> { return prepare(defaults(requestConfig)) .retrieve() .toEntity(object : ParameterizedTypeReference<T>() {}) } // ... } ``` while that gives errors:
1 parent 4a7e0c9 commit 4bfc124

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-restclient/infrastructure/ApiClient.kt.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.springframework.util.LinkedMultiValueMap
1010

1111
{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}open class ApiClient(protected val client: RestClient) {
1212
13-
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): ResponseEntity<T> {
13+
protected inline fun <reified I : Any, reified T: Any> request(requestConfig: RequestConfig<I>): ResponseEntity<T> {
1414
return prepare(defaults(requestConfig))
1515
.retrieve()
1616
.toEntity(object : ParameterizedTypeReference<T>() {})
@@ -32,7 +32,7 @@ import org.springframework.util.LinkedMultiValueMap
3232
}
3333
}
3434

35-
private fun <I> RestClient.method(requestConfig: RequestConfig<I>)=
35+
private fun <I> RestClient.method(requestConfig: RequestConfig<I>) =
3636
method(HttpMethod.valueOf(requestConfig.method.name))
3737

3838
private fun <I> RestClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =

modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-spring-webclient/infrastructure/ApiClient.kt.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import reactor.core.publisher.Mono
1212

1313
{{^nonPublicApi}}{{#explicitApi}}public {{/explicitApi}}{{/nonPublicApi}}open class ApiClient(protected val client: WebClient) {
1414
15-
protected inline fun <reified I : Any, reified T: Any?> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
15+
protected inline fun <reified I : Any, reified T: Any> request(requestConfig: RequestConfig<I>): Mono<ResponseEntity<T>> {
1616
return prepare(defaults(requestConfig))
1717
.retrieve()
1818
.toEntity(object : ParameterizedTypeReference<T>() {})
@@ -34,7 +34,7 @@ import reactor.core.publisher.Mono
3434
}
3535
}
3636

37-
private fun <I> WebClient.method(requestConfig: RequestConfig<I>)=
37+
private fun <I> WebClient.method(requestConfig: RequestConfig<I>) =
3838
method(HttpMethod.valueOf(requestConfig.method.name))
3939

4040
private fun <I> WebClient.RequestBodyUriSpec.uri(requestConfig: RequestConfig<I>) =

0 commit comments

Comments
 (0)