diff --git a/.github/workflows/samples-java-client-echo-api-jdk11.yaml b/.github/workflows/samples-java-client-echo-api-jdk11.yaml index 96635a4d3f9..5e27029ee35 100644 --- a/.github/workflows/samples-java-client-echo-api-jdk11.yaml +++ b/.github/workflows/samples-java-client-echo-api-jdk11.yaml @@ -43,4 +43,4 @@ jobs: (cd http-echo-server && npm install && npm start &) - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-client-echo-api-jdk17.yaml b/.github/workflows/samples-java-client-echo-api-jdk17.yaml index 3c193ea204f..670f4619526 100644 --- a/.github/workflows/samples-java-client-echo-api-jdk17.yaml +++ b/.github/workflows/samples-java-client-echo-api-jdk17.yaml @@ -39,4 +39,4 @@ jobs: (cd http-echo-server && npm install && npm start &) - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-client-echo-api-jdk8.yaml b/.github/workflows/samples-java-client-echo-api-jdk8.yaml index 2c5cbb93711..40deef1c721 100644 --- a/.github/workflows/samples-java-client-echo-api-jdk8.yaml +++ b/.github/workflows/samples-java-client-echo-api-jdk8.yaml @@ -50,4 +50,4 @@ jobs: (cd http-echo-server && npm install && npm start &) - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-client-jdk11.yaml b/.github/workflows/samples-java-client-jdk11.yaml index 15994e5b749..6c002712d01 100644 --- a/.github/workflows/samples-java-client-jdk11.yaml +++ b/.github/workflows/samples-java-client-jdk11.yaml @@ -97,4 +97,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-client-jdk17.yaml b/.github/workflows/samples-java-client-jdk17.yaml index b43fee7981c..04e261cad6f 100644 --- a/.github/workflows/samples-java-client-jdk17.yaml +++ b/.github/workflows/samples-java-client-jdk17.yaml @@ -42,7 +42,7 @@ jobs: - name: Build with Maven working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress - name: Cache gradle dependencies uses: actions/cache@v4 diff --git a/.github/workflows/samples-java-helidon-v3.yaml b/.github/workflows/samples-java-helidon-v3.yaml index 7f2bce545c7..976c7f59cb7 100644 --- a/.github/workflows/samples-java-helidon-v3.yaml +++ b/.github/workflows/samples-java-helidon-v3.yaml @@ -38,4 +38,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-helidon-v4.yaml b/.github/workflows/samples-java-helidon-v4.yaml index 3b2bc66ec90..b13977d4691 100644 --- a/.github/workflows/samples-java-helidon-v4.yaml +++ b/.github/workflows/samples-java-helidon-v4.yaml @@ -36,4 +36,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-play-framework.yaml b/.github/workflows/samples-java-play-framework.yaml index f4e6d8e8597..bab74f9d3d0 100644 --- a/.github/workflows/samples-java-play-framework.yaml +++ b/.github/workflows/samples-java-play-framework.yaml @@ -44,4 +44,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-server-jdk8.yaml b/.github/workflows/samples-java-server-jdk8.yaml index 56694212c96..18d7ad222d5 100644 --- a/.github/workflows/samples-java-server-jdk8.yaml +++ b/.github/workflows/samples-java-server-jdk8.yaml @@ -50,4 +50,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-java-wiremock.yaml b/.github/workflows/samples-java-wiremock.yaml index 4398c723236..7ce35801516 100644 --- a/.github/workflows/samples-java-wiremock.yaml +++ b/.github/workflows/samples-java-wiremock.yaml @@ -32,4 +32,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-jaxrs-jdk11.yaml b/.github/workflows/samples-jaxrs-jdk11.yaml index 0af4e77544a..a11a93e5134 100644 --- a/.github/workflows/samples-jaxrs-jdk11.yaml +++ b/.github/workflows/samples-jaxrs-jdk11.yaml @@ -33,4 +33,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-jaxrs.yaml b/.github/workflows/samples-jaxrs.yaml index 3e709c111d9..70f0346045d 100644 --- a/.github/workflows/samples-jaxrs.yaml +++ b/.github/workflows/samples-jaxrs.yaml @@ -53,4 +53,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-jdk17.yaml b/.github/workflows/samples-jdk17.yaml index f013cd851c0..b8506febb79 100644 --- a/.github/workflows/samples-jdk17.yaml +++ b/.github/workflows/samples-jdk17.yaml @@ -63,4 +63,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-jdk21.yaml b/.github/workflows/samples-jdk21.yaml index e09a4485348..9910b86a0eb 100644 --- a/.github/workflows/samples-jdk21.yaml +++ b/.github/workflows/samples-jdk21.yaml @@ -40,4 +40,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-spring-jdk17.yaml b/.github/workflows/samples-spring-jdk17.yaml index b78083f4e61..1fe369ec550 100644 --- a/.github/workflows/samples-spring-jdk17.yaml +++ b/.github/workflows/samples-spring-jdk17.yaml @@ -4,9 +4,11 @@ on: push: paths: - samples/openapi3/client/petstore/spring-cloud-3-with-optional + - samples/openapi3/server/petstore/springboot-3 pull_request: paths: - samples/openapi3/client/petstore/spring-cloud-3-with-optional + - samples/openapi3/server/petstore/springboot-3 - samples/server/petstore/springboot-lombok-data - samples/server/petstore/springboot-lombok-tostring jobs: @@ -20,6 +22,7 @@ jobs: # clients - samples/openapi3/client/petstore/spring-cloud-3-with-optional # servers + - samples/openapi3/server/petstore/springboot-3 - samples/server/petstore/springboot-lombok-data - samples/server/petstore/springboot-lombok-tostring steps: @@ -38,4 +41,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/.github/workflows/samples-spring.yaml b/.github/workflows/samples-spring.yaml index 598b59b163d..7b114a35ae9 100644 --- a/.github/workflows/samples-spring.yaml +++ b/.github/workflows/samples-spring.yaml @@ -25,40 +25,40 @@ jobs: sample: # clients - samples/client/petstore/spring-cloud - - samples/openapi3/client/petstore/spring-cloud + - samples/client/petstore/spring-cloud-auth - samples/client/petstore/spring-cloud-date-time + - samples/client/petstore/spring-cloud-deprecated + - samples/client/petstore/spring-cloud-tags + - samples/openapi3/client/petstore/spring-cloud + - samples/openapi3/client/petstore/spring-cloud-async - samples/openapi3/client/petstore/spring-cloud-date-time - samples/openapi3/client/petstore/spring-cloud-http-basic + - samples/openapi3/client/petstore/spring-cloud-spring-pageable - samples/openapi3/client/petstore/spring-stubs - samples/openapi3/client/petstore/spring-stubs-skip-default-interface - - samples/openapi3/client/petstore/spring-cloud-async - - samples/openapi3/client/petstore/spring-cloud-spring-pageable - - samples/client/petstore/spring-cloud-tags - - samples/client/petstore/spring-cloud-auth - - samples/client/petstore/spring-cloud-deprecated # servers - - samples/server/petstore/springboot - samples/openapi3/server/petstore/springboot - - samples/server/petstore/springboot-beanvalidation - - samples/server/petstore/springboot-useoptional - - samples/server/petstore/springboot-reactive - - samples/server/petstore/springboot-reactive-noResponseEntity - - samples/server/petstore/springboot-implicitHeaders - samples/openapi3/server/petstore/springboot-implicitHeaders - - samples/server/petstore/springboot-delegate - - samples/server/petstore/springboot-delegate-no-response-entity - samples/openapi3/server/petstore/springboot-delegate + - samples/openapi3/server/petstore/spring-boot-oneof - samples/server/petstore/spring-boot-nullable-set - samples/server/petstore/spring-boot-defaultInterface-unhandledException - - samples/openapi3/server/petstore/spring-boot-oneof - - samples/server/petstore/springboot-virtualan + - samples/server/petstore/springboot + - samples/server/petstore/springboot-beanvalidation + - samples/server/petstore/springboot-delegate + - samples/server/petstore/springboot-delegate-no-response-entity + - samples/server/petstore/springboot-implicitHeaders - samples/server/petstore/springboot-implicitHeaders-annotationLibrary + - samples/server/petstore/springboot-lombok-data + - samples/server/petstore/springboot-reactive + - samples/server/petstore/springboot-reactive-noResponseEntity - samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8 - samples/server/petstore/springboot-spring-pageable-delegatePattern - samples/server/petstore/springboot-spring-pageable-without-j8 - samples/server/petstore/springboot-spring-pageable - samples/server/petstore/springboot-spring-provide-args - - samples/server/petstore/springboot-lombok-data + - samples/server/petstore/springboot-useoptional + - samples/server/petstore/springboot-virtualan steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -75,4 +75,4 @@ jobs: key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - name: Build working-directory: ${{ matrix.sample }} - run: mvn clean package + run: mvn clean package --no-transfer-progress diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/javaBuilder.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/javaBuilder.mustache index 9f369e65cfc..c210b33e7fe 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/javaBuilder.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/javaBuilder.mustache @@ -28,9 +28,6 @@ this.instance.{{name}}({{name}}); return this; } - {{#deprecated}} - @Deprecated - {{/deprecated}} {{#openApiNullable}}{{#isNullable}} public {{classname}}.Builder {{name}}(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) { this.instance.{{name}} = {{name}}; 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 e00f2b6bb72..3f233f0273c 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 @@ -4980,4 +4980,26 @@ public class SpringCodegenTest { .hasAnnotation("JacksonXmlProperty", Map.of("localName", "\"item\"")) .hasAnnotation("JacksonXmlElementWrapper", Map.of("localName", "\"activities-array\"")); } + + /** + * Regression test for #12804 + */ + @Test public void shouldGenerateSingleDeprecatedAnnotation() { + final var tempDir = TestUtils.newTempFolder(); + final CodegenConfigurator configurator = new CodegenConfigurator() + .addAdditionalProperty(GENERATE_BUILDERS, true) + .addGlobalProperty(CodegenConstants.MODELS, "Pet") + .setInputSpec("src/test/resources/3_0/petstore.yaml") + .setGeneratorName("spring") + .setOutputDir(tempDir.toString()); + + new DefaultGenerator().opts(configurator.toClientOptInput()).generate(); + + JavaFileAssert.assertThat(tempDir.resolve("src/main/java/org/openapitools/model/Pet.java")) + .assertInnerClass("Builder") + .assertMethod("status").hasAnnotation("Deprecated") + .toInnerClassAssert() + .assertMethod("build") + .doesNotHaveAnnotation("Deprecated"); + } } diff --git a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java index 70282d91a2a..aca357d364e 100644 --- a/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java +++ b/samples/openapi3/server/petstore/springboot-3/src/main/java/org/openapitools/model/Pet.java @@ -368,7 +368,6 @@ public class Pet { this.instance.status(status); return this; } - @Deprecated /** * returns a built Pet instance. diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java index ab9ee06e6cd..c5f378449de 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/model/Pet.java @@ -337,7 +337,6 @@ public class Pet { this.instance.status(status); return this; } - @Deprecated /** * returns a built Pet instance.