From f08142a12c1bb51ac300a3d5ebaacb2e30541a57 Mon Sep 17 00:00:00 2001 From: altro3 Date: Sat, 16 Dec 2023 14:35:49 +0700 Subject: [PATCH] Update libs. Fix kotlin warnings --- gradle/libs.versions.toml | 12 ++--- .../OpenApiPojoControllerKotlinSpec.groovy | 52 +++++++++++++++++++ settings.gradle | 9 ++-- .../openapi/test/api/RequestBodyController.kt | 44 ++++++++-------- .../openapi/test/dated/DatedResponse.kt | 2 +- .../test/dated/DatedResponseBodyWriter.kt | 4 +- .../openapi/test/page/PageBodyWriter.kt | 2 +- .../openapi/test/api/RequestBodyController.kt | 44 ++++++++-------- .../openapi/test/dated/DatedResponse.kt | 2 +- .../test/dated/DatedResponseBodyWriter.kt | 4 +- .../openapi/test/page/PageBodyWriter.kt | 2 +- 11 files changed, 114 insertions(+), 63 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a69f837baf..09777ee138 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,18 +8,19 @@ managed-freemarker = "2.3.32" managed-pegdown = "1.6.0" kotlin = "1.9.21" -ksp = "1.9.21-1.0.15" +ksp = "1.9.21-1.0.16" jspecify = "0.3.0" jdt-annotation = "2.2.800" -android-annotation = "1.7.0" -spotbugs-annotations = "4.8.2" +android-annotation = "1.7.1" +spotbugs-annotations = "4.8.3" openapi-generator = "7.1.0" swagger-parser = "1.0.68" swagger-parser-v3 = "2.1.19" javaparser = "3.25.7" commons-codec = "1.16.0" -micronaut = "4.2.1" +micronaut = "4.2.2" +micronaut-platform = "4.2.2" micronaut-security = "4.4.0" micronaut-serde = "2.5.1" micronaut-rxjava2 = "2.2.0" @@ -28,11 +29,10 @@ micronaut-reactor = "3.2.0" micronaut-gradle-plugin = "4.2.1" micronaut-groovy = "4.1.0" micronaut-validation = "4.2.0" -micronaut-data = "4.4.0" +micronaut-data = "4.4.1" micronaut-test = "4.1.1" micronaut-kotlin = "4.1.0" micronaut-logging = "1.2.0" -micronaut-platform = "4.2.1" [libraries] # Core diff --git a/openapi/src/test/groovy/io/micronaut/openapi/visitor/OpenApiPojoControllerKotlinSpec.groovy b/openapi/src/test/groovy/io/micronaut/openapi/visitor/OpenApiPojoControllerKotlinSpec.groovy index 029521300b..ddf9ac48d4 100644 --- a/openapi/src/test/groovy/io/micronaut/openapi/visitor/OpenApiPojoControllerKotlinSpec.groovy +++ b/openapi/src/test/groovy/io/micronaut/openapi/visitor/OpenApiPojoControllerKotlinSpec.groovy @@ -5,6 +5,7 @@ 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.responses.ApiResponse +import spock.lang.Ignore class OpenApiPojoControllerKotlinSpec extends AbstractKotlinCompilerSpec { @@ -77,4 +78,55 @@ class MyBean {} schema.enum[0] == 'mysys' schema.enum[1] == 'SYSTEM2' } + + @Ignore + void "test kotlin2"() { + + when: + buildBeanDefinition('test.MyBean', ''' +package test + +import io.micronaut.core.annotation.Nullable +import io.micronaut.data.model.Pageable +import io.micronaut.http.MediaType +import io.micronaut.http.annotation.Body +import io.micronaut.http.annotation.Controller +import io.micronaut.http.annotation.Post +import io.micronaut.http.annotation.Produces +import io.swagger.v3.oas.annotations.OpenAPIDefinition +import io.swagger.v3.oas.annotations.info.Info + +@OpenAPIDefinition( + info = Info( + title = "micronaut-swaggerui-demo", + version = "1.0.0" + ) +) +object Api + +@Controller("/hello") +class HelloController { + + @Post + @Produces(MediaType.TEXT_PLAIN) + fun index(@Nullable @Body body: Pageable) = "" +} + +class Foo { + private val bar = object {} +} + +@jakarta.inject.Singleton +class MyBean {} +''') + then: "the state is correct" + Utils.testReference != null + + when: "The OpenAPI is retrieved" + OpenAPI openAPI = Utils.testReference + Operation operation = openAPI.paths.'/hello'.get + + then: "the state is correct" + operation != null + } } diff --git a/settings.gradle b/settings.gradle index 4010c85f02..c548e07d8b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,11 +26,10 @@ include 'test-suite-java-client-generator' include 'test-suite-java-server-generator' include 'test-suite-kotlin-kapt-client-generator' include 'test-suite-kotlin-kapt-server-generator' -include 'test-suite-kotlin-ksp-client-generator' -// Skip it. Need to fix issues: -// https://github.com/micronaut-projects/micronaut-core/issues/10228 -// https://github.com/micronaut-projects/micronaut-core/issues/10227 -//include 'test-suite-kotlin-ksp-server-generator' +// Skip it. Need to fix issue: +// https://github.com/micronaut-projects/micronaut-core/issues/10277 +//include 'test-suite-kotlin-ksp-client-generator' +include 'test-suite-kotlin-ksp-server-generator' include 'test-suite-generator-util' dependencyResolutionManagement { diff --git a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt index 5f8754a17c..ea3e5c7d1a 100644 --- a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt +++ b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt @@ -24,52 +24,52 @@ open class RequestBodyController : RequestBodyApi { return Mono.empty() } - override fun sendListOfSimpleModels(simpleModels: List?): Mono> { - return Mono.just(simpleModels!!) + override fun sendListOfSimpleModels(simpleModel: List?): Mono> { + return Mono.just(simpleModel!!) } - override fun sendModelWithRequiredProperties(model: ModelWithRequiredProperties?): Mono { - return Mono.just(model!!) + override fun sendModelWithRequiredProperties(modelWithRequiredProperties: ModelWithRequiredProperties?): Mono { + return Mono.just(modelWithRequiredProperties!!) } - override fun sendDateModel(model: DateModel?): Mono { - return Mono.just(model!!) + override fun sendDateModel(dateModel: DateModel?): Mono { + return Mono.just(dateModel!!) } - override fun sendEnum(color: String): Mono { - return Mono.just(fromValue(color.replace("\"", ""))) + override fun sendEnum(body: String): Mono { + return Mono.just(fromValue(body.replace("\"", ""))) } - override fun sendEnumList(availableColors: List): Mono> { - return Mono.just(availableColors) + override fun sendEnumList(colorEnum: List): Mono> { + return Mono.just(colorEnum) } - override fun sendModelWithMapProperty(model: ModelWithMapProperty): Mono { - return Mono.just(model) + override fun sendModelWithMapProperty(modelWithMapProperty: ModelWithMapProperty): Mono { + return Mono.just(modelWithMapProperty) } override fun sendModelWithValidatedListProperty(modelWithValidatedListProperty: ModelWithValidatedListProperty): Mono { return Mono.empty() } - override fun sendNestedModel(model: NestedModel): Mono { - return Mono.just(model) + override fun sendNestedModel(nestedModel: NestedModel): Mono { + return Mono.just(nestedModel) } - override fun sendModelWithInnerEnum(model: ModelWithInnerEnum): Mono { - return Mono.just(model) + override fun sendModelWithInnerEnum(modelWithInnerEnum: ModelWithInnerEnum): Mono { + return Mono.just(modelWithInnerEnum) } - override fun sendModelWithDiscriminator(model: Animal): Mono { - return Mono.just(model) + override fun sendModelWithDiscriminator(animal: Animal): Mono { + return Mono.just(animal) } - override fun sendBytes(bytes: ByteArray?): Mono { - return Mono.just(bytes!!) + override fun sendBytes(body: ByteArray?): Mono { + return Mono.just(body!!) } - override fun sendModelWithEnumList(model: ModelWithEnumList): Mono { - return Mono.just(model) + override fun sendModelWithEnumList(modelWithEnumList: ModelWithEnumList): Mono { + return Mono.just(modelWithEnumList) } override fun sendFile(file: CompletedFileUpload?): Mono { diff --git a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt index 4dc894b4a1..64d11ae5aa 100644 --- a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt +++ b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt @@ -8,7 +8,7 @@ import java.time.ZonedDateTime * A response that contains information about last modification. * * @param The response body type. - */ + */ data class DatedResponse( @NonNull var body: T, diff --git a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt index d419f8e3da..d87e3d716e 100644 --- a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt +++ b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt @@ -18,7 +18,7 @@ import java.io.OutputStream * A class for writing [DatedResponse] to the HTTP response with JSON body. * * @param the type of the response body - */ + */ @Singleton @Produces(MediaType.APPLICATION_JSON) @Order(-1) @@ -34,7 +34,7 @@ internal class DatedResponseBodyWriter private constructor( override fun createSpecific( type: Argument> ): MessageBodyWriter> { - val bt: Argument = type.getTypeParameters()[0] as Argument + val bt: Argument = type.typeParameters[0] as Argument val writer = registry.findWriter(bt, listOf(MediaType.APPLICATION_JSON_TYPE)) .orElseThrow { ConfigurationException("No JSON message writer present") } return DatedResponseBodyWriter(registry, writer, bt) diff --git a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt index 4d3350e964..49835c31d9 100644 --- a/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt +++ b/test-suite-kotlin-kapt-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt @@ -33,7 +33,7 @@ internal class PageBodyWriter( constructor(registry: MessageBodyHandlerRegistry) : this(registry, null, null) override fun createSpecific(type: Argument>): MessageBodyWriter> { - val bt: Argument> = Argument.listOf(type.getTypeParameters()[0]) as Argument> + val bt: Argument> = Argument.listOf(type.typeParameters[0]) as Argument> val writer = registry.findWriter(bt, listOf(MediaType.APPLICATION_JSON_TYPE)) .orElseThrow { ConfigurationException("No JSON message writer present") } return PageBodyWriter(registry, writer, bt) diff --git a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt index 5f8754a17c..ea3e5c7d1a 100644 --- a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt +++ b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/api/RequestBodyController.kt @@ -24,52 +24,52 @@ open class RequestBodyController : RequestBodyApi { return Mono.empty() } - override fun sendListOfSimpleModels(simpleModels: List?): Mono> { - return Mono.just(simpleModels!!) + override fun sendListOfSimpleModels(simpleModel: List?): Mono> { + return Mono.just(simpleModel!!) } - override fun sendModelWithRequiredProperties(model: ModelWithRequiredProperties?): Mono { - return Mono.just(model!!) + override fun sendModelWithRequiredProperties(modelWithRequiredProperties: ModelWithRequiredProperties?): Mono { + return Mono.just(modelWithRequiredProperties!!) } - override fun sendDateModel(model: DateModel?): Mono { - return Mono.just(model!!) + override fun sendDateModel(dateModel: DateModel?): Mono { + return Mono.just(dateModel!!) } - override fun sendEnum(color: String): Mono { - return Mono.just(fromValue(color.replace("\"", ""))) + override fun sendEnum(body: String): Mono { + return Mono.just(fromValue(body.replace("\"", ""))) } - override fun sendEnumList(availableColors: List): Mono> { - return Mono.just(availableColors) + override fun sendEnumList(colorEnum: List): Mono> { + return Mono.just(colorEnum) } - override fun sendModelWithMapProperty(model: ModelWithMapProperty): Mono { - return Mono.just(model) + override fun sendModelWithMapProperty(modelWithMapProperty: ModelWithMapProperty): Mono { + return Mono.just(modelWithMapProperty) } override fun sendModelWithValidatedListProperty(modelWithValidatedListProperty: ModelWithValidatedListProperty): Mono { return Mono.empty() } - override fun sendNestedModel(model: NestedModel): Mono { - return Mono.just(model) + override fun sendNestedModel(nestedModel: NestedModel): Mono { + return Mono.just(nestedModel) } - override fun sendModelWithInnerEnum(model: ModelWithInnerEnum): Mono { - return Mono.just(model) + override fun sendModelWithInnerEnum(modelWithInnerEnum: ModelWithInnerEnum): Mono { + return Mono.just(modelWithInnerEnum) } - override fun sendModelWithDiscriminator(model: Animal): Mono { - return Mono.just(model) + override fun sendModelWithDiscriminator(animal: Animal): Mono { + return Mono.just(animal) } - override fun sendBytes(bytes: ByteArray?): Mono { - return Mono.just(bytes!!) + override fun sendBytes(body: ByteArray?): Mono { + return Mono.just(body!!) } - override fun sendModelWithEnumList(model: ModelWithEnumList): Mono { - return Mono.just(model) + override fun sendModelWithEnumList(modelWithEnumList: ModelWithEnumList): Mono { + return Mono.just(modelWithEnumList) } override fun sendFile(file: CompletedFileUpload?): Mono { diff --git a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt index 4dc894b4a1..64d11ae5aa 100644 --- a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt +++ b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponse.kt @@ -8,7 +8,7 @@ import java.time.ZonedDateTime * A response that contains information about last modification. * * @param The response body type. - */ + */ data class DatedResponse( @NonNull var body: T, diff --git a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt index d419f8e3da..d87e3d716e 100644 --- a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt +++ b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/dated/DatedResponseBodyWriter.kt @@ -18,7 +18,7 @@ import java.io.OutputStream * A class for writing [DatedResponse] to the HTTP response with JSON body. * * @param the type of the response body - */ + */ @Singleton @Produces(MediaType.APPLICATION_JSON) @Order(-1) @@ -34,7 +34,7 @@ internal class DatedResponseBodyWriter private constructor( override fun createSpecific( type: Argument> ): MessageBodyWriter> { - val bt: Argument = type.getTypeParameters()[0] as Argument + val bt: Argument = type.typeParameters[0] as Argument val writer = registry.findWriter(bt, listOf(MediaType.APPLICATION_JSON_TYPE)) .orElseThrow { ConfigurationException("No JSON message writer present") } return DatedResponseBodyWriter(registry, writer, bt) diff --git a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt index 4d3350e964..49835c31d9 100644 --- a/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt +++ b/test-suite-kotlin-ksp-server-generator/src/main/kotlin/io/micronaut/openapi/test/page/PageBodyWriter.kt @@ -33,7 +33,7 @@ internal class PageBodyWriter( constructor(registry: MessageBodyHandlerRegistry) : this(registry, null, null) override fun createSpecific(type: Argument>): MessageBodyWriter> { - val bt: Argument> = Argument.listOf(type.getTypeParameters()[0]) as Argument> + val bt: Argument> = Argument.listOf(type.typeParameters[0]) as Argument> val writer = registry.findWriter(bt, listOf(MediaType.APPLICATION_JSON_TYPE)) .orElseThrow { ConfigurationException("No JSON message writer present") } return PageBodyWriter(registry, writer, bt)