* 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>
* 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
The EOL is missing so let's add it in order to comply with POSIX standard:
Line
> A sequence of zero or more non- <newline> characters plus a terminating <newline> character.
* upgrade spring-boot-starter-parent
* upgrade springdoc and swagger-ui
* upgrade v3 swagger-annotations
* generate samples
* upgrade jackson
* fix spring cloud, remove temp comment
Putting "8" instead of "1.8" should be ok, because Spring Boot 3 requires Java 17 anyway, so it should be able to understand that 8 is the same as 1.8.
* generate samples
* upgrade JUnit 5, remove commons-io dependency, remove outdated samples/client/petstore/java/feign/feign10x/ files, generate samples
commons-io dependency was introduced in https://github.com/OpenAPITools/openapi-generator/pull/8484, but I don't see why it would be needed now or back then.
* update gson, generate samples
* update logback
* update feign
* update scribejava
* generate samples
* update httpmime
* okhttp-gson: update commons-lang & okhttp & junit-platform, remove mockito; generate samples
It seems Mockito is not used at all there.
* okhttp-gson: remove unnecessary sample files, generate sample files
* upgrade google-api-client & jersey-common, restore ClientTest, generate samples
* misc. upgrades in jersey2 and jersey3
jersey 3.1.3 is available already, but IntelliJ reports security problems in 3.1.3 and 3.1.2, so I used 3.1.1 instead.
* align some gradle&sbt files with poms, generate samples
* whitespace fix
* 5705: Move JsonProperty annotation to the getters
* Regenerate samples
* Add jackson check
* Add test
* Minor fix
* Fix test
* Fix version
* [Java][Spring] update test & samples; add serialization/deserialization test
---------
Co-authored-by: Oleh Kurpiak <oleh.kurpiak@gmail.com>
* Add constructor with required parameter for spring
Fix#9789
* [Java][Spring] constructor with required args
---------
Co-authored-by: Oleh Kurpiak <oleh.kurpiak@gmail.com>
* Use correct Pascal case for java enum
* Uniquely name @Bean annotations
* Use existing mustache var instead, run generate files
* rebase, re-run generators
* try to undo botched rebase/merge
* Attempt to manually undo whatever is going on w/ build, oops
* Attempt to manually undo whatever is going on w/ build, oops
* fix depricated @Schema(required) since swagger 2.2.5
* use same swagger-annotations version which is used by swagger-core which is a dependency of springdoc
* generated java sampes
* Fix OpenAPITools#5381
added x-is-one-of-interface extension for oneOf interface in mustache
template
* Fix OpenAPITools#5381
fixed name of model from UNKNOWN_BASE_TYPE to right one in api: operationId + OneOf
Fix OpenAPITools#5381
parcelableModel is not required
* Fix OpenAPITools#5381
removed not needed methods
* Fix OpenAPITools#5381
catch NPE cases in preprocessOpenAPI
updated samples
* Fix OpenAPITools#5381
fixed generation of oneOf Models
* Fix OpenAPITools#5381
addOneOfInterfaceModel only for cases when useOneOfInterfaces is true and for spring
* Fix OpenAPITools#5381
NPE fix
* Fix OpenAPITools#5381
spring: fixed use of oneOf Models in API
* Fix OpenAPITools#5381
implementing oneOf for spring lib overriding methods with different behavior from default
* Fix OpenAPITools#5381
added x-is-one-of-interface extension for oneOf interface in mustache
template
* Fix OpenAPITools#5381
fixed name of model from UNKNOWN_BASE_TYPE to right one in api: operationId + OneOf
Fix OpenAPITools#5381
removed not needed methods
Fix OpenAPITools#5381
fixed generation of oneOf Models
Fix OpenAPITools#5381
addOneOfInterfaceModel only for cases when useOneOfInterfaces is true and for spring
Fix OpenAPITools#5381
NPE fix for tests
* Fix OpenAPITools#5381
fixed handing of composed schema with array
* Fix OpenAPITools#5381
fixed NPE in addOneOfInterfaceModel
* Fix OpenAPITools#5381
fixed generation of oneOf models with descriminator
* Initial merge of 5.0
* Aligned with master formatting
* Corrected spacing for class names to align with samples.
* Merged master
* Updated samples
* Consolidate methods from JavaClient and SpringCodegen (mov up to AbstractJavaCodegen)
* set useLegacyDiscriminator to false, format templates
* Suport JsonTypeName, fq class name for spring.io.Resource
* Generate Samples
* Test full qualified usage of the spring Resource interface.
* Add java-camel to samples.circleci.spring profile
* Add more complex example combining inheritance and oneof-interface
* Remove x-implements Serializable from JavaClientCodegen (moved to AbstractJavaCodegen)
* Fix spacing before opening brace after extends/implements
* Generate Samples
* Add more complex example combining inheritance and oneof-interface
* Generate Samples
* Fix JsonTypeName annotation handling in Java and JavaSpring
* 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
* Fix JsonTypeName annotation handling in Java and JavaSpring (merge)
* Generate Samples
* Generate Samples
* Add oneof sample
* Generate Samples
* Giv example oas spec a meaningful name, demo usage of oneOf in Model
* Generate Samples
* Remove unnecessary JsonTypeName include, add example for JsonTypeName (Bar_Create)
* Generate Samples
* Generate Samples
Co-authored-by: Alexej <oleksejk@gmail.com>
Co-authored-by: JBurgess <joel.burgess@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>