[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) @XmlEnum({{dataType}}.class)
{{/withXml}} {{/withXml}}
{{^withXml}} {{^withXml}}
@JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class) @JsonbTypeSerializer({{datatypeWithEnum}}.Serializer.class)
@JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class) @JsonbTypeDeserializer({{datatypeWithEnum}}.Deserializer.class)
{{/withXml}} {{/withXml}}
public enum {{datatypeWithEnum}} { public enum {{datatypeWithEnum}} {
{{#allowableValues}} {{#allowableValues}}
{{#withXml}} {{#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}}
{{^withXml}} {{^withXml}}
{{#enumVars}}{{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}} {{#enumVars}}{{name}}({{dataType}}.valueOf({{{value}}})){{^-last}}, {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}
{{/withXml}} {{/withXml}}
{{/allowableValues}} {{/allowableValues}}
@ -63,4 +63,4 @@ public enum {{datatypeWithEnum}} {
} }
} }
{{/withXml}} {{/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}}} {{{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) { if ({{name}} == null) {
return null; return null;
} }
return {{name}}.value(); 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}}; return {{name}};
}{{/isListContainer}}{{/isEnum}}{{#isEnum}}{{#isMapContainer}}public {{{datatypeWithEnum}}} {{getter}}() { }{{/isListContainer}}{{/isEnum}}{{#isEnum}}{{#isMapContainer}}public {{{datatypeWithEnum}}} {{getter}}() {
return {{name}}; return {{name}};

View File

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

View File

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

View File

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

View File

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