From c7b600b03c91b4e2fd1ab6769e31fd76fb841036 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Sun, 6 Feb 2022 17:53:59 +0100 Subject: [PATCH 01/16] Add default value support to cookie and header params --- .../src/main/resources/JavaSpring/cookieParams.mustache | 2 +- .../src/main/resources/JavaSpring/headerParams.mustache | 2 +- .../3_0/spring/date-time-parameter-types-for-testing.yml | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/cookieParams.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/cookieParams.mustache index a4fe15cb9c2a..aac48b887c81 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/cookieParams.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/cookieParams.mustache @@ -1 +1 @@ -{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{>paramDoc}} @CookieValue("{{baseName}}"){{>dateTimeParam}} {{>optionalDataType}} {{paramName}}{{/isCookieParam}} \ No newline at end of file +{{#isCookieParam}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{>paramDoc}} @CookieValue(name="{{baseName}}"{{^isContainer}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}{{/isContainer}}){{>dateTimeParam}} {{>optionalDataType}} {{paramName}}{{/isCookieParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/headerParams.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/headerParams.mustache index 54891a27d570..c0e8053a7256 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/headerParams.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}{{>paramDoc}} @RequestHeader(value = "{{baseName}}", required = {{#required}}true{{/required}}{{^required}}false{{/required}}){{>dateTimeParam}} {{>optionalDataType}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}{{>paramDoc}} @RequestHeader(value = "{{baseName}}", required = {{#required}}true{{/required}}{{^required}}false{{/required}}{{^isContainer}}{{#defaultValue}}, defaultValue = "{{{.}}}"{{/defaultValue}}{{/isContainer}}){{>dateTimeParam}} {{>optionalDataType}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml b/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml index f32cd9142666..eb10e635e958 100644 --- a/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml +++ b/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml @@ -16,6 +16,7 @@ paths: schema: type: string format: date + default: '1970-01-01' example: '2021-01-01' responses: '405': @@ -29,6 +30,7 @@ paths: visitDate: description: Updated last vist timestamp type: string + default: '1971-12-19T03:39:57-08:00' format: date-time get: operationId: get @@ -40,6 +42,7 @@ paths: schema: type: string format: date + default: '1972-01-01' example: '2021-01-01' - name: dateTime description: 'A date-time query parameter' @@ -48,6 +51,7 @@ paths: schema: type: string format: date-time + default: '1973-12-19T03:39:57-08:00' example: '1996-12-19T16:39:57-08:00' - name: X-Order-Date in: header @@ -56,6 +60,7 @@ paths: schema: type: string format: date + default: '1974-01-01' example: '2021-01-01' - name: loginDate in: cookie @@ -64,6 +69,7 @@ paths: schema: type: string format: date + default: '1975-01-01' example: '2021-01-01' responses: '200': From 0128d267a53d26b4d504a5a92950af05737402d0 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Sun, 6 Feb 2022 18:08:31 +0100 Subject: [PATCH 02/16] Generate Samples --- .../.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../.openapi-generator/VERSION | 2 +- .../java/org/openapitools/api/DefaultApi.java | 16 ++++++++-------- .../java/org/openapitools/api/DefaultApi.java | 10 +++++----- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeApiController.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/TestHeadersApi.java | 12 ++++++------ .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeApiController.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeApiController.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/api/FakeApiController.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- .../org/openapitools/virtualan/api/FakeApi.java | 2 +- .../main/java/org/openapitools/api/FakeApi.java | 2 +- 32 files changed, 48 insertions(+), 48 deletions(-) diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0-nrt/.openapi-generator/VERSION b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0-nrt/.openapi-generator/VERSION index 0984c4c1ad21..5f68295fc196 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0-nrt/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0-nrt/.openapi-generator/VERSION @@ -1 +1 @@ -5.4.0-SNAPSHOT \ No newline at end of file +6.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0/.openapi-generator/VERSION b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0/.openapi-generator/VERSION index 0984c4c1ad21..5f68295fc196 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-net6.0/.openapi-generator/VERSION @@ -1 +1 @@ -5.4.0-SNAPSHOT \ No newline at end of file +6.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-netstandard2.0/.openapi-generator/VERSION b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-netstandard2.0/.openapi-generator/VERSION index 0984c4c1ad21..5f68295fc196 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-netstandard2.0/.openapi-generator/VERSION +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-generichost-netstandard2.0/.openapi-generator/VERSION @@ -1 +1 @@ -5.4.0-SNAPSHOT \ No newline at end of file +6.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index a5eceee230ad..5665ab5e2bd0 100644 --- a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -35,7 +35,7 @@ public interface DefaultApi { * @param date A date path parameter (required) * @param dateTime A date-time query parameter (required) * @param xOrderDate A date header parameter (required) - * @param loginDate A date cookie parameter (optional) + * @param loginDate A date cookie parameter (optional, default to Wed Jan 01 00:00:00 UTC 1975) * @return OK (status code 200) */ @ApiOperation( @@ -52,10 +52,10 @@ public interface DefaultApi { value = "/thingy/{date}" ) ResponseEntity get( - @ApiParam(value = "A date path parameter", required = true) @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @NotNull @ApiParam(value = "A date-time query parameter", required = true) @Valid @RequestParam(value = "dateTime", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, - @ApiParam(value = "A date header parameter", required = true) @RequestHeader(value = "X-Order-Date", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, - @ApiParam(value = "A date cookie parameter") @CookieValue("loginDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate + @ApiParam(value = "A date path parameter", required = true, defaultValue = "Sat Jan 01 00:00:00 UTC 1972") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, + @NotNull @ApiParam(value = "A date-time query parameter", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, + @ApiParam(value = "A date header parameter", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, + @ApiParam(value = "A date cookie parameter", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @CookieValue(name="loginDate", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate ); @@ -64,7 +64,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional) + * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @return Invalid input (status code 405) */ @ApiOperation( @@ -82,8 +82,8 @@ ResponseEntity get( consumes = "application/x-www-form-urlencoded" ) ResponseEntity updatePetWithForm( - @ApiParam(value = "A date path parameter", required = true) @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @ApiParam(value = "Updated last vist timestamp") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate + @ApiParam(value = "A date path parameter", required = true, defaultValue = "Thu Jan 01 00:00:00 UTC 1970") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, + @ApiParam(value = "Updated last vist timestamp", defaultValue = "OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate ); } diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index e849c4697f96..fda4b38308ad 100644 --- a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -42,7 +42,7 @@ public interface DefaultApi { * @param date A date path parameter (required) * @param dateTime A date-time query parameter (required) * @param xOrderDate A date header parameter (required) - * @param loginDate A date cookie parameter (optional) + * @param loginDate A date cookie parameter (optional, default to Wed Jan 01 00:00:00 UTC 1975) * @return OK (status code 200) */ @Operation( @@ -57,9 +57,9 @@ public interface DefaultApi { ) ResponseEntity get( @Parameter(name = "date", description = "A date path parameter", required = true) @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @NotNull @Parameter(name = "dateTime", description = "A date-time query parameter", required = true) @Valid @RequestParam(value = "dateTime", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, - @Parameter(name = "X-Order-Date", description = "A date header parameter", required = true) @RequestHeader(value = "X-Order-Date", required = true) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, - @Parameter(name = "loginDate", description = "A date cookie parameter") @CookieValue("loginDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate + @NotNull @Parameter(name = "dateTime", description = "A date-time query parameter", required = true) @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, + @Parameter(name = "X-Order-Date", description = "A date header parameter", required = true) @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, + @Parameter(name = "loginDate", description = "A date cookie parameter") @CookieValue(name="loginDate", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate ); @@ -68,7 +68,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional) + * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @return Invalid input (status code 405) */ @Operation( diff --git a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/api/FakeApi.java b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/api/FakeApi.java index 72370cfbf04e..0b9d5abc30c9 100644 --- a/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/openapi3/client/petstore/spring-cloud-oas3-fakeapi/src/main/java/org/openapitools/api/FakeApi.java @@ -336,7 +336,7 @@ ResponseEntity testEndpointParameters( ) ResponseEntity testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java index f1a1b951814b..637f2626e5f5 100644 --- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java @@ -333,7 +333,7 @@ ResponseEntity testEndpointParameters( ) ResponseEntity testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java index 57fb48219922..063b134e81af 100644 --- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java @@ -247,7 +247,7 @@ public ResponseEntity testEndpointParameters( */ public ResponseEntity testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java index edf8d40bf875..1d9618ba3402 100644 --- a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java @@ -355,7 +355,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java index f56335a4cc60..1f7146f4ccf9 100644 --- a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java @@ -368,7 +368,7 @@ default Mono> testEndpointParameters( ) default Mono> testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java index 913d949c27c6..667afd829c1f 100644 --- a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java @@ -386,7 +386,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @Parameter(name = "enum_header_string_array", description = "Header parameter enum test (string array)") @RequestHeader(value = "enum_header_string_array", required = false) Optional> enumHeaderStringArray, - @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false) Optional enumHeaderString, + @Parameter(name = "enum_header_string", description = "Header parameter enum test (string)") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") Optional enumHeaderString, @Parameter(name = "enum_query_string_array", description = "Query parameter enum test (string array)") @Valid @RequestParam(value = "enum_query_string_array", required = false) Optional> enumQueryStringArray, @Parameter(name = "enum_query_string", description = "Query parameter enum test (string)") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") Optional enumQueryString, @Parameter(name = "enum_query_integer", description = "Query parameter enum test (double)") @Valid @RequestParam(value = "enum_query_integer", required = false) Optional enumQueryInteger, diff --git a/samples/server/petstore/spring-mvc-default-value/src/main/java/org/openapitools/api/TestHeadersApi.java b/samples/server/petstore/spring-mvc-default-value/src/main/java/org/openapitools/api/TestHeadersApi.java index c5c8cb9db6b6..c05f7a3be323 100644 --- a/samples/server/petstore/spring-mvc-default-value/src/main/java/org/openapitools/api/TestHeadersApi.java +++ b/samples/server/petstore/spring-mvc-default-value/src/main/java/org/openapitools/api/TestHeadersApi.java @@ -60,12 +60,12 @@ default Optional getRequest() { produces = { "application/json" } ) default ResponseEntity headersTest( - @ApiParam(value = "", defaultValue = "11.2") @RequestHeader(value = "headerNumber", required = false) BigDecimal headerNumber, - @ApiParam(value = "", defaultValue = "qwerty") @RequestHeader(value = "headerString", required = false) String headerString, - @ApiParam(value = "", defaultValue = "qwerty") @RequestHeader(value = "headerStringWrapped", required = false) String headerStringWrapped, - @ApiParam(value = "", defaultValue = "qwerty\"with quotes\" test") @RequestHeader(value = "headerStringQuotes", required = false) String headerStringQuotes, - @ApiParam(value = "", defaultValue = "qwerty\"with quotes\" test") @RequestHeader(value = "headerStringQuotesWrapped", required = false) String headerStringQuotesWrapped, - @ApiParam(value = "", defaultValue = "true") @RequestHeader(value = "headerBoolean", required = false) Boolean headerBoolean + @ApiParam(value = "", defaultValue = "11.2") @RequestHeader(value = "headerNumber", required = false, defaultValue = "11.2") BigDecimal headerNumber, + @ApiParam(value = "", defaultValue = "qwerty") @RequestHeader(value = "headerString", required = false, defaultValue = "qwerty") String headerString, + @ApiParam(value = "", defaultValue = "qwerty") @RequestHeader(value = "headerStringWrapped", required = false, defaultValue = "qwerty") String headerStringWrapped, + @ApiParam(value = "", defaultValue = "qwerty\"with quotes\" test") @RequestHeader(value = "headerStringQuotes", required = false, defaultValue = "qwerty\"with quotes\" test") String headerStringQuotes, + @ApiParam(value = "", defaultValue = "qwerty\"with quotes\" test") @RequestHeader(value = "headerStringQuotesWrapped", required = false, defaultValue = "qwerty\"with quotes\" test") String headerStringQuotesWrapped, + @ApiParam(value = "", defaultValue = "true") @RequestHeader(value = "headerBoolean", required = false, defaultValue = "true") Boolean headerBoolean ) { getRequest().ifPresent(request -> { for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) { diff --git a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java index 7ba8b909b75c..792e526a2bcf 100644 --- a/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-async/src/main/java/org/openapitools/api/FakeApi.java @@ -395,7 +395,7 @@ default CompletableFuture> testEndpointParameters( ) default CompletableFuture> testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java index 120768241aab..32e0a657f508 100644 --- a/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-j8-localdatetime/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/spring-mvc-no-nullable/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-no-nullable/src/main/java/org/openapitools/api/FakeApi.java index 931b578b1bb2..27ddf876c5ec 100644 --- a/samples/server/petstore/spring-mvc-no-nullable/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-no-nullable/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/spring-mvc-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java index cc5153750810..a1e3a9409b88 100644 --- a/samples/server/petstore/spring-mvc-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java index 931b578b1bb2..27ddf876c5ec 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java index b79564992a90..515fd7a58630 100644 --- a/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApi.java @@ -337,7 +337,7 @@ ResponseEntity testEndpointParameters( ) ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java index af7c65420e5e..af57bb1ba147 100644 --- a/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/api/FakeApiController.java @@ -239,7 +239,7 @@ public ResponseEntity testEndpointParameters( */ public ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java index 931b578b1bb2..27ddf876c5ec 100644 --- a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java index 533c7a2f5e5d..a5333fbd9406 100644 --- a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/api/FakeApi.java @@ -359,7 +359,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java index 533c7a2f5e5d..a5333fbd9406 100644 --- a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/api/FakeApi.java @@ -359,7 +359,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java index 07bfb0f09ef1..e2d96056fc10 100644 --- a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/api/FakeApi.java @@ -373,7 +373,7 @@ default Mono> testEndpointParameters( ) default Mono> testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApi.java index 8073eb77d42a..571fdaae7e00 100644 --- a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApi.java @@ -337,7 +337,7 @@ ResponseEntity testEndpointParameters( ) ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApiController.java index 72efadd118c2..cb0f7235e9f3 100644 --- a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/api/FakeApiController.java @@ -214,7 +214,7 @@ public ResponseEntity testEndpointParameters( */ public ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/api/FakeApi.java index 981e48b19f9e..c6cc95368d85 100644 --- a/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/api/FakeApi.java @@ -359,7 +359,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApi.java index 8073eb77d42a..571fdaae7e00 100644 --- a/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApi.java @@ -337,7 +337,7 @@ ResponseEntity testEndpointParameters( ) ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApiController.java b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApiController.java index b20266d1f871..4ba42b796883 100644 --- a/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApiController.java +++ b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/api/FakeApiController.java @@ -239,7 +239,7 @@ public ResponseEntity testEndpointParameters( */ public ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java index cc5153750810..a1e3a9409b88 100644 --- a/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java index 2c10b623a186..4b806b0e2a7b 100644 --- a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) Optional> enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) Optional enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") Optional enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) Optional> enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") Optional enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Optional enumQueryInteger, diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java index 2debe4a30e31..b5c1ccf740ac 100644 --- a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/virtualan/api/FakeApi.java @@ -403,7 +403,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java index 931b578b1bb2..27ddf876c5ec 100644 --- a/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/api/FakeApi.java @@ -390,7 +390,7 @@ default ResponseEntity testEndpointParameters( ) default ResponseEntity testEnumParameters( @ApiParam(value = "Header parameter enum test (string array)", allowableValues = ">, $") @RequestHeader(value = "enum_header_string_array", required = false) List enumHeaderStringArray, - @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false) String enumHeaderString, + @ApiParam(value = "Header parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @RequestHeader(value = "enum_header_string", required = false, defaultValue = "-efg") String enumHeaderString, @ApiParam(value = "Query parameter enum test (string array)", allowableValues = ">, $") @Valid @RequestParam(value = "enum_query_string_array", required = false) List enumQueryStringArray, @ApiParam(value = "Query parameter enum test (string)", allowableValues = "_abc, -efg, (xyz)", defaultValue = "-efg") @Valid @RequestParam(value = "enum_query_string", required = false, defaultValue = "-efg") String enumQueryString, @ApiParam(value = "Query parameter enum test (double)", allowableValues = "1, -2") @Valid @RequestParam(value = "enum_query_integer", required = false) Integer enumQueryInteger, From 2e37411b305343e99542c094a691e1419a67b1b5 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 10:20:55 +0100 Subject: [PATCH 03/16] Replace "OffsetDateTime.parse(..)" with toString(); --- .../org/openapitools/codegen/languages/AbstractJavaCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index ed493454fd34..7d4fe690d6df 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -981,7 +981,7 @@ public String toDefaultValue(Schema schema) { LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); return String.format(Locale.ROOT, localDate.toString(), ""); } else if (schema.getDefault() instanceof java.time.OffsetDateTime) { - return "OffsetDateTime.parse(\"" + String.format(Locale.ROOT, ((java.time.OffsetDateTime) schema.getDefault()).atZoneSameInstant(ZoneId.systemDefault()).toString(), "") + "\", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"; + return ((java.time.OffsetDateTime) schema.getDefault()).toString(); } else { _default = (String) schema.getDefault(); } From ff6c96fb5c6fb2cf85f9c6508d6bd965daea19ab Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 10:21:32 +0100 Subject: [PATCH 04/16] Generate Samples --- .../petstore/java/okhttp-gson-nextgen/docs/FakeApi.md | 4 ++-- .../main/java/org/openapitools/client/api/FakeApi.java | 8 ++++---- .../src/main/java/org/openapitools/api/DefaultApi.java | 4 ++-- .../client/petstore/java/jersey2-java8/docs/FakeApi.md | 4 ++-- .../main/java/org/openapitools/client/api/FakeApi.java | 4 ++-- .../src/main/java/org/openapitools/api/DefaultApi.java | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/samples/client/petstore/java/okhttp-gson-nextgen/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson-nextgen/docs/FakeApi.md index 505117ba63fa..b568525ecc19 100644 --- a/samples/client/petstore/java/okhttp-gson-nextgen/docs/FakeApi.md +++ b/samples/client/petstore/java/okhttp-gson-nextgen/docs/FakeApi.md @@ -511,7 +511,7 @@ public class Example { String string = "string_example"; // String | None File binary = new File("/path/to/file"); // File | None LocalDate date = LocalDate.now(); // LocalDate | None - OffsetDateTime dateTime = OffsetDateTime.parse("OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"); // OffsetDateTime | None + OffsetDateTime dateTime = OffsetDateTime.parse("2010-02-01T10:20:10.111110+01:00"); // OffsetDateTime | None String password = "password_example"; // String | None String paramCallback = "paramCallback_example"; // String | None try { @@ -538,7 +538,7 @@ Name | Type | Description | Notes **string** | **String**| None | [optional] **binary** | **File**| None | [optional] **date** | **LocalDate**| None | [optional] - **dateTime** | **OffsetDateTime**| None | [optional] [default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))] + **dateTime** | **OffsetDateTime**| None | [optional] [default to 2010-02-01T10:20:10.111110+01:00] **password** | **String**| None | [optional] **paramCallback** | **String**| None | [optional] diff --git a/samples/client/petstore/java/okhttp-gson-nextgen/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson-nextgen/src/main/java/org/openapitools/client/api/FakeApi.java index d413cd3e8291..677ab507c171 100644 --- a/samples/client/petstore/java/okhttp-gson-nextgen/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/okhttp-gson-nextgen/src/main/java/org/openapitools/client/api/FakeApi.java @@ -993,7 +993,7 @@ public okhttp3.Call testClientModelAsync(Client client, final ApiCallback testEndpointParametersWithHttpInfo(BigDecimal number, D * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @param _callback The callback to be executed when the API call finishes diff --git a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index 5665ab5e2bd0..cf219d287815 100644 --- a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -64,7 +64,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) * @return Invalid input (status code 405) */ @ApiOperation( @@ -83,7 +83,7 @@ ResponseEntity get( ) ResponseEntity updatePetWithForm( @ApiParam(value = "A date path parameter", required = true, defaultValue = "Thu Jan 01 00:00:00 UTC 1970") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @ApiParam(value = "Updated last vist timestamp", defaultValue = "OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate + @ApiParam(value = "Updated last vist timestamp", defaultValue = "1971-12-19T03:39:57-08:00") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate ); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md index def65c4c88eb..ababec062295 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md +++ b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md @@ -643,7 +643,7 @@ public class Example { String string = "string_example"; // String | None File binary = new File("/path/to/file"); // File | None LocalDate date = LocalDate.now(); // LocalDate | None - OffsetDateTime dateTime = OffsetDateTime.parse("OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"); // OffsetDateTime | None + OffsetDateTime dateTime = OffsetDateTime.parse("2010-02-01T10:20:10.111110+01:00"); // OffsetDateTime | None String password = "password_example"; // String | None String paramCallback = "paramCallback_example"; // String | None try { @@ -675,7 +675,7 @@ Name | Type | Description | Notes **string** | **String**| None | [optional] **binary** | **File**| None | [optional] **date** | **LocalDate**| None | [optional] - **dateTime** | **OffsetDateTime**| None | [optional] [default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))] + **dateTime** | **OffsetDateTime**| None | [optional] [default to 2010-02-01T10:20:10.111110+01:00] **password** | **String**| None | [optional] **paramCallback** | **String**| None | [optional] diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java index 0b9970cb6b1c..129e896a7a3e 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java @@ -639,7 +639,7 @@ public ApiResponse testClientModelWithHttpInfo(Client client) throws Api * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @throws ApiException if fails to make API call @@ -668,7 +668,7 @@ public void testEndpointParameters(BigDecimal number, Double _double, String pat * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @return ApiResponse<Void> diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index fda4b38308ad..def589f6692d 100644 --- a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -68,7 +68,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) * @return Invalid input (status code 405) */ @Operation( From fffdc8322647a31606f9b8ecffd249b77cd1fc59 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 18:53:33 +0100 Subject: [PATCH 05/16] Revert "Replace "OffsetDateTime.parse(..)" with toString();" This reverts commit 2e37411b305343e99542c094a691e1419a67b1b5. --- .../org/openapitools/codegen/languages/AbstractJavaCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 7d4fe690d6df..ed493454fd34 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -981,7 +981,7 @@ public String toDefaultValue(Schema schema) { LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); return String.format(Locale.ROOT, localDate.toString(), ""); } else if (schema.getDefault() instanceof java.time.OffsetDateTime) { - return ((java.time.OffsetDateTime) schema.getDefault()).toString(); + return "OffsetDateTime.parse(\"" + String.format(Locale.ROOT, ((java.time.OffsetDateTime) schema.getDefault()).atZoneSameInstant(ZoneId.systemDefault()).toString(), "") + "\", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"; } else { _default = (String) schema.getDefault(); } From 89f7e314302dfb79a546c758f1cca7f9c4c7d11e Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 19:51:12 +0100 Subject: [PATCH 06/16] Format java.util.Date to ISO Date in AbstractJavaCodegen.toDefaultParameterValue --- .../openapitools/codegen/languages/AbstractJavaCodegen.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index ed493454fd34..04fcdd81a413 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1015,6 +1015,11 @@ public String toDefaultParameterValue(final Schema schema) { if (defaultValue == null) { return null; } + if (defaultValue instanceof Date) { + Date date = (Date) schema.getDefault(); + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + return localDate.toString(); + } // escape quotes return defaultValue.toString().replace("\"", "\\\""); } From 8248eb737ecebeec20bffacb7ca1f2f8696a468b Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 19:51:26 +0100 Subject: [PATCH 07/16] Generate Samples --- .../main/java/org/openapitools/api/DefaultApi.java | 14 +++++++------- .../main/java/org/openapitools/api/DefaultApi.java | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index cf219d287815..6c5f3542b547 100644 --- a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -35,7 +35,7 @@ public interface DefaultApi { * @param date A date path parameter (required) * @param dateTime A date-time query parameter (required) * @param xOrderDate A date header parameter (required) - * @param loginDate A date cookie parameter (optional, default to Wed Jan 01 00:00:00 UTC 1975) + * @param loginDate A date cookie parameter (optional, default to 1975-01-01) * @return OK (status code 200) */ @ApiOperation( @@ -52,10 +52,10 @@ public interface DefaultApi { value = "/thingy/{date}" ) ResponseEntity get( - @ApiParam(value = "A date path parameter", required = true, defaultValue = "Sat Jan 01 00:00:00 UTC 1972") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, + @ApiParam(value = "A date path parameter", required = true, defaultValue = "1972-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, @NotNull @ApiParam(value = "A date-time query parameter", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, - @ApiParam(value = "A date header parameter", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, - @ApiParam(value = "A date cookie parameter", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @CookieValue(name="loginDate", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate + @ApiParam(value = "A date header parameter", required = true, defaultValue = "1974-01-01") @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "1974-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, + @ApiParam(value = "A date cookie parameter", defaultValue = "1975-01-01") @CookieValue(name="loginDate", defaultValue = "1975-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate ); @@ -64,7 +64,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) + * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @return Invalid input (status code 405) */ @ApiOperation( @@ -82,8 +82,8 @@ ResponseEntity get( consumes = "application/x-www-form-urlencoded" ) ResponseEntity updatePetWithForm( - @ApiParam(value = "A date path parameter", required = true, defaultValue = "Thu Jan 01 00:00:00 UTC 1970") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @ApiParam(value = "Updated last vist timestamp", defaultValue = "1971-12-19T03:39:57-08:00") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate + @ApiParam(value = "A date path parameter", required = true, defaultValue = "1970-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, + @ApiParam(value = "Updated last vist timestamp", defaultValue = "OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate ); } diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index def589f6692d..f59d38f96b3e 100644 --- a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -42,7 +42,7 @@ public interface DefaultApi { * @param date A date path parameter (required) * @param dateTime A date-time query parameter (required) * @param xOrderDate A date header parameter (required) - * @param loginDate A date cookie parameter (optional, default to Wed Jan 01 00:00:00 UTC 1975) + * @param loginDate A date cookie parameter (optional, default to 1975-01-01) * @return OK (status code 200) */ @Operation( @@ -58,8 +58,8 @@ public interface DefaultApi { ResponseEntity get( @Parameter(name = "date", description = "A date path parameter", required = true) @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, @NotNull @Parameter(name = "dateTime", description = "A date-time query parameter", required = true) @Valid @RequestParam(value = "dateTime", required = true, defaultValue = "1973-12-19T03:39:57-08:00") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime dateTime, - @Parameter(name = "X-Order-Date", description = "A date header parameter", required = true) @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "Tue Jan 01 00:00:00 UTC 1974") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, - @Parameter(name = "loginDate", description = "A date cookie parameter") @CookieValue(name="loginDate", defaultValue = "Wed Jan 01 00:00:00 UTC 1975") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate + @Parameter(name = "X-Order-Date", description = "A date header parameter", required = true) @RequestHeader(value = "X-Order-Date", required = true, defaultValue = "1974-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate xOrderDate, + @Parameter(name = "loginDate", description = "A date cookie parameter") @CookieValue(name="loginDate", defaultValue = "1975-01-01") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate loginDate ); @@ -68,7 +68,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) + * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @return Invalid input (status code 405) */ @Operation( From 2ce1c8a84fbaf428f29cc5046c410e38acea16f2 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Mon, 7 Feb 2022 20:00:53 +0100 Subject: [PATCH 08/16] Generate Samples --- .../client/petstore/java/jersey2-java8/docs/FakeApi.md | 4 ++-- .../src/main/java/org/openapitools/client/api/FakeApi.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md index ababec062295..def65c4c88eb 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md +++ b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md @@ -643,7 +643,7 @@ public class Example { String string = "string_example"; // String | None File binary = new File("/path/to/file"); // File | None LocalDate date = LocalDate.now(); // LocalDate | None - OffsetDateTime dateTime = OffsetDateTime.parse("2010-02-01T10:20:10.111110+01:00"); // OffsetDateTime | None + OffsetDateTime dateTime = OffsetDateTime.parse("OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"); // OffsetDateTime | None String password = "password_example"; // String | None String paramCallback = "paramCallback_example"; // String | None try { @@ -675,7 +675,7 @@ Name | Type | Description | Notes **string** | **String**| None | [optional] **binary** | **File**| None | [optional] **date** | **LocalDate**| None | [optional] - **dateTime** | **OffsetDateTime**| None | [optional] [default to 2010-02-01T10:20:10.111110+01:00] + **dateTime** | **OffsetDateTime**| None | [optional] [default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))] **password** | **String**| None | [optional] **paramCallback** | **String**| None | [optional] diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java index 129e896a7a3e..0b9970cb6b1c 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java @@ -639,7 +639,7 @@ public ApiResponse testClientModelWithHttpInfo(Client client) throws Api * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) + * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @param password None (optional) * @param paramCallback None (optional) * @throws ApiException if fails to make API call @@ -668,7 +668,7 @@ public void testEndpointParameters(BigDecimal number, Double _double, String pat * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) + * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) * @param password None (optional) * @param paramCallback None (optional) * @return ApiResponse<Void> From 933662b8e4eb6c57f4502db3c105c464ce385771 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Tue, 8 Feb 2022 06:34:54 +0100 Subject: [PATCH 09/16] Use toParameterDefault() --- .../src/main/java/org/openapitools/codegen/DefaultCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 1ff9e2ddd095..e5b5908f0c94 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -6286,7 +6286,7 @@ public CodegenParameter fromFormProperty(String name, Schema propertySchema, Set codegenParameter.baseType = codegenProperty.baseType; codegenParameter.dataType = codegenProperty.dataType; - codegenParameter.defaultValue = codegenProperty.getDefaultValue(); + codegenParameter.defaultValue = toDefaultParameterValue(propertySchema); codegenParameter.baseName = codegenProperty.baseName; codegenParameter.paramName = toParamName(codegenParameter.baseName); codegenParameter.dataFormat = codegenProperty.dataFormat; From 30900b164bb61b8a36ec427d5c406435de6f4d04 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Tue, 8 Feb 2022 06:37:50 +0100 Subject: [PATCH 10/16] Generate Samples --- samples/client/petstore/java/okhttp-gson/docs/FakeApi.md | 4 ++-- .../main/java/org/openapitools/client/api/FakeApi.java | 8 ++++---- .../src/main/java/org/openapitools/api/DefaultApi.java | 4 ++-- .../client/petstore/java/jersey2-java8/docs/FakeApi.md | 4 ++-- .../main/java/org/openapitools/client/api/FakeApi.java | 4 ++-- .../src/main/java/org/openapitools/api/DefaultApi.java | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md index 3401bb6eeb03..fb4949cca705 100644 --- a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md +++ b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md @@ -605,7 +605,7 @@ public class Example { String string = "string_example"; // String | None File binary = new File("/path/to/file"); // File | None LocalDate date = LocalDate.now(); // LocalDate | None - OffsetDateTime dateTime = OffsetDateTime.parse("OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"); // OffsetDateTime | None + OffsetDateTime dateTime = OffsetDateTime.parse("2010-02-01T10:20:10.111110+01:00"); // OffsetDateTime | None String password = "password_example"; // String | None String paramCallback = "paramCallback_example"; // String | None try { @@ -636,7 +636,7 @@ Name | Type | Description | Notes **string** | **String**| None | [optional] **binary** | **File**| None | [optional] **date** | **LocalDate**| None | [optional] - **dateTime** | **OffsetDateTime**| None | [optional] [default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))] + **dateTime** | **OffsetDateTime**| None | [optional] [default to 2010-02-01T10:20:10.111110+01:00] **password** | **String**| None | [optional] **paramCallback** | **String**| None | [optional] diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java index 90c0357a07be..14c94cad00f9 100644 --- a/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/okhttp-gson/src/main/java/org/openapitools/client/api/FakeApi.java @@ -1238,7 +1238,7 @@ public okhttp3.Call testClientModelAsync(Client client, final ApiCallback testEndpointParametersWithHttpInfo(BigDecimal number, D * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @param _callback The callback to be executed when the API call finishes diff --git a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index 6c5f3542b547..135976eec0f5 100644 --- a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -64,7 +64,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) * @return Invalid input (status code 405) */ @ApiOperation( @@ -83,7 +83,7 @@ ResponseEntity get( ) ResponseEntity updatePetWithForm( @ApiParam(value = "A date path parameter", required = true, defaultValue = "1970-01-01") @PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date, - @ApiParam(value = "Updated last vist timestamp", defaultValue = "OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate + @ApiParam(value = "Updated last vist timestamp", defaultValue = "1971-12-19T03:39:57-08:00") @RequestParam(value="visitDate", required=false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) OffsetDateTime visitDate ); } diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md index def65c4c88eb..ababec062295 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md +++ b/samples/openapi3/client/petstore/java/jersey2-java8/docs/FakeApi.md @@ -643,7 +643,7 @@ public class Example { String string = "string_example"; // String | None File binary = new File("/path/to/file"); // File | None LocalDate date = LocalDate.now(); // LocalDate | None - OffsetDateTime dateTime = OffsetDateTime.parse("OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"); // OffsetDateTime | None + OffsetDateTime dateTime = OffsetDateTime.parse("2010-02-01T10:20:10.111110+01:00"); // OffsetDateTime | None String password = "password_example"; // String | None String paramCallback = "paramCallback_example"; // String | None try { @@ -675,7 +675,7 @@ Name | Type | Description | Notes **string** | **String**| None | [optional] **binary** | **File**| None | [optional] **date** | **LocalDate**| None | [optional] - **dateTime** | **OffsetDateTime**| None | [optional] [default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))] + **dateTime** | **OffsetDateTime**| None | [optional] [default to 2010-02-01T10:20:10.111110+01:00] **password** | **String**| None | [optional] **paramCallback** | **String**| None | [optional] diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java index 0b9970cb6b1c..129e896a7a3e 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/api/FakeApi.java @@ -639,7 +639,7 @@ public ApiResponse testClientModelWithHttpInfo(Client client) throws Api * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @throws ApiException if fails to make API call @@ -668,7 +668,7 @@ public void testEndpointParameters(BigDecimal number, Double _double, String pat * @param string None (optional) * @param binary None (optional) * @param date None (optional) - * @param dateTime None (optional, default to OffsetDateTime.parse("2010-02-01T09:20:10.111110Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param dateTime None (optional, default to 2010-02-01T10:20:10.111110+01:00) * @param password None (optional) * @param paramCallback None (optional) * @return ApiResponse<Void> diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java index f59d38f96b3e..ed5b8f7d7843 100644 --- a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/api/DefaultApi.java @@ -68,7 +68,7 @@ ResponseEntity get( * update with form data * * @param date A date path parameter (required) - * @param visitDate Updated last vist timestamp (optional, default to OffsetDateTime.parse("1971-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))) + * @param visitDate Updated last vist timestamp (optional, default to 1971-12-19T03:39:57-08:00) * @return Invalid input (status code 405) */ @Operation( From 6c68c488064f1e461e49a276c2a43ef8473e49f2 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Tue, 8 Feb 2022 07:03:21 +0100 Subject: [PATCH 11/16] Implement testDateTimeFormParameterHasDefaultValue unit test --- .../openapitools/codegen/DefaultCodegenTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java index 4e9fcd6397b4..7aec2aad6b0d 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java @@ -235,6 +235,20 @@ public void testFormParameterHasDefaultValue() { Assert.assertEquals(codegenParameter.getSchema(), null); } + @Test + public void testDateTimeFormParameterHasDefaultValue() { + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml"); + final DefaultCodegen codegen = new DefaultCodegen(); + codegen.setOpenAPI(openAPI); + + Schema requestBodySchema = ModelUtils.getSchemaFromRequestBody(openAPI.getPaths().get("/thingy/{date}").getPost().getRequestBody()); + CodegenParameter codegenParameter = codegen.fromFormProperty("visitDate", (Schema) requestBodySchema.getProperties().get("visitDate"), + new HashSet<>()); + + Assert.assertEquals(codegenParameter.defaultValue, "1971-12-19T03:39:57-08:00"); + Assert.assertEquals(codegenParameter.getSchema(), null); + } + @Test public void testOriginalOpenApiDocumentVersion() { // Test with OAS 2.0 document. From 2982b6d5ff59de40f6ba858fcc77112048c3ba2b Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Tue, 8 Feb 2022 08:14:56 +0100 Subject: [PATCH 12/16] Add more test coverage. --- .../codegen/java/AbstractJavaCodegenTest.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index 13160dc8cda0..bfa0f78dfcb4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -20,8 +20,11 @@ import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.*; +import java.util.HashSet; +import java.util.Set; import org.openapitools.codegen.CodegenConstants; import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenParameter; import org.openapitools.codegen.CodegenType; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.languages.AbstractJavaCodegen; @@ -594,6 +597,44 @@ public void toDefaultValueTest() { Assert.assertEquals(defaultValue, doubleValue + "d"); } + @Test + public void dateDefaultValueIsIsoDate() { + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml"); + final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + codegen.setOpenAPI(openAPI); + + Set imports = new HashSet<>(); + CodegenParameter parameter = codegen.fromParameter(openAPI.getPaths().get("/thingy/{date}").getGet().getParameters().get(2), imports); + + Assert.assertEquals(parameter.dataType, "Date"); + Assert.assertEquals(parameter.isDate, true); + Assert.assertEquals(parameter.defaultValue, "1974-01-01"); + Assert.assertEquals(imports.size(), 1); + Assert.assertEquals(imports.iterator().next(), "Date"); + + Assert.assertNotNull(parameter.getSchema()); + Assert.assertEquals(parameter.getSchema().baseType, "Date"); + } + + @Test + public void dateDefaultValueIsIsoDateTime() { + final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml"); + final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + codegen.setOpenAPI(openAPI); + + Set imports = new HashSet<>(); + CodegenParameter parameter = codegen.fromParameter(openAPI.getPaths().get("/thingy/{date}").getGet().getParameters().get(1), imports); + + Assert.assertEquals(parameter.dataType, "Date"); + Assert.assertEquals(parameter.isDateTime, true); + Assert.assertEquals(parameter.defaultValue, "1973-12-19T03:39:57-08:00"); + Assert.assertEquals(imports.size(), 1); + Assert.assertEquals(imports.iterator().next(), "Date"); + + Assert.assertNotNull(parameter.getSchema()); + Assert.assertEquals(parameter.getSchema().baseType, "Date"); + } + @Test public void getTypeDeclarationGivenImportMappingTest() { final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); From 2ec2f3b36450f21c912bbb292ec280df45727a5d Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Tue, 8 Feb 2022 20:13:17 +0100 Subject: [PATCH 13/16] Remove postProcessParameter() since is has no effect after using toDefaultParameterValue() --- .../languages/AbstractJavaCodegen.java | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 04fcdd81a413..4baeb5c86ed8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -1540,27 +1540,6 @@ public CodegenOperation fromOperation(String path, String httpMethod, Operation return op; } - @Override - public void postProcessParameter(CodegenParameter p) { - // we use a custom version of this function to remove the l, d, and f suffixes from Long/Double/Float - // defaultValues - // remove the l because our users will use Long.parseLong(String defaultValue) - // remove the d because our users will use Double.parseDouble(String defaultValue) - // remove the f because our users will use Float.parseFloat(String defaultValue) - // NOTE: for CodegenParameters we DO need these suffixes because those defaultValues are used as java value - // literals assigned to Long/Double/Float - if (p.defaultValue == null) { - return; - } - - Boolean fixLong = (p.isLong && "l".equals(p.defaultValue.substring(p.defaultValue.length()-1))); - Boolean fixDouble = (p.isDouble && "d".equals(p.defaultValue.substring(p.defaultValue.length()-1))); - Boolean fixFloat = (p.isFloat && "f".equals(p.defaultValue.substring(p.defaultValue.length()-1))); - if (fixLong || fixDouble || fixFloat) { - p.defaultValue = p.defaultValue.substring(0, p.defaultValue.length()-1); - } - } - private static CodegenModel reconcileInlineEnums(CodegenModel codegenModel, CodegenModel parentCodegenModel) { // This generator uses inline classes to define enums, which breaks when // dealing with models that have subTypes. To clean this up, we will analyze From dd289b0b991d45d04e289c89e1bb6249d764c0d3 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Wed, 9 Feb 2022 06:54:24 +0100 Subject: [PATCH 14/16] Use LocalDate.parse() in toDefaultValue() --- .../languages/AbstractJavaCodegen.java | 2 +- .../codegen/java/AbstractJavaCodegenTest.java | 2 +- .../date-time-parameter-types-for-testing.yml | 30 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 4baeb5c86ed8..763edb56f01c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -979,7 +979,7 @@ public String toDefaultValue(Schema schema) { if (schema.getDefault() instanceof Date) { Date date = (Date) schema.getDefault(); LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - return String.format(Locale.ROOT, localDate.toString(), ""); + return String.format(Locale.ROOT, "LocalDate.parse(\"%s\")", localDate.toString()); } else if (schema.getDefault() instanceof java.time.OffsetDateTime) { return "OffsetDateTime.parse(\"" + String.format(Locale.ROOT, ((java.time.OffsetDateTime) schema.getDefault()).atZoneSameInstant(ZoneId.systemDefault()).toString(), "") + "\", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"; } else { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index bfa0f78dfcb4..714fe954c1d7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -582,7 +582,7 @@ public void toDefaultValueTest() { Date date = Date.from(defaultLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); dateSchema.setDefault(date); defaultValue = codegen.toDefaultValue(dateSchema); - Assert.assertEquals(defaultLocalDate, LocalDate.parse(defaultValue)); + Assert.assertEquals(defaultValue, "LocalDate.parse(\"" + defaultLocalDate.toString() + "\")"); // Test default value for number without format NumberSchema numberSchema = new NumberSchema(); diff --git a/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml b/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml index eb10e635e958..f3568d0c3ee4 100644 --- a/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml +++ b/modules/openapi-generator/src/test/resources/3_0/spring/date-time-parameter-types-for-testing.yml @@ -73,4 +73,32 @@ paths: example: '2021-01-01' responses: '200': - description: OK \ No newline at end of file + description: OK + +components: + schemas: + 'Pet': + type: object + required: + - '@type' + properties: + '@type': + type: string + default: 'Pet' + age: + type: integer + default: 4 + happy: + type: boolean + default: true + price: + type: number + default: 32000000000 + lastFeed: + type: string + format: date-time + default: '1973-12-19T03:39:57-08:00' + dateOfBirth: + type: string + format: date + default: '2021-01-01' From 4f83aaefe5d9904b3572f969c9ae63a4b1d902b6 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Wed, 9 Feb 2022 06:59:14 +0100 Subject: [PATCH 15/16] Generate Samples --- .../.openapi-generator/FILES | 1 + .../main/java/org/openapitools/model/Pet.java | 210 ++++++++++++++++++ .../.openapi-generator/FILES | 1 + .../main/java/org/openapitools/model/Pet.java | 209 +++++++++++++++++ 4 files changed, 421 insertions(+) create mode 100644 samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java create mode 100644 samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java diff --git a/samples/client/petstore/spring-cloud-date-time/.openapi-generator/FILES b/samples/client/petstore/spring-cloud-date-time/.openapi-generator/FILES index 0849e5aac50a..10fe69f96483 100644 --- a/samples/client/petstore/spring-cloud-date-time/.openapi-generator/FILES +++ b/samples/client/petstore/spring-cloud-date-time/.openapi-generator/FILES @@ -1,3 +1,4 @@ README.md pom.xml src/main/java/org/openapitools/api/DefaultApi.java +src/main/java/org/openapitools/model/Pet.java diff --git a/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java new file mode 100644 index 000000000000..545876e8643f --- /dev/null +++ b/samples/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java @@ -0,0 +1,210 @@ +package org.openapitools.model; + +import java.net.URI; +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import org.springframework.format.annotation.DateTimeFormat; +import org.openapitools.jackson.nullable.JsonNullable; +import java.time.OffsetDateTime; +import javax.validation.Valid; +import javax.validation.constraints.*; + + +import java.util.*; +import javax.annotation.Generated; + +/** + * Pet + */ + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen") +public class Pet { + + @JsonProperty("@type") + private String atType = "Pet"; + + @JsonProperty("age") + private Integer age = 4; + + @JsonProperty("happy") + private Boolean happy = true; + + @JsonProperty("price") + private BigDecimal price = new BigDecimal("32000000000"); + + @JsonProperty("lastFeed") + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) + private OffsetDateTime lastFeed = OffsetDateTime.parse("1973-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault())); + + @JsonProperty("dateOfBirth") + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) + private LocalDate dateOfBirth = LocalDate.parse("2021-01-01"); + + public Pet atType(String atType) { + this.atType = atType; + return this; + } + + /** + * Get atType + * @return atType + */ + @NotNull + @ApiModelProperty(required = true, value = "") + public String getAtType() { + return atType; + } + + public void setAtType(String atType) { + this.atType = atType; + } + + public Pet age(Integer age) { + this.age = age; + return this; + } + + /** + * Get age + * @return age + */ + + @ApiModelProperty(value = "") + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public Pet happy(Boolean happy) { + this.happy = happy; + return this; + } + + /** + * Get happy + * @return happy + */ + + @ApiModelProperty(value = "") + public Boolean getHappy() { + return happy; + } + + public void setHappy(Boolean happy) { + this.happy = happy; + } + + public Pet price(BigDecimal price) { + this.price = price; + return this; + } + + /** + * Get price + * @return price + */ + @Valid + @ApiModelProperty(value = "") + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public Pet lastFeed(OffsetDateTime lastFeed) { + this.lastFeed = lastFeed; + return this; + } + + /** + * Get lastFeed + * @return lastFeed + */ + @Valid + @ApiModelProperty(value = "") + public OffsetDateTime getLastFeed() { + return lastFeed; + } + + public void setLastFeed(OffsetDateTime lastFeed) { + this.lastFeed = lastFeed; + } + + public Pet dateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + return this; + } + + /** + * Get dateOfBirth + * @return dateOfBirth + */ + @Valid + @ApiModelProperty(value = "") + public LocalDate getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Pet pet = (Pet) o; + return Objects.equals(this.atType, pet.atType) && + Objects.equals(this.age, pet.age) && + Objects.equals(this.happy, pet.happy) && + Objects.equals(this.price, pet.price) && + Objects.equals(this.lastFeed, pet.lastFeed) && + Objects.equals(this.dateOfBirth, pet.dateOfBirth); + } + + @Override + public int hashCode() { + return Objects.hash(atType, age, happy, price, lastFeed, dateOfBirth); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Pet {\n"); + sb.append(" atType: ").append(toIndentedString(atType)).append("\n"); + sb.append(" age: ").append(toIndentedString(age)).append("\n"); + sb.append(" happy: ").append(toIndentedString(happy)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" lastFeed: ").append(toIndentedString(lastFeed)).append("\n"); + sb.append(" dateOfBirth: ").append(toIndentedString(dateOfBirth)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/.openapi-generator/FILES b/samples/openapi3/client/petstore/spring-cloud-date-time/.openapi-generator/FILES index 0849e5aac50a..10fe69f96483 100644 --- a/samples/openapi3/client/petstore/spring-cloud-date-time/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/.openapi-generator/FILES @@ -1,3 +1,4 @@ README.md pom.xml src/main/java/org/openapitools/api/DefaultApi.java +src/main/java/org/openapitools/model/Pet.java diff --git a/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java new file mode 100644 index 000000000000..ea6a030db272 --- /dev/null +++ b/samples/openapi3/client/petstore/spring-cloud-date-time/src/main/java/org/openapitools/model/Pet.java @@ -0,0 +1,209 @@ +package org.openapitools.model; + +import java.net.URI; +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import org.springframework.format.annotation.DateTimeFormat; +import org.openapitools.jackson.nullable.JsonNullable; +import java.time.OffsetDateTime; +import javax.validation.Valid; +import javax.validation.constraints.*; +import io.swagger.v3.oas.annotations.media.Schema; + + +import java.util.*; +import javax.annotation.Generated; + +/** + * Pet + */ + +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen") +public class Pet { + + @JsonProperty("@type") + private String atType = "Pet"; + + @JsonProperty("age") + private Integer age = 4; + + @JsonProperty("happy") + private Boolean happy = true; + + @JsonProperty("price") + private BigDecimal price = new BigDecimal("32000000000"); + + @JsonProperty("lastFeed") + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) + private OffsetDateTime lastFeed = OffsetDateTime.parse("1973-12-19T11:39:57Z[UTC]", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault())); + + @JsonProperty("dateOfBirth") + @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) + private LocalDate dateOfBirth = LocalDate.parse("2021-01-01"); + + public Pet atType(String atType) { + this.atType = atType; + return this; + } + + /** + * Get atType + * @return atType + */ + @NotNull + @Schema(name = "@type", required = true) + public String getAtType() { + return atType; + } + + public void setAtType(String atType) { + this.atType = atType; + } + + public Pet age(Integer age) { + this.age = age; + return this; + } + + /** + * Get age + * @return age + */ + + @Schema(name = "age", required = false) + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public Pet happy(Boolean happy) { + this.happy = happy; + return this; + } + + /** + * Get happy + * @return happy + */ + + @Schema(name = "happy", required = false) + public Boolean getHappy() { + return happy; + } + + public void setHappy(Boolean happy) { + this.happy = happy; + } + + public Pet price(BigDecimal price) { + this.price = price; + return this; + } + + /** + * Get price + * @return price + */ + @Valid + @Schema(name = "price", required = false) + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public Pet lastFeed(OffsetDateTime lastFeed) { + this.lastFeed = lastFeed; + return this; + } + + /** + * Get lastFeed + * @return lastFeed + */ + @Valid + @Schema(name = "lastFeed", required = false) + public OffsetDateTime getLastFeed() { + return lastFeed; + } + + public void setLastFeed(OffsetDateTime lastFeed) { + this.lastFeed = lastFeed; + } + + public Pet dateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + return this; + } + + /** + * Get dateOfBirth + * @return dateOfBirth + */ + @Valid + @Schema(name = "dateOfBirth", required = false) + public LocalDate getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(LocalDate dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Pet pet = (Pet) o; + return Objects.equals(this.atType, pet.atType) && + Objects.equals(this.age, pet.age) && + Objects.equals(this.happy, pet.happy) && + Objects.equals(this.price, pet.price) && + Objects.equals(this.lastFeed, pet.lastFeed) && + Objects.equals(this.dateOfBirth, pet.dateOfBirth); + } + + @Override + public int hashCode() { + return Objects.hash(atType, age, happy, price, lastFeed, dateOfBirth); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Pet {\n"); + sb.append(" atType: ").append(toIndentedString(atType)).append("\n"); + sb.append(" age: ").append(toIndentedString(age)).append("\n"); + sb.append(" happy: ").append(toIndentedString(happy)).append("\n"); + sb.append(" price: ").append(toIndentedString(price)).append("\n"); + sb.append(" lastFeed: ").append(toIndentedString(lastFeed)).append("\n"); + sb.append(" dateOfBirth: ").append(toIndentedString(dateOfBirth)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + From ec9067bbe4d6931253d06a6288bc6264e6660eb1 Mon Sep 17 00:00:00 2001 From: Lars Uffmann Date: Fri, 11 Feb 2022 07:13:51 +0100 Subject: [PATCH 16/16] Return a defaultValue only if dateTimeLibrary is java8. --- .../languages/AbstractJavaCodegen.java | 18 +++++++--- .../codegen/java/AbstractJavaCodegenTest.java | 36 +++++++++++++++++++ 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 763edb56f01c..dee608363d0b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -977,11 +977,21 @@ public String toDefaultValue(Schema schema) { if (schema.getDefault() != null) { String _default; if (schema.getDefault() instanceof Date) { - Date date = (Date) schema.getDefault(); - LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - return String.format(Locale.ROOT, "LocalDate.parse(\"%s\")", localDate.toString()); + if ("java8".equals(getDateLibrary())) { + Date date = (Date) schema.getDefault(); + LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + return String.format(Locale.ROOT, "LocalDate.parse(\"%s\")", localDate.toString()); + } else { + return null; + } } else if (schema.getDefault() instanceof java.time.OffsetDateTime) { - return "OffsetDateTime.parse(\"" + String.format(Locale.ROOT, ((java.time.OffsetDateTime) schema.getDefault()).atZoneSameInstant(ZoneId.systemDefault()).toString(), "") + "\", java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault()))"; + if ("java8".equals(getDateLibrary())) { + return String.format(Locale.ROOT, "OffsetDateTime.parse(\"%s\", %s)", + ((java.time.OffsetDateTime) schema.getDefault()).atZoneSameInstant(ZoneId.systemDefault()), + "java.time.format.DateTimeFormatter.ISO_ZONED_DATE_TIME.withZone(java.time.ZoneId.systemDefault())"); + } else { + return null; + } } else { _default = (String) schema.getDefault(); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java index 714fe954c1d7..260ef0cd3b38 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java @@ -20,6 +20,8 @@ import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.media.*; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; import java.util.HashSet; import java.util.Set; import org.openapitools.codegen.CodegenConstants; @@ -541,10 +543,37 @@ public void snapshotVersionAlreadySnapshotTest() { Assert.assertEquals(codegen.getArtifactVersion(), "4.1.2-SNAPSHOT"); } + @Test + public void toDefaultValueDateTimeLegacyTest() { + final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + codegen.setDateLibrary("legacy"); + String defaultValue; + + // Test default value for date format + DateSchema dateSchema = new DateSchema(); + LocalDate defaultLocalDate = LocalDate.of(2019,2,15); + Date date = Date.from(defaultLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + dateSchema.setDefault(date); + defaultValue = codegen.toDefaultValue(dateSchema); + + // dateLibrary <> java8 + Assert.assertNull(defaultValue); + + DateTimeSchema dateTimeSchema = new DateTimeSchema(); + OffsetDateTime defaultDateTime = OffsetDateTime.parse("1984-12-19T03:39:57-08:00"); + ZonedDateTime expectedDateTime = defaultDateTime.atZoneSameInstant(ZoneId.systemDefault()); + dateTimeSchema.setDefault(defaultDateTime); + defaultValue = codegen.toDefaultValue(dateTimeSchema); + + // dateLibrary <> java8 + Assert.assertNull(defaultValue); + } @Test public void toDefaultValueTest() { final P_AbstractJavaCodegen codegen = new P_AbstractJavaCodegen(); + codegen.setDateLibrary("java8"); + Schema schema = createObjectSchemaWithMinItems(); String defaultValue = codegen.toDefaultValue(schema); @@ -584,6 +613,13 @@ public void toDefaultValueTest() { defaultValue = codegen.toDefaultValue(dateSchema); Assert.assertEquals(defaultValue, "LocalDate.parse(\"" + defaultLocalDate.toString() + "\")"); + DateTimeSchema dateTimeSchema = new DateTimeSchema(); + OffsetDateTime defaultDateTime = OffsetDateTime.parse("1984-12-19T03:39:57-08:00"); + ZonedDateTime expectedDateTime = defaultDateTime.atZoneSameInstant(ZoneId.systemDefault()); + dateTimeSchema.setDefault(defaultDateTime); + defaultValue = codegen.toDefaultValue(dateTimeSchema); + Assert.assertTrue(defaultValue.startsWith("OffsetDateTime.parse(\"" + expectedDateTime.toString())); + // Test default value for number without format NumberSchema numberSchema = new NumberSchema(); Double doubleValue = 100.0;