[Java][Microprofile] JSON enum processing fix (#6700)

* When withXml=false we shouldn't add the jaxb imports

When users are just dealing with json and set withXml=false jaxb (Java Api XML binding) imports are not needed.

* Updated the microprodile-rest-client samples

* Removed cxf-rt-rs-extension-providers dependency

* Fix processing of enum values

* Remove unwanted changes

* Remove spaces
This commit is contained in:
Ravisankar-Challa 2020-06-21 21:02:44 +10:00 committed by GitHub
parent efafc58170
commit 4bb5afdefb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 32 deletions

View File

@ -3,17 +3,17 @@
@XmlEnum({{dataType}}.class)
{{/withXml}}
{{^withXml}}
@JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class)
@JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class)
@JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class)
@JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class)
{{/withXml}}
public enum {{datatypeWithEnum}} {
public enum {{datatypeWithEnum}} {
{{#allowableValues}}
{{#withXml}}
{{#enumVars}}@XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) {{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
{{#enumVars}}@XmlEnumValue({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) {{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
{{/withXml}}
{{^withXml}}
{{#enumVars}}{{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
{{#enumVars}}{{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
{{/withXml}}
{{/allowableValues}}
@ -63,4 +63,4 @@ public enum {{datatypeWithEnum}} {
}
}
{{/withXml}}
}
}

View File

@ -75,12 +75,14 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}}{{#serializ
{{#vendorExtensions.x-extra-annotation}}
{{{vendorExtensions.x-extra-annotation}}}
{{/vendorExtensions.x-extra-annotation}}
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} {{#isEnum}}{{^isListContainer}}{{^isMapContainer}}public {{dataType}} {{getter}}() {
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} {{#withXml}}{{#isEnum}}{{^isListContainer}}{{^isMapContainer}}public {{dataType}} {{getter}}() {
if ({{name}} == null) {
return null;
}
return {{name}}.value();
}{{/isMapContainer}}{{/isListContainer}}{{/isEnum}}{{#isEnum}}{{#isListContainer}}public {{{datatypeWithEnum}}} {{getter}}() {
}{{/isMapContainer}}{{/isListContainer}}{{/isEnum}}{{/withXml}}{{^withXml}}{{#isEnum}}{{^isListContainer}}{{^isMapContainer}}public {{datatypeWithEnum}} {{getter}}() {
return {{name}};
}{{/isMapContainer}}{{/isListContainer}}{{/isEnum}}{{/withXml}}{{#isEnum}}{{#isListContainer}}public {{{datatypeWithEnum}}} {{getter}}() {
return {{name}};
}{{/isListContainer}}{{/isEnum}}{{#isEnum}}{{#isMapContainer}}public {{{datatypeWithEnum}}} {{getter}}() {
return {{name}};

View File

@ -88,7 +88,6 @@
<version>1.3.5</version>
<scope>test</scope>
</dependency>
{{^disableMultipart}}
<dependency>
<groupId>org.apache.cxf</groupId>
@ -96,7 +95,6 @@
<version>3.2.6</version>
</dependency>
{{/disableMultipart}}
<dependency>
<groupId>javax.json.bind</groupId>
<artifactId>javax.json.bind-api</artifactId>

View File

@ -77,13 +77,11 @@
<version>1.3.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-extension-providers</artifactId>
<version>3.2.6</version>
</dependency>
<dependency>
<groupId>javax.json.bind</groupId>
<artifactId>javax.json.bind-api</artifactId>

View File

@ -50,11 +50,11 @@ public class Order {
private Date shipDate;
@JsonbTypeSerializer(StatusEnum.Serializer.class)
@JsonbTypeDeserializer(StatusEnum.Deserializer.class)
public enum StatusEnum {
@JsonbTypeSerializer(StatusEnum.Serializer.class)
@JsonbTypeDeserializer(StatusEnum.Deserializer.class)
public enum StatusEnum {
PLACED(String.valueOf("placed")), APPROVED(String.valueOf("approved")), DELIVERED(String.valueOf("delivered"));
PLACED(String.valueOf("placed")), APPROVED(String.valueOf("approved")), DELIVERED(String.valueOf("delivered"));
String value;
@ -90,7 +90,7 @@ PLACED(String.valueOf("placed")), APPROVED(String.valueOf("approved")), DELIVERE
generator.write(obj.value);
}
}
}
}
/**
* Order Status
@ -188,11 +188,8 @@ PLACED(String.valueOf("placed")), APPROVED(String.valueOf("approved")), DELIVERE
* @return status
**/
@JsonbProperty("status")
public String getStatus() {
if (status == null) {
return null;
}
return status.value();
public StatusEnum getStatus() {
return status;
}
/**

View File

@ -55,11 +55,11 @@ public class Pet {
private List<Tag> tags = null;
@JsonbTypeSerializer(StatusEnum.Serializer.class)
@JsonbTypeDeserializer(StatusEnum.Deserializer.class)
public enum StatusEnum {
@JsonbTypeSerializer(StatusEnum.Serializer.class)
@JsonbTypeDeserializer(StatusEnum.Deserializer.class)
public enum StatusEnum {
AVAILABLE(String.valueOf("available")), PENDING(String.valueOf("pending")), SOLD(String.valueOf("sold"));
AVAILABLE(String.valueOf("available")), PENDING(String.valueOf("pending")), SOLD(String.valueOf("sold"));
String value;
@ -95,7 +95,7 @@ AVAILABLE(String.valueOf("available")), PENDING(String.valueOf("pending")), SOLD
generator.write(obj.value);
}
}
}
}
/**
* pet status in the store
@ -222,11 +222,8 @@ AVAILABLE(String.valueOf("available")), PENDING(String.valueOf("pending")), SOLD
* @return status
**/
@JsonbProperty("status")
public String getStatus() {
if (status == null) {
return null;
}
return status.value();
public StatusEnum getStatus() {
return status;
}
/**