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;