From 652a20d220cf3f662519a63a35777bd501341110 Mon Sep 17 00:00:00 2001 From: atokle Date: Sat, 28 Feb 2026 02:32:03 +0100 Subject: [PATCH] fix spring-http-interface created swagger annotations --- .../codegen/languages/SpringCodegen.java | 8 +++++- .../java/spring/SpringCodegenTest.java | 28 ++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java index 706f0501e823..d64785a8027c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java @@ -414,6 +414,12 @@ public void processOpts() { super.processOpts(); if (SPRING_HTTP_INTERFACE.equals(library)) { + if (documentationProvider != null) { + additionalProperties.remove(documentationProvider.getPropertyName()); + } + if (annotationLibrary != null) { + additionalProperties.remove(annotationLibrary.getPropertyName()); + } documentationProvider = DocumentationProvider.NONE; annotationLibrary = AnnotationLibrary.NONE; useJakartaEe = true; @@ -491,7 +497,7 @@ public void processOpts() { convertPropertyToBooleanAndWriteBack(RETURN_SUCCESS_CODE, this::setReturnSuccessCode); convertPropertyToBooleanAndWriteBack(USE_SWAGGER_UI, this::setUseSwaggerUI); convertPropertyToBooleanAndWriteBack(USE_SEALED, this::setUseSealed); - if (getDocumentationProvider().equals(DocumentationProvider.NONE)) { + if (DocumentationProvider.NONE.equals(getDocumentationProvider())) { this.setUseSwaggerUI(false); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index 255ceacdc7df..032c192fac42 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -6592,7 +6592,6 @@ public void shouldImportJackson3JsonDeserializeForUniqueItemsWhenJackson3Set() t codegen.setOpenAPI(openAPI); codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(SpringCodegen.USE_SPRING_BOOT4, "true"); codegen.additionalProperties().put(SpringCodegen.USE_JACKSON_3, "true"); codegen.additionalProperties().put(SpringCodegen.OPENAPI_NULLABLE, "false"); @@ -6611,4 +6610,31 @@ public void shouldImportJackson3JsonDeserializeForUniqueItemsWhenJackson3Set() t .hasImports("tools.jackson.databind.annotation.JsonDeserialize"); } + @Test + public void shouldNotHaveDocumentationAnnotationWhenUsingLibrarySpringHttpInterface() throws IOException { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + String outputPath = output.getAbsolutePath().replace('\\', '/'); + + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/petstore-echo.yaml"); + final SpringCodegen codegen = new SpringCodegen(); + codegen.setOpenAPI(openAPI); + codegen.setOutputDir(output.getAbsolutePath()); + codegen.setLibrary(SPRING_HTTP_INTERFACE); + codegen.setAnnotationLibrary(AnnotationLibrary.SWAGGER2); + codegen.setDocumentationProvider(DocumentationProvider.SPRINGDOC); + + ClientOptInput input = new ClientOptInput(); + input.openAPI(openAPI); + input.config(codegen); + + DefaultGenerator generator = new DefaultGenerator(); + generator.setGenerateMetadata(false); // skip metadata generation + + Map files = generator.opts(input).generate().stream() + .collect(Collectors.toMap(File::getName, Function.identity())); + + JavaFileAssert.assertThat(Paths.get(outputPath + "/src/main/java/org/openapitools/api/PetApi.java")) + .assertMethod("addPet").assertParameter("pet").assertParameterAnnotations().doesNotContainWithName("Parameter"); + } }