OpenAPITools / openapi-generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
https://openapi-generator.tech
Apache License 2.0
22.03k stars 6.6k forks source link

[BUG][native][apache-httpclient] Generated code contains warnings in ApiClient #18384

Open welandaz opened 7 months ago

welandaz commented 7 months ago

Bug Report Checklist

Description

If you add -Xlint:all, -Werror to java compiler options, you will get error on any open-api specification.

openapi-generator version

7.4.0

OpenAPI declaration file content or url

https://github.com/OpenAPITools/openapi-generator/blob/1105759a6f20edac389fa547359c7d5e6c4f9ac8/modules/openapi-generator-gradle-plugin/samples/local-spec/petstore-v3.0.yaml

Generation Details
Steps to reproduce

jdk: Oracle OpenJDK 21.0.1 gradle: 8.7 open-api generator plugin: 7.4.0

plugins {
    id("java")
    id("org.openapi.generator") version "7.4.0"
}

group = "com.test"
version = "1.0"

repositories {
    mavenCentral()
}

dependencies {
    implementation("jakarta.annotation:jakarta.annotation-api:3.0.0")

    implementation("org.openapitools:jackson-databind-nullable:0.2.6")
    implementation("com.fasterxml.jackson.core:jackson-annotations:2.16.1")
    implementation("com.fasterxml.jackson.core:jackson-core:2.16.1")
    implementation("com.fasterxml.jackson.core:jackson-databind:2.16.1")
    implementation("com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.13.4")
    implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0")

    implementation("javax.annotation:javax.annotation-api:1.3.2")

    implementation("org.apache.httpcomponents.client5:httpclient5:5.4-alpha2")

    testImplementation(platform("org.junit:junit-bom:5.9.1"))
    testImplementation("org.junit.jupiter:junit-jupiter")
}

sourceSets {
    named("main") {
        java {
            srcDir("$buildDir/java/src/main/java")
        }
    }
}

tasks.test {
    useJUnitPlatform()
}

openApiGenerate {
    generatorName = "java"
    inputSpec = "$projectDir/src/main/resources/petstore-v3.0.yaml"
    outputDir = "$buildDir/java"
    apiPackage = "org.openapitools.example.api"
    invokerPackage = "org.openapitools.example.invoker"
    modelPackage = "org.openapitools.example.model"
    configOptions.putAll(mapOf(
        "library" to "apache-httpclient", // change to native for other warnings
        "dateLibrary" to "java8",
        "serializationLibrary" to "jackson",
        "useJakartaEe" to "true",
        "hideGenerationTimestamp" to "true",
        "openApiNullable" to "false",
        "useBeanValidation" to "false",
        "disallowAdditionalPropertiesIfNotPresent" to "false",
        "containerDefaultToNull" to "true",
    ))
}

tasks.withType<JavaCompile> {
    options.compilerArgs.addAll(listOf("-Xlint:all", "-Werror"))
}
Related issues/PRs

https://github.com/OpenAPITools/openapi-generator/issues/17475

Suggest a fix
ainurabdrashitov commented 7 months ago

Looks similar to the https://github.com/OpenAPITools/openapi-generator/issues/17475