diff --git a/docs/generators/java.md b/docs/generators/java.md index 38c3f19f56a..dd82de49bc4 100644 --- a/docs/generators/java.md +++ b/docs/generators/java.md @@ -52,7 +52,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl |scmDeveloperConnection|SCM developer connection in generated pom.xml| |scm:git:git@github.com:openapitools/openapi-generator.git| |scmUrl|SCM URL in generated pom.xml| |https://github.com/openapitools/openapi-generator| |serializableModel|boolean - toggle "implements Serializable" for generated models| |false| -|serializationLibrary|Serialization library, default depends from the library|
**jackson**
Use Jackson as serialization library
**gson**
Use Gson as serialization library
|null| +|serializationLibrary|Serialization library, default depends from the library|
**jsonb**
Use JSON-B as serialization library
**jackson**
Use Jackson as serialization library
**gson**
Use Gson as serialization library
|null| |snapshotVersion|Uses a SNAPSHOT version.|
**true**
Use a SnapShot Version
**false**
Use a Release Version
|null| |sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true| |sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true| 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 71481ddbb21..e9a24c9c103 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 @@ -540,13 +540,6 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code } } - if (additionalProperties.containsKey(WITH_XML)) { - setWithXml(Boolean.parseBoolean(additionalProperties.get(WITH_XML).toString())); - if (withXml) { - additionalProperties.put(WITH_XML, "true"); - } - } - if (additionalProperties.containsKey(DATE_LIBRARY)) { setDateLibrary(additionalProperties.get("dateLibrary").toString()); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java index 479dcbb58c6..b01b999c3ba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java @@ -87,6 +87,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen public static final String SERIALIZATION_LIBRARY_GSON = "gson"; public static final String SERIALIZATION_LIBRARY_JACKSON = "jackson"; + public static final String SERIALIZATION_LIBRARY_JSONB = "jsonb"; protected String gradleWrapperPackage = "gradle.wrapper"; protected boolean useRxJava = false; @@ -179,6 +180,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen Map serializationOptions = new HashMap<>(); serializationOptions.put(SERIALIZATION_LIBRARY_GSON, "Use Gson as serialization library"); serializationOptions.put(SERIALIZATION_LIBRARY_JACKSON, "Use Jackson as serialization library"); + serializationOptions.put(SERIALIZATION_LIBRARY_JSONB, "Use JSON-B as serialization library"); serializationLibrary.setEnum(serializationOptions); cliOptions.add(serializationLibrary); @@ -554,21 +556,33 @@ public class JavaClientCodegen extends AbstractJavaCodegen LOGGER.info("No serializationLibrary configured, using '" + SERIALIZATION_LIBRARY_GSON + "' as fallback"); setSerializationLibrary(SERIALIZATION_LIBRARY_GSON); } - if (SERIALIZATION_LIBRARY_JACKSON.equals(getSerializationLibrary())) { - additionalProperties.put(SERIALIZATION_LIBRARY_JACKSON, "true"); - additionalProperties.remove(SERIALIZATION_LIBRARY_GSON); - supportingFiles.add(new SupportingFile("RFC3339DateFormat.mustache", invokerFolder, "RFC3339DateFormat.java")); - if (!NATIVE.equals(getLibrary())) { - if ("threetenbp".equals(dateLibrary) && !usePlayWS) { - supportingFiles.add(new SupportingFile("CustomInstantDeserializer.mustache", invokerFolder, "CustomInstantDeserializer.java")); + switch (getSerializationLibrary()) { + case SERIALIZATION_LIBRARY_JACKSON: + additionalProperties.put(SERIALIZATION_LIBRARY_JACKSON, "true"); + additionalProperties.remove(SERIALIZATION_LIBRARY_GSON); + additionalProperties.remove(SERIALIZATION_LIBRARY_JSONB); + supportingFiles.add(new SupportingFile("RFC3339DateFormat.mustache", invokerFolder, "RFC3339DateFormat.java")); + if (!NATIVE.equals(getLibrary())) { + if ("threetenbp".equals(dateLibrary) && !usePlayWS) { + supportingFiles.add(new SupportingFile("CustomInstantDeserializer.mustache", invokerFolder, "CustomInstantDeserializer.java")); + } } - } - } else if (SERIALIZATION_LIBRARY_GSON.equals(getSerializationLibrary())) { - additionalProperties.put(SERIALIZATION_LIBRARY_GSON, "true"); - additionalProperties.remove(SERIALIZATION_LIBRARY_JACKSON); - } else { - additionalProperties.remove(SERIALIZATION_LIBRARY_JACKSON); - additionalProperties.remove(SERIALIZATION_LIBRARY_GSON); + break; + case SERIALIZATION_LIBRARY_GSON: + additionalProperties.put(SERIALIZATION_LIBRARY_GSON, "true"); + additionalProperties.remove(SERIALIZATION_LIBRARY_JACKSON); + additionalProperties.remove(SERIALIZATION_LIBRARY_JSONB); + break; + case SERIALIZATION_LIBRARY_JSONB: + additionalProperties.put(SERIALIZATION_LIBRARY_JSONB, "true"); + additionalProperties.remove(SERIALIZATION_LIBRARY_JACKSON); + additionalProperties.remove(SERIALIZATION_LIBRARY_GSON); + break; + default: + additionalProperties.remove(SERIALIZATION_LIBRARY_JACKSON); + additionalProperties.remove(SERIALIZATION_LIBRARY_GSON); + additionalProperties.remove(SERIALIZATION_LIBRARY_JSONB); + break; } // authentication related files @@ -974,6 +988,8 @@ public class JavaClientCodegen extends AbstractJavaCodegen this.serializationLibrary = SERIALIZATION_LIBRARY_JACKSON; } else if (SERIALIZATION_LIBRARY_GSON.equalsIgnoreCase(serializationLibrary)) { this.serializationLibrary = SERIALIZATION_LIBRARY_GSON; + } else if (SERIALIZATION_LIBRARY_JSONB.equalsIgnoreCase(serializationLibrary)) { + this.serializationLibrary = SERIALIZATION_LIBRARY_JSONB; } else { throw new IllegalArgumentException("Unexpected serializationLibrary value: " + serializationLibrary); } diff --git a/modules/openapi-generator/src/main/resources/Java/model.mustache b/modules/openapi-generator/src/main/resources/Java/model.mustache index dec0b7dc8ac..8fd078eb3d6 100644 --- a/modules/openapi-generator/src/main/resources/Java/model.mustache +++ b/modules/openapi-generator/src/main/resources/Java/model.mustache @@ -23,6 +23,18 @@ import com.fasterxml.jackson.dataformat.xml.annotation.*; {{#withXml}} import javax.xml.bind.annotation.*; {{/withXml}} +{{#jsonb}} +import java.lang.reflect.Type; +import javax.json.bind.annotation.JsonbTypeDeserializer; +import javax.json.bind.annotation.JsonbTypeSerializer; +import javax.json.bind.serializer.DeserializationContext; +import javax.json.bind.serializer.JsonbDeserializer; +import javax.json.bind.serializer.JsonbSerializer; +import javax.json.bind.serializer.SerializationContext; +import javax.json.stream.JsonGenerator; +import javax.json.stream.JsonParser; +import javax.json.bind.annotation.JsonbProperty; +{{/jsonb}} {{#parcelableModel}} import android.os.Parcelable; import android.os.Parcel; diff --git a/modules/openapi-generator/src/main/resources/Java/modelEnum.mustache b/modules/openapi-generator/src/main/resources/Java/modelEnum.mustache index 9428bc70f99..10ad58e443b 100644 --- a/modules/openapi-generator/src/main/resources/Java/modelEnum.mustache +++ b/modules/openapi-generator/src/main/resources/Java/modelEnum.mustache @@ -16,6 +16,10 @@ import com.google.gson.stream.JsonWriter; {{#gson}} @JsonAdapter({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.Adapter.class) {{/gson}} +{{#jsonb}} +@JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class) +@JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class) +{{/jsonb}} public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} { {{#allowableValues}}{{#enumVars}} {{#enumDescription}} @@ -23,6 +27,9 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum * {{enumDescription}} */ {{/enumDescription}} + {{#withXml}} + @XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) + {{/withXml}} {{{name}}}({{{value}}}){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} @@ -70,4 +77,24 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum } } {{/gson}} +{{#jsonb}} + public static final class Deserializer implements JsonbDeserializer<{{datatypeWithEnum}}> { + @Override + public {{datatypeWithEnum}} deserialize(JsonParser parser, DeserializationContext ctx, Type rtType) { + for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (String.valueOf(b.value).equals(parser.getString())) { + return b; + } + } + {{#useNullForUnknownEnumValue}}return null;{{/useNullForUnknownEnumValue}}{{^useNullForUnknownEnumValue}}throw new IllegalArgumentException("Unexpected value '" + parser.getString() + "'");{{/useNullForUnknownEnumValue}} + } + } + + public static final class Serializer implements JsonbSerializer<{{datatypeWithEnum}}> { + @Override + public void serialize({{datatypeWithEnum}} obj, JsonGenerator generator, SerializationContext ctx) { + generator.write(obj.value); + } + } +{{/jsonb}} } diff --git a/modules/openapi-generator/src/main/resources/Java/modelInnerEnum.mustache b/modules/openapi-generator/src/main/resources/Java/modelInnerEnum.mustache index 101870341f5..942be42b518 100644 --- a/modules/openapi-generator/src/main/resources/Java/modelInnerEnum.mustache +++ b/modules/openapi-generator/src/main/resources/Java/modelInnerEnum.mustache @@ -4,6 +4,14 @@ {{#gson}} @JsonAdapter({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.Adapter.class) {{/gson}} +{{#jsonb}} + @JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class) + @JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class) +{{/jsonb}} +{{#withXml}} + @XmlType(name="{{datatypeWithEnum}}") + @XmlEnum({{dataType}}.class) +{{/withXml}} public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} { {{#allowableValues}} {{#enumVars}} @@ -12,6 +20,9 @@ * {{enumDescription}} */ {{/enumDescription}} + {{#withXml}} + @XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) + {{/withXml}} {{{name}}}({{{value}}}){{^-last}}, {{/-last}}{{#-last}};{{/-last}} {{/enumVars}} @@ -61,4 +72,24 @@ } } {{/gson}} +{{#jsonb}} + public static final class Deserializer implements JsonbDeserializer<{{datatypeWithEnum}}> { + @Override + public {{datatypeWithEnum}} deserialize(JsonParser parser, DeserializationContext ctx, Type rtType) { + for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (String.valueOf(b.value).equals(parser.getString())) { + return b; + } + } + {{#useNullForUnknownEnumValue}}return null;{{/useNullForUnknownEnumValue}}{{^useNullForUnknownEnumValue}}throw new IllegalArgumentException("Unexpected value '" + parser.getString() + "'");{{/useNullForUnknownEnumValue}} + } + } + + public static final class Serializer implements JsonbSerializer<{{datatypeWithEnum}}> { + @Override + public void serialize({{datatypeWithEnum}} obj, JsonGenerator generator, SerializationContext ctx) { + generator.write(obj.value); + } + } +{{/jsonb}} } diff --git a/modules/openapi-generator/src/main/resources/Java/pojo.mustache b/modules/openapi-generator/src/main/resources/Java/pojo.mustache index 81eeb24af08..30454970acf 100644 --- a/modules/openapi-generator/src/main/resources/Java/pojo.mustache +++ b/modules/openapi-generator/src/main/resources/Java/pojo.mustache @@ -179,6 +179,9 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorE {{^required}} @javax.annotation.Nullable {{/required}} +{{#jsonb}} + @JsonbProperty("{{baseName}}") +{{/jsonb}} {{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} @ApiModelProperty({{#example}}example = "{{{example}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}") {{#vendorExtensions.x-extra-annotation}} {{{vendorExtensions.x-extra-annotation}}} @@ -276,7 +279,7 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorE * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(Object o) { + private{{#jsonb}} static{{/jsonb}} String toIndentedString(Object o) { if (o == null) { return "null"; } diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCat.java index 43aee30817f..c84990b8384 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCat.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCat.java @@ -47,13 +47,19 @@ public class BigCat extends Cat { /** * Gets or Sets kind */ + @XmlType(name="KindEnum") + @XmlEnum(String.class) public enum KindEnum { + @XmlEnumValue("lions") LIONS("lions"), + @XmlEnumValue("tigers") TIGERS("tigers"), + @XmlEnumValue("leopards") LEOPARDS("leopards"), + @XmlEnumValue("jaguars") JAGUARS("jaguars"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCatAllOf.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCatAllOf.java index 1b081179142..b63924ebda1 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCatAllOf.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/BigCatAllOf.java @@ -41,13 +41,19 @@ public class BigCatAllOf { /** * Gets or Sets kind */ + @XmlType(name="KindEnum") + @XmlEnum(String.class) public enum KindEnum { + @XmlEnumValue("lions") LIONS("lions"), + @XmlEnumValue("tigers") TIGERS("tigers"), + @XmlEnumValue("leopards") LEOPARDS("leopards"), + @XmlEnumValue("jaguars") JAGUARS("jaguars"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumArrays.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumArrays.java index bf6293c0801..f911c8b0325 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumArrays.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumArrays.java @@ -44,9 +44,13 @@ public class EnumArrays { /** * Gets or Sets justSymbol */ + @XmlType(name="JustSymbolEnum") + @XmlEnum(String.class) public enum JustSymbolEnum { + @XmlEnumValue(">=") GREATER_THAN_OR_EQUAL_TO(">="), + @XmlEnumValue("$") DOLLAR("$"); private String value; @@ -83,9 +87,13 @@ public class EnumArrays { /** * Gets or Sets arrayEnum */ + @XmlType(name="ArrayEnumEnum") + @XmlEnum(String.class) public enum ArrayEnumEnum { + @XmlEnumValue("fish") FISH("fish"), + @XmlEnumValue("crab") CRAB("crab"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumClass.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumClass.java index 747fb015cdc..97bf1c8ed7e 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumClass.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumClass.java @@ -27,10 +27,13 @@ import com.fasterxml.jackson.annotation.JsonValue; */ public enum EnumClass { + @XmlEnumValue("_abc") _ABC("_abc"), + @XmlEnumValue("-efg") _EFG("-efg"), + @XmlEnumValue("(xyz)") _XYZ_("(xyz)"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumTest.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumTest.java index 922ca402ed6..73c2fad6091 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumTest.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/EnumTest.java @@ -46,11 +46,16 @@ public class EnumTest { /** * Gets or Sets enumString */ + @XmlType(name="EnumStringEnum") + @XmlEnum(String.class) public enum EnumStringEnum { + @XmlEnumValue("UPPER") UPPER("UPPER"), + @XmlEnumValue("lower") LOWER("lower"), + @XmlEnumValue("") EMPTY(""); private String value; @@ -87,11 +92,16 @@ public class EnumTest { /** * Gets or Sets enumStringRequired */ + @XmlType(name="EnumStringRequiredEnum") + @XmlEnum(String.class) public enum EnumStringRequiredEnum { + @XmlEnumValue("UPPER") UPPER("UPPER"), + @XmlEnumValue("lower") LOWER("lower"), + @XmlEnumValue("") EMPTY(""); private String value; @@ -128,9 +138,13 @@ public class EnumTest { /** * Gets or Sets enumInteger */ + @XmlType(name="EnumIntegerEnum") + @XmlEnum(Integer.class) public enum EnumIntegerEnum { + @XmlEnumValue("1") NUMBER_1(1), + @XmlEnumValue("-1") NUMBER_MINUS_1(-1); private Integer value; @@ -167,9 +181,13 @@ public class EnumTest { /** * Gets or Sets enumNumber */ + @XmlType(name="EnumNumberEnum") + @XmlEnum(Double.class) public enum EnumNumberEnum { + @XmlEnumValue("1.1") NUMBER_1_DOT_1(1.1), + @XmlEnumValue("-1.2") NUMBER_MINUS_1_DOT_2(-1.2); private Double value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/MapTest.java index 87bd0e3132c..94fc6dc140e 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/MapTest.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/MapTest.java @@ -54,9 +54,13 @@ public class MapTest { /** * Gets or Sets inner */ + @XmlType(name="InnerEnum") + @XmlEnum(String.class) public enum InnerEnum { + @XmlEnumValue("UPPER") UPPER("UPPER"), + @XmlEnumValue("lower") LOWER("lower"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Order.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Order.java index cab2dcadf4a..be9a12595af 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Order.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Order.java @@ -63,11 +63,16 @@ public class Order { /** * Order Status */ + @XmlType(name="StatusEnum") + @XmlEnum(String.class) public enum StatusEnum { + @XmlEnumValue("placed") PLACED("placed"), + @XmlEnumValue("approved") APPROVED("approved"), + @XmlEnumValue("delivered") DELIVERED("delivered"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/OuterEnum.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/OuterEnum.java index a4222ad7ba0..dc1839041f6 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/OuterEnum.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/OuterEnum.java @@ -27,10 +27,13 @@ import com.fasterxml.jackson.annotation.JsonValue; */ public enum OuterEnum { + @XmlEnumValue("placed") PLACED("placed"), + @XmlEnumValue("approved") APPROVED("approved"), + @XmlEnumValue("delivered") DELIVERED("delivered"); private String value; diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Pet.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Pet.java index f6498477356..89efbf82c3c 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Pet.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/model/Pet.java @@ -80,11 +80,16 @@ public class Pet { /** * pet status in the store */ + @XmlType(name="StatusEnum") + @XmlEnum(String.class) public enum StatusEnum { + @XmlEnumValue("available") AVAILABLE("available"), + @XmlEnumValue("pending") PENDING("pending"), + @XmlEnumValue("sold") SOLD("sold"); private String value;