[Micronaut] Add support for OffsetDateTime for Micronaut generators (#11871)

* Fix test output folder error for MicronautServerGenerator

* Add java8 OffsetDateTime support for Micronaut Codegens
This commit is contained in:
Andriy Dmytruk 2022-03-15 12:05:55 -04:00 committed by GitHub
parent a44c7e0753
commit 47f07158a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 94 additions and 46 deletions

View File

@ -30,6 +30,9 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|booleanGetterPrefix|Set booleanGetterPrefix| |get| |booleanGetterPrefix|Set booleanGetterPrefix| |get|
|build|Specify for which build tool to generate files|<dl><dt>**gradle**</dt><dd>Gradle configuration is generated for the project</dd><dt>**all**</dt><dd>Both Gradle and Maven configurations are generated</dd><dt>**maven**</dt><dd>Maven configuration is generated for the project</dd></dl>|all| |build|Specify for which build tool to generate files|<dl><dt>**gradle**</dt><dd>Gradle configuration is generated for the project</dd><dt>**all**</dt><dd>Both Gradle and Maven configurations are generated</dd><dt>**maven**</dt><dd>Maven configuration is generated for the project</dd></dl>|all|
|configureAuth|Configure all the authorization methods as specified in the file| |false| |configureAuth|Configure all the authorization methods as specified in the file| |false|
|dateFormat|Specify the format pattern of date as a string| |null|
|dateLibrary|Option. Date library to use|<dl><dt>**java8-localdatetime**</dt><dd>Java 8 using LocalDateTime (for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (preferred for jdk 1.8+)</dd></dl>|java8|
|datetimeFormat|Specify the format pattern of date-time as a string| |null|
|developerEmail|developer email in generated pom.xml| |team@openapitools.org| |developerEmail|developer email in generated pom.xml| |team@openapitools.org|
|developerName|developer name in generated pom.xml| |OpenAPI-Generator Contributors| |developerName|developer name in generated pom.xml| |OpenAPI-Generator Contributors|
|developerOrganization|developer organization in generated pom.xml| |OpenAPITools.org| |developerOrganization|developer organization in generated pom.xml| |OpenAPITools.org|

View File

@ -29,6 +29,9 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|booleanGetterPrefix|Set booleanGetterPrefix| |get| |booleanGetterPrefix|Set booleanGetterPrefix| |get|
|build|Specify for which build tool to generate files|<dl><dt>**gradle**</dt><dd>Gradle configuration is generated for the project</dd><dt>**all**</dt><dd>Both Gradle and Maven configurations are generated</dd><dt>**maven**</dt><dd>Maven configuration is generated for the project</dd></dl>|all| |build|Specify for which build tool to generate files|<dl><dt>**gradle**</dt><dd>Gradle configuration is generated for the project</dd><dt>**all**</dt><dd>Both Gradle and Maven configurations are generated</dd><dt>**maven**</dt><dd>Maven configuration is generated for the project</dd></dl>|all|
|controllerPackage|The package in which controllers will be generated| |org.openapitools.api| |controllerPackage|The package in which controllers will be generated| |org.openapitools.api|
|dateFormat|Specify the format pattern of date as a string| |null|
|dateLibrary|Option. Date library to use|<dl><dt>**java8-localdatetime**</dt><dd>Java 8 using LocalDateTime (for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (preferred for jdk 1.8+)</dd></dl>|java8|
|datetimeFormat|Specify the format pattern of date-time as a string| |null|
|developerEmail|developer email in generated pom.xml| |team@openapitools.org| |developerEmail|developer email in generated pom.xml| |team@openapitools.org|
|developerName|developer name in generated pom.xml| |OpenAPI-Generator Contributors| |developerName|developer name in generated pom.xml| |OpenAPI-Generator Contributors|
|developerOrganization|developer organization in generated pom.xml| |OpenAPITools.org| |developerOrganization|developer organization in generated pom.xml| |OpenAPITools.org|

View File

@ -23,6 +23,10 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
public static final String OPT_REQUIRED_PROPERTIES_IN_CONSTRUCTOR = "requiredPropertiesInConstructor"; public static final String OPT_REQUIRED_PROPERTIES_IN_CONSTRUCTOR = "requiredPropertiesInConstructor";
public static final String OPT_MICRONAUT_VERSION = "micronautVersion"; public static final String OPT_MICRONAUT_VERSION = "micronautVersion";
public static final String OPT_USE_AUTH = "useAuth"; public static final String OPT_USE_AUTH = "useAuth";
public static final String OPT_DATE_LIBRARY_JAVA8 = "java8";
public static final String OPT_DATE_LIBRARY_JAVA8_LOCAL_DATETIME = "java8-localdatetime";
public static final String OPT_DATE_FORMAT = "dateFormat";
public static final String OPT_DATETIME_FORMAT = "datetimeFormat";
protected String title; protected String title;
protected boolean useBeanValidation; protected boolean useBeanValidation;
@ -35,6 +39,9 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
public static final String CONTENT_TYPE_APPLICATION_JSON = "application/json"; public static final String CONTENT_TYPE_APPLICATION_JSON = "application/json";
public static final String CONTENT_TYPE_MULTIPART_FORM_DATA = "multipart/form-data"; public static final String CONTENT_TYPE_MULTIPART_FORM_DATA = "multipart/form-data";
public static final String CONTENT_TYPE_ANY = "*/*"; public static final String CONTENT_TYPE_ANY = "*/*";
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String DATETIME_FORMAT = DATE_FORMAT + "'T'HH:mm:ss.SSS";
public static final String OFFSET_DATETIME_FORMAT = DATETIME_FORMAT + "XXXX";
public JavaMicronautAbstractCodegen() { public JavaMicronautAbstractCodegen() {
super(); super();
@ -52,6 +59,7 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
embeddedTemplateDir = templateDir = "java-micronaut"; embeddedTemplateDir = templateDir = "java-micronaut";
apiDocPath = "docs/apis"; apiDocPath = "docs/apis";
modelDocPath = "docs/models"; modelDocPath = "docs/models";
dateLibrary = OPT_DATE_LIBRARY_JAVA8;
// Set implemented features for user information // Set implemented features for user information
modifyFeatureSet(features -> features modifyFeatureSet(features -> features
@ -100,9 +108,16 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
testToolOption.setEnum(testToolOptionMap); testToolOption.setEnum(testToolOptionMap);
cliOptions.add(testToolOption); cliOptions.add(testToolOption);
// Remove the date library option cliOptions.add(new CliOption(OPT_DATE_FORMAT, "Specify the format pattern of date as a string"));
cliOptions.stream().filter(o -> o.getOpt().equals("dateLibrary")).findFirst() cliOptions.add(new CliOption(OPT_DATETIME_FORMAT, "Specify the format pattern of date-time as a string"));
.ifPresent(v -> cliOptions.remove(v));
// Modify the DATE_LIBRARY option to only have supported values
cliOptions.stream().filter(o -> o.getOpt().equals(DATE_LIBRARY)).findFirst().ifPresent(opt -> {
Map<String, String> valuesEnum = new HashMap<>();
valuesEnum.put(OPT_DATE_LIBRARY_JAVA8, opt.getEnum().get(OPT_DATE_LIBRARY_JAVA8));
valuesEnum.put(OPT_DATE_LIBRARY_JAVA8_LOCAL_DATETIME, opt.getEnum().get(OPT_DATE_LIBRARY_JAVA8_LOCAL_DATETIME));
opt.setEnum(valuesEnum);
});
// Add reserved words // Add reserved words
String[] reservedWordsArray = { String[] reservedWordsArray = {
@ -209,11 +224,20 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
// Git files // Git files
supportingFiles.add(new SupportingFile("common/configuration/git/gitignore.mustache", "", ".gitignore").doNotOverwrite()); supportingFiles.add(new SupportingFile("common/configuration/git/gitignore.mustache", "", ".gitignore").doNotOverwrite());
// Use the default java LocalDate // Use the default java time
typeMapping.put("date", "LocalDate"); additionalProperties.putIfAbsent(OPT_DATE_FORMAT, DATE_FORMAT);
typeMapping.put("DateTime", "LocalDateTime"); if (dateLibrary.equals(OPT_DATE_LIBRARY_JAVA8)) {
importMapping.put("LocalDate", "java.time.LocalDate"); typeMapping.put("DateTime", "OffsetDateTime");
importMapping.put("LocalDateTime", "java.time.LocalDateTime"); typeMapping.put("date", "LocalDate");
additionalProperties.putIfAbsent(OPT_DATETIME_FORMAT, OFFSET_DATETIME_FORMAT);
} else if (dateLibrary.equals(OPT_DATE_LIBRARY_JAVA8_LOCAL_DATETIME)) {
typeMapping.put("DateTime", "LocalDateTime");
typeMapping.put("date", "LocalDate");
additionalProperties.putIfAbsent(OPT_DATETIME_FORMAT, DATETIME_FORMAT);
}
importMapping.putIfAbsent("LocalDateTime", "java.time.LocalDateTime");
importMapping.putIfAbsent("OffsetDateTime", "java.time.OffsetDateTime");
importMapping.putIfAbsent("LocalDate", "java.time.LocalDate");
// Add documentation files // Add documentation files
modelDocTemplateFiles.clear(); modelDocTemplateFiles.clear();
@ -431,6 +455,8 @@ public abstract class JavaMicronautAbstractCodegen extends AbstractJavaCodegen i
example = example != null ? example : "false"; example = example != null ? example : "false";
} else if ("File".equals(dataType)) { } else if ("File".equals(dataType)) {
example = null; example = null;
} else if ("OffsetDateTime".equals(dataType)) {
example = "OffsetDateTime.of(2001, 2, 3, 12, 0, 0, 0, java.time.ZoneOffset.of(\"+02:00\"))";
} else if ("LocalDate".equals(dataType)) { } else if ("LocalDate".equals(dataType)) {
example = "LocalDate.of(2001, 2, 3)"; example = "LocalDate.of(2001, 2, 3)";
} else if ("LocalDateTime".equals(dataType)) { } else if ("LocalDateTime".equals(dataType)) {

View File

@ -29,6 +29,7 @@ public class JavaMicronautServerCodegen extends JavaMicronautAbstractCodegen {
protected String controllerSuffix = "Controller"; protected String controllerSuffix = "Controller";
protected String apiPrefix = "Abstract"; protected String apiPrefix = "Abstract";
protected String apiSuffix = "Controller"; protected String apiSuffix = "Controller";
private String testOutputDir;
public JavaMicronautServerCodegen() { public JavaMicronautServerCodegen() {
super(); super();
@ -140,18 +141,27 @@ public class JavaMicronautServerCodegen extends JavaMicronautAbstractCodegen {
supportingFiles.add(new SupportingFile("common/configuration/Application.mustache", invokerFolder, "Application.java").doNotOverwrite()); supportingFiles.add(new SupportingFile("common/configuration/Application.mustache", invokerFolder, "Application.java").doNotOverwrite());
} }
@Override
public String apiTestFileFolder() {
return super.getOutputDir();
}
@Override @Override
public String apiTestFilename(String templateName, String tag) { public String apiTestFilename(String templateName, String tag) {
// For controller implementation
if (generateControllerAsAbstract && templateName.contains("controllerImplementation")) { if (generateControllerAsAbstract && templateName.contains("controllerImplementation")) {
return ( String implementationFolder = outputFolder + File.separator +
outputFolder + File.separator +
sourceFolder + File.separator + sourceFolder + File.separator +
controllerPackage.replace('.', File.separatorChar) + File.separator + controllerPackage.replace('.', File.separatorChar);
testOutputDir = implementationFolder;
return (implementationFolder + File.separator +
StringUtils.camelize(controllerPrefix + "_" + tag + "_" + controllerSuffix) + ".java" StringUtils.camelize(controllerPrefix + "_" + tag + "_" + controllerSuffix) + ".java"
).replace('/', File.separatorChar); ).replace('/', File.separatorChar);
} }
return super.apiTestFilename(templateName, tag); // For api tests
String suffix = apiTestTemplateFiles().get(templateName);
return super.apiTestFileFolder() + File.separator + toApiTestFilename(tag) + suffix;
} }
@Override @Override

View File

@ -1 +1,7 @@
{{!normal type}}{{^isDate}}{{^isDateTime}}{{{dataType}}}{{/isDateTime}}{{/isDate}}{{!date-time}}{{#isDateTime}}@Format("yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") {{{dataType}}}{{/isDateTime}}{{!date}}{{#isDate}}@Format("yyyy-MM-dd") {{{dataType}}}{{/isDate}} {{!
default type
}}{{^isDate}}{{^isDateTime}}{{{dataType}}}{{/isDateTime}}{{/isDate}}{{!
date-time
}}{{#isDateTime}}@Format("{{{datetimeFormat}}}") {{{dataType}}}{{/isDateTime}}{{!
date
}}{{#isDate}}@Format("{{{dateFormat}}}") {{{dataType}}}{{/isDate}}

View File

@ -19,8 +19,8 @@
{{/isContainer}} {{/isContainer}}
{{/withXml}} {{/withXml}}
{{#isDateTime}} {{#isDateTime}}
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "{{{datetimeFormat}}}")
{{/isDateTime}} {{/isDateTime}}
{{#isDate}} {{#isDate}}
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "{{{dateFormat}}}")
{{/isDate}} {{/isDate}}

View File

@ -2,6 +2,6 @@
default type default type
}}{{^isDate}}{{^isDateTime}}{{{dataType}}}{{/isDateTime}}{{/isDate}}{{! }}{{^isDate}}{{^isDateTime}}{{{dataType}}}{{/isDateTime}}{{/isDate}}{{!
date-time date-time
}}{{#isDateTime}}@Format("yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") {{{dataType}}}{{/isDateTime}}{{! }}{{#isDateTime}}@Format("{{{datetimeFormat}}}") {{{dataType}}}{{/isDateTime}}{{!
date date
}}{{#isDate}}@Format("yyyy-MM-dd") {{{dataType}}}{{/isDate}} }}{{#isDate}}@Format("{{{dateFormat}}}") {{{dataType}}}{{/isDate}}

View File

@ -268,7 +268,7 @@ Name | Type | Description | Notes
**string** | `String`| None | [optional parameter] **string** | `String`| None | [optional parameter]
**binary** | `File`| None | [optional parameter] **binary** | `File`| None | [optional parameter]
**date** | `LocalDate`| None | [optional parameter] **date** | `LocalDate`| None | [optional parameter]
**dateTime** | `LocalDateTime`| None | [optional parameter] **dateTime** | `OffsetDateTime`| None | [optional parameter]
**password** | `String`| None | [optional parameter] **password** | `String`| None | [optional parameter]
**paramCallback** | `String`| None | [optional parameter] **paramCallback** | `String`| None | [optional parameter]

View File

@ -18,7 +18,7 @@ Name | Type | Description | Notes
**_byte** | `byte[]` | | **_byte** | `byte[]` | |
**binary** | `File` | | [optional property] **binary** | `File` | | [optional property]
**date** | `LocalDate` | | **date** | `LocalDate` | |
**dateTime** | `LocalDateTime` | | [optional property] **dateTime** | `OffsetDateTime` | | [optional property]
**uuid** | `UUID` | | [optional property] **uuid** | `UUID` | | [optional property]
**password** | `String` | | **password** | `String` | |
**bigDecimal** | `BigDecimal` | | [optional property] **bigDecimal** | `BigDecimal` | | [optional property]

View File

@ -9,7 +9,7 @@ The class is defined in **[MixedPropertiesAndAdditionalPropertiesClass.java](../
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**uuid** | `UUID` | | [optional property] **uuid** | `UUID` | | [optional property]
**dateTime** | `LocalDateTime` | | [optional property] **dateTime** | `OffsetDateTime` | | [optional property]
**map** | [`Map&lt;String, Animal&gt;`](Animal.md) | | [optional property] **map** | [`Map&lt;String, Animal&gt;`](Animal.md) | | [optional property]

View File

@ -11,7 +11,7 @@ Name | Type | Description | Notes
**id** | `Long` | | [optional property] **id** | `Long` | | [optional property]
**petId** | `Long` | | [optional property] **petId** | `Long` | | [optional property]
**quantity** | `Integer` | | [optional property] **quantity** | `Integer` | | [optional property]
**shipDate** | `LocalDateTime` | | [optional property] **shipDate** | `OffsetDateTime` | | [optional property]
**status** | [**StatusEnum**](#StatusEnum) | Order Status | [optional property] **status** | [**StatusEnum**](#StatusEnum) | Order Status | [optional property]
**complete** | `Boolean` | | [optional property] **complete** | `Boolean` | | [optional property]

View File

@ -21,8 +21,8 @@ import java.math.BigDecimal;
import java.io.File; import java.io.File;
import org.openapitools.model.FileSchemaTestClass; import org.openapitools.model.FileSchemaTestClass;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import org.openapitools.model.ModelClient; import org.openapitools.model.ModelClient;
import java.time.OffsetDateTime;
import org.openapitools.model.OuterComposite; import org.openapitools.model.OuterComposite;
import org.openapitools.model.User; import org.openapitools.model.User;
import org.openapitools.model.XmlItem; import org.openapitools.model.XmlItem;
@ -169,7 +169,7 @@ public interface FakeApi {
@Nullable @Pattern(regexp="/[a-z]/i") String string, @Nullable @Pattern(regexp="/[a-z]/i") String string,
@Nullable File binary, @Nullable File binary,
@Nullable @Format("yyyy-MM-dd") LocalDate date, @Nullable @Format("yyyy-MM-dd") LocalDate date,
@Nullable @Format("yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") LocalDateTime dateTime, @Nullable @Format("yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") OffsetDateTime dateTime,
@Nullable @Size(min=10, max=64) String password, @Nullable @Size(min=10, max=64) String password,
@Nullable String paramCallback @Nullable String paramCallback
); );

View File

@ -17,7 +17,7 @@ import io.micronaut.core.annotation.*;
import io.micronaut.http.client.annotation.Client; import io.micronaut.http.client.annotation.Client;
import io.micronaut.core.convert.format.Format; import io.micronaut.core.convert.format.Format;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import org.openapitools.model.User; import org.openapitools.model.User;
import javax.annotation.Generated; import javax.annotation.Generated;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -20,7 +20,7 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.File; import java.io.File;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import java.util.UUID; import java.util.UUID;
import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.*;
@ -83,7 +83,7 @@ public class FormatTest {
private LocalDate date; private LocalDate date;
public static final String JSON_PROPERTY_DATE_TIME = "dateTime"; public static final String JSON_PROPERTY_DATE_TIME = "dateTime";
private LocalDateTime dateTime; private OffsetDateTime dateTime;
public static final String JSON_PROPERTY_UUID = "uuid"; public static final String JSON_PROPERTY_UUID = "uuid";
private UUID uuid; private UUID uuid;
@ -349,7 +349,7 @@ public class FormatTest {
this.date = date; this.date = date;
} }
public FormatTest dateTime(LocalDateTime dateTime) { public FormatTest dateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime; this.dateTime = dateTime;
return this; return this;
} }
@ -363,14 +363,14 @@ public class FormatTest {
@JsonProperty(JSON_PROPERTY_DATE_TIME) @JsonProperty(JSON_PROPERTY_DATE_TIME)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public LocalDateTime getDateTime() { public OffsetDateTime getDateTime() {
return dateTime; return dateTime;
} }
@JsonProperty(JSON_PROPERTY_DATE_TIME) @JsonProperty(JSON_PROPERTY_DATE_TIME)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public void setDateTime(LocalDateTime dateTime) { public void setDateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime; this.dateTime = dateTime;
} }

View File

@ -16,7 +16,7 @@ import java.util.Objects;
import java.util.Arrays; import java.util.Arrays;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -45,7 +45,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
private UUID uuid; private UUID uuid;
public static final String JSON_PROPERTY_DATE_TIME = "dateTime"; public static final String JSON_PROPERTY_DATE_TIME = "dateTime";
private LocalDateTime dateTime; private OffsetDateTime dateTime;
public static final String JSON_PROPERTY_MAP = "map"; public static final String JSON_PROPERTY_MAP = "map";
private Map<String, Animal> map = null; private Map<String, Animal> map = null;
@ -75,7 +75,7 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
this.uuid = uuid; this.uuid = uuid;
} }
public MixedPropertiesAndAdditionalPropertiesClass dateTime(LocalDateTime dateTime) { public MixedPropertiesAndAdditionalPropertiesClass dateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime; this.dateTime = dateTime;
return this; return this;
} }
@ -89,14 +89,14 @@ public class MixedPropertiesAndAdditionalPropertiesClass {
@JsonProperty(JSON_PROPERTY_DATE_TIME) @JsonProperty(JSON_PROPERTY_DATE_TIME)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public LocalDateTime getDateTime() { public OffsetDateTime getDateTime() {
return dateTime; return dateTime;
} }
@JsonProperty(JSON_PROPERTY_DATE_TIME) @JsonProperty(JSON_PROPERTY_DATE_TIME)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public void setDateTime(LocalDateTime dateTime) { public void setDateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime; this.dateTime = dateTime;
} }

View File

@ -16,7 +16,7 @@ import java.util.Objects;
import java.util.Arrays; import java.util.Arrays;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.*;
import javax.validation.constraints.*; import javax.validation.constraints.*;
@ -49,7 +49,7 @@ public class Order {
private Integer quantity; private Integer quantity;
public static final String JSON_PROPERTY_SHIP_DATE = "shipDate"; public static final String JSON_PROPERTY_SHIP_DATE = "shipDate";
private LocalDateTime shipDate; private OffsetDateTime shipDate;
/** /**
* Order Status * Order Status
@ -162,7 +162,7 @@ public class Order {
this.quantity = quantity; this.quantity = quantity;
} }
public Order shipDate(LocalDateTime shipDate) { public Order shipDate(OffsetDateTime shipDate) {
this.shipDate = shipDate; this.shipDate = shipDate;
return this; return this;
} }
@ -176,14 +176,14 @@ public class Order {
@JsonProperty(JSON_PROPERTY_SHIP_DATE) @JsonProperty(JSON_PROPERTY_SHIP_DATE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public LocalDateTime getShipDate() { public OffsetDateTime getShipDate() {
return shipDate; return shipDate;
} }
@JsonProperty(JSON_PROPERTY_SHIP_DATE) @JsonProperty(JSON_PROPERTY_SHIP_DATE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public void setShipDate(LocalDateTime shipDate) { public void setShipDate(OffsetDateTime shipDate) {
this.shipDate = shipDate; this.shipDate = shipDate;
} }

View File

@ -13,7 +13,7 @@ Name | Type | Description | Notes
**id** | `Long` | | [optional property] **id** | `Long` | | [optional property]
**petId** | `Long` | | [optional property] **petId** | `Long` | | [optional property]
**quantity** | `Integer` | | [optional property] **quantity** | `Integer` | | [optional property]
**shipDate** | `LocalDateTime` | | [optional property] **shipDate** | `OffsetDateTime` | | [optional property]
**status** | [**StatusEnum**](#StatusEnum) | Order Status | [optional property] **status** | [**StatusEnum**](#StatusEnum) | Order Status | [optional property]
**complete** | `Boolean` | | [optional property] **complete** | `Boolean` | | [optional property]

View File

@ -16,7 +16,7 @@ import io.micronaut.http.annotation.*;
import io.micronaut.core.annotation.Nullable; import io.micronaut.core.annotation.Nullable;
import io.micronaut.core.convert.format.Format; import io.micronaut.core.convert.format.Format;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import org.openapitools.model.User; import org.openapitools.model.User;
import javax.annotation.Generated; import javax.annotation.Generated;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -16,7 +16,7 @@ import java.util.Objects;
import java.util.Arrays; import java.util.Arrays;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime; import java.time.OffsetDateTime;
import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.*;
import javax.validation.constraints.*; import javax.validation.constraints.*;
@ -50,7 +50,7 @@ public class Order {
private Integer quantity; private Integer quantity;
public static final String JSON_PROPERTY_SHIP_DATE = "shipDate"; public static final String JSON_PROPERTY_SHIP_DATE = "shipDate";
private LocalDateTime shipDate; private OffsetDateTime shipDate;
/** /**
* Order Status * Order Status
@ -164,7 +164,7 @@ public class Order {
this.quantity = quantity; this.quantity = quantity;
} }
public Order shipDate(LocalDateTime shipDate) { public Order shipDate(OffsetDateTime shipDate) {
this.shipDate = shipDate; this.shipDate = shipDate;
return this; return this;
} }
@ -178,14 +178,14 @@ public class Order {
@JsonProperty(JSON_PROPERTY_SHIP_DATE) @JsonProperty(JSON_PROPERTY_SHIP_DATE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public LocalDateTime getShipDate() { public OffsetDateTime getShipDate() {
return shipDate; return shipDate;
} }
@JsonProperty(JSON_PROPERTY_SHIP_DATE) @JsonProperty(JSON_PROPERTY_SHIP_DATE)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX")
public void setShipDate(LocalDateTime shipDate) { public void setShipDate(OffsetDateTime shipDate) {
this.shipDate = shipDate; this.shipDate = shipDate;
} }