forked from loafle/openapi-generator-original
[JAVA] [SPRING] [PKMST] [MICRONAUT] XML wireformat: Fix Jackson useWrapping=false, JAXB+Jackson namespaces (#18870)
* Fix XML annotations on model properties (JavaSpring) * generate JAXB annotations for attributes and elements * generate wrapper annotations (JAXB and Jackson) * use XML config from items for annotations of containers * Add test for Jackson XML wrapper correctness * Add additional test cases to cover all xml applications in spec Test now covers all use cases described in - https://web.archive.org/web/20240424203304/https://swagger.io/docs/specification/data-models/representing-xml/ - https://spec.openapis.org/oas/v3.0.0#xml-arrays * Fix basename used instead of xmlName when items.xmlName is unset See last example in spec: https://spec.openapis.org/oas/v3.0.0#xml-arrays * Harmonize spacing between Annotation attribute name and value * Refactor and group JAXB vs. Jackson XML annotations, only generate latter if enabled This is in line with the way the class annotations in `xmlAnnotations.mustache` are rendered – which only renders the `@Jackson`… xml annotations if additionalProperty jackson is true. Also reorder annotation attributes in the following order: - localName/name - namespace (optional) - isAttribute/useWrapping (optional) * Explicitly render `useWrapping = true` to @JacksonXmlElementWrapper This was slightly inspired by @jzrebiec via PR #5371. Wrapping is the default since Jackson 2.1 – so explicitly rendering this will: - make generated model work out-of-the-box in Jackson 2.0 for instance - ensure the models still work if the local `XmlWrapper` was configured with `useXmlWrapper(false)` * Move xml test spec to java resources folder (not spring specific) * Make test class name match class-under-test This makes discovery & cross-navigation in IDE easier. * Add complete xml annotations test for Java generators * Fix Java PKMST generator not generating @JacksonXmlElementWrapper * Fix Java microprofile generator missing @JacksonXmlRootElement * Fix Java microprofile generator not using wrapper annotations and namespaces * Fix Java Micronaut Client creating invalid (unclosed) @XmlAttribute annotations * Fix Micronaut Client using wrong localName for @JacksonXmlElementWrapper * Fix Micronaut client rendering @JacksonXmlProperty annotation twice * Make Java Micronaut render @JacksonXmlElementWrapper(useWrapping=false) for non-wrapped elements * Fix Jackson element using `xml.name` when it should be `items.xml.name` Closes #5989 Closes #3223 Relates to #9371 * Fix JAXB element using `baseName` instead of `xmlName` when items.xmlName is unset * Remove XML generation debug output from templates * Remove redundant newline between XML class annotations and class Brings the SpringCodegen in line with other Java Codegen's * Remove redundant newline between XML setter annotations and setter * Fix multiline JavaDoc block indentation and format * Simplify / condense xml annotation template into single lines May look a bit more complex, but cuts out a lot of repetitiveness. Also reorders annotation attributes in the following order: - localName/name - namespace (optional) - isAttribute/useWrapping (optional) * Harmonize spacing between Annotation attribute name and value * Remove unused jackson_annotations partial Was not referenced anywhere in java-helidon resources folder --------- Co-authored-by: Christian Schuster <christian@dnup.de>
This commit is contained in:
@@ -35,7 +35,7 @@ public class Category {
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("id")
|
||||
@@ -55,7 +55,7 @@ public class Category {
|
||||
/**
|
||||
* Get name
|
||||
* @return name
|
||||
*/
|
||||
*/
|
||||
@Pattern(regexp = "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$")
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("name")
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ModelApiResponse {
|
||||
/**
|
||||
* Get code
|
||||
* @return code
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("code")
|
||||
@@ -59,7 +59,7 @@ public class ModelApiResponse {
|
||||
/**
|
||||
* Get type
|
||||
* @return type
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("type")
|
||||
@@ -79,7 +79,7 @@ public class ModelApiResponse {
|
||||
/**
|
||||
* Get message
|
||||
* @return message
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("message")
|
||||
|
||||
@@ -84,7 +84,7 @@ public class Order {
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("id")
|
||||
@@ -104,7 +104,7 @@ public class Order {
|
||||
/**
|
||||
* Get petId
|
||||
* @return petId
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("petId")
|
||||
@@ -124,7 +124,7 @@ public class Order {
|
||||
/**
|
||||
* Get quantity
|
||||
* @return quantity
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("quantity")
|
||||
@@ -144,7 +144,7 @@ public class Order {
|
||||
/**
|
||||
* Get shipDate
|
||||
* @return shipDate
|
||||
*/
|
||||
*/
|
||||
@Valid
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("shipDate")
|
||||
@@ -164,7 +164,7 @@ public class Order {
|
||||
/**
|
||||
* Order Status
|
||||
* @return status
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "Order Status")
|
||||
@JsonProperty("status")
|
||||
@@ -184,7 +184,7 @@ public class Order {
|
||||
/**
|
||||
* Get complete
|
||||
* @return complete
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("complete")
|
||||
|
||||
@@ -101,7 +101,7 @@ public class Pet {
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("id")
|
||||
@@ -121,7 +121,7 @@ public class Pet {
|
||||
/**
|
||||
* Get category
|
||||
* @return category
|
||||
*/
|
||||
*/
|
||||
@Valid
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("category")
|
||||
@@ -141,7 +141,7 @@ public class Pet {
|
||||
/**
|
||||
* Get name
|
||||
* @return name
|
||||
*/
|
||||
*/
|
||||
@NotNull
|
||||
@ApiModelProperty(example = "doggie", required = true, value = "")
|
||||
@JsonProperty("name")
|
||||
@@ -169,7 +169,7 @@ public class Pet {
|
||||
/**
|
||||
* Get photoUrls
|
||||
* @return photoUrls
|
||||
*/
|
||||
*/
|
||||
@NotNull
|
||||
@ApiModelProperty(required = true, value = "")
|
||||
@JsonProperty("photoUrls")
|
||||
@@ -197,7 +197,7 @@ public class Pet {
|
||||
/**
|
||||
* Get tags
|
||||
* @return tags
|
||||
*/
|
||||
*/
|
||||
@Valid
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("tags")
|
||||
@@ -218,7 +218,7 @@ public class Pet {
|
||||
* pet status in the store
|
||||
* @return status
|
||||
* @deprecated
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "pet status in the store")
|
||||
@JsonProperty("status")
|
||||
@@ -229,7 +229,7 @@ public class Pet {
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
*/
|
||||
@Deprecated
|
||||
public void setStatus(StatusEnum status) {
|
||||
this.status = status;
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Tag {
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("id")
|
||||
@@ -55,7 +55,7 @@ public class Tag {
|
||||
/**
|
||||
* Get name
|
||||
* @return name
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("name")
|
||||
|
||||
@@ -47,7 +47,7 @@ public class User {
|
||||
/**
|
||||
* Get id
|
||||
* @return id
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("id")
|
||||
@@ -67,7 +67,7 @@ public class User {
|
||||
/**
|
||||
* Get username
|
||||
* @return username
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("username")
|
||||
@@ -87,7 +87,7 @@ public class User {
|
||||
/**
|
||||
* Get firstName
|
||||
* @return firstName
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("firstName")
|
||||
@@ -107,7 +107,7 @@ public class User {
|
||||
/**
|
||||
* Get lastName
|
||||
* @return lastName
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("lastName")
|
||||
@@ -127,7 +127,7 @@ public class User {
|
||||
/**
|
||||
* Get email
|
||||
* @return email
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("email")
|
||||
@@ -147,7 +147,7 @@ public class User {
|
||||
/**
|
||||
* Get password
|
||||
* @return password
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("password")
|
||||
@@ -167,7 +167,7 @@ public class User {
|
||||
/**
|
||||
* Get phone
|
||||
* @return phone
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "")
|
||||
@JsonProperty("phone")
|
||||
@@ -187,7 +187,7 @@ public class User {
|
||||
/**
|
||||
* User Status
|
||||
* @return userStatus
|
||||
*/
|
||||
*/
|
||||
|
||||
@ApiModelProperty(value = "User Status")
|
||||
@JsonProperty("userStatus")
|
||||
|
||||
Reference in New Issue
Block a user