* 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#5989Closes#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>
* upgrade okhttp-gson and google-api-client to junit5
* add changes in StringUtilTest
* use https instead of http to fix 301 (moved) error
* revert petstore test server url to http://petstore.swagger.io and regenerate samples
* synced gradle/sbt/pom, re-generated samples
* revert removal of port 80 from test url
* udpate google api client tests
* update sha
* update comment
---------
Co-authored-by: Thorsten Hirsch <t.hirsch@web.de>
* add initial openapi config and java generated files
* add java implementation for adding generator version
* regenerate sample client files
* remove tabs
* only show generated version if build info exists
* set build info for batch generation
* update generator doc for new global flag
* use existing property for generator version
* update templates to include generator version
* update templates for better generator version syntax
* revert undesired changes
* regenerate samples for openapi client
* update templates to correct formatting/newlines
* correct description text and add to usage doc
* add generator cli option for all codegen types
* use more concise version info; update existing codegens to support new prop
* correct wrong prop reference
* add initial test coverage for new prop
* update last (scala) templates with new prop
* update samples after upstream merge
* use consistent version output
* use better sample project id/name
* revert using option for generator version in templates
* regenerate tests in jersey2-java8 client
* update samples
* fix java google api client tests
* update java resteasy to use v3 spec for tests
* update java vertx to test with v3 spec
* update java resttemplate to test with v3 spec
* add new files
* regenerate jersey1 tests
* Content mediatype is hardcoded in api.mustache #11511
* Generate Samples
* OAS3 incorrect data type when providing a default value #11367
* Generate Samples
* Fix JsonTypeName annotation handling in Java and JavaSpring
* Generate Samples
* getIsClassnameSanitized: use null safe equals
* remove import mapping logic in model generation, better handle of file, list
* add new files for file, list
* fix some tests
* update tests, doc
* skip file as reserved word in feign client
* add new files
* remove file from reserved word list in spring generator
* [Java] deserialize to LinkedHashSet when unique items
* [Java] fix deserialization of readonly properties
* [Java] deserialize to LinkedHashSet when unique items
Refs #3358
Ensure `deprecated` operations are annotated/documented as such on the
generated methods. Libraries updated:
* [feign]
* [google-api-client]
* [microprofile]
* [okhttp-gson]
* [resttemplate]
* [retrofit]
* [retrofit/play*]
* [webclient]
* [vertx]
Ensure `deprecated` schemas are annotated/documented as such on the
generated classes/fields. Libraries updated:
* [feign]
* [google-api-client]
* [jersey2]
* [microprofile]
* [native]
* [okhttp-gson]
* [rest-assured]
* [resteasy]
* [resttemplate]
* [retrofit*]
* [webclient]
* [vertx]
Also fix two minor bugs to get the java sample tests working:
* Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache
* Fix a bad return type in webclient/api_test.mustache when uniqueItems=true
Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml,
several other samples were updated, but it's just new files to reflect the
deprecated schemas, so there should be no consequential differences.
Relevant bits of the spec:
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated
* https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
* [java/resttemplate] Generate valid code if no Authentication implementations present
Take the logic used to decide which instances to add to the authentications map and re-use to not import classes or offer non-functional util methods
* parameterize formParams
fixes#5782
* replace use of ISO8601DateFormat and ISO8601Utils with StdDateFormat
fixes#5779
* add constructor to intialise calendar
* Revert "[java/resttemplate] Generate valid code if no Authentication implementations present"
This reverts commit 6e450907ba.
* Revert "parameterize formParams"
This reverts commit 7a26ce5dd2.
* also override single arg parse method to avoid throwing exception
* also override single arg parse method to avoid throwing exception
* update samples
* update samples
* fix jersey1 tests
* fix jersey2 test
* update resteasy dependencies
* fix java jersey2 oas3 tests
* use java8 in springboot-beanvalidation
Co-authored-by: Jon Freedman <jon.freedman@zoho.com>