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
21.83k stars 6.58k forks source link

[BUG] Unused JsonNullable imports #16931

Open Haarolean opened 1 year ago

Haarolean commented 1 year ago

Bug Report Checklist

Description

An import import org.openapitools.jackson.nullable.JsonNullable; is being added to DTOs despite they're never used. It's solvable by adding <openApiNullable>false</openApiNullable> config property but I believe the import shouldn't be there if it's unused.

openapi-generator version

7.0.1. Might be a regression of #2901

OpenAPI declaration file content or url

https://gist.github.com/Haarolean/8a9b07f74544c7e45d553ff33798ed8c (swagger petstore)

Generation Details

maven,

    <build>
        <plugins>
            <plugin>
                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <version>7.0.1</version>
                <executions>
                    <execution>
                        <id>interfaces</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                            <output>${project.build.directory}/generated-sources/api</output>
                            <generatorName>spring</generatorName>
                            <modelNameSuffix>DTO</modelNameSuffix>
                            <configOptions>
                                <modelPackage>lol.memelord.kapybro.api.dto</modelPackage>
                                <apiPackage>lol.memelord.kapybro.api.api</apiPackage>
                                <sourceFolder>test</sourceFolder>
                                <interfaceOnly>true</interfaceOnly>
                                <skipDefaultInterface>true</skipDefaultInterface>
                                <useBeanValidation>true</useBeanValidation>
                                <useTags>true</useTags>
                                <useSpringBoot3>true</useSpringBoot3>
                                <dateLibrary>java8</dateLibrary>
<!--                                <useOpenApiNullable>false</useOpenApiNullable>-->
<!--                                <openApiNullable>false</openApiNullable>-->
                            </configOptions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
Steps to reproduce
  1. build the spec
Related issues/PRs

2901

Suggest a fix
wing328 commented 1 year ago

It's solvable by adding false config property but I believe the import shouldn't be there if it's unused.

@Haarolean right. Do you mind contributing a PR to remove the import when openApiNullableis is disabled?