-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option to generate a fully sealed
model in the JavaSpring
generator
#20503
base: master
Are you sure you want to change the base?
Add option to generate a fully sealed
model in the JavaSpring
generator
#20503
Conversation
sealed
interfaces for oneOf
in the JavaSpring
generatorsealed
model in the JavaSpring
generator
sealed
model in the JavaSpring
generatorsealed
model in the JavaSpring
generator
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @alex-nt, thanks for the PR!
It generally looks good, but there are some special cases which need to be handled. When using your new feature on the input spec modules/openapi-generator/src/test/resources/3_0/oneOf_array.yaml, this is the generated code:
public sealed interface MyExampleGet200Response permits List<@Valid OneOf1> {
- HTML encoding needs to be disabled
- generics are not supported in the permits clause, afaik
List
shouldn't be in thepermits
list (same applies to other classes not generated by us)- annotations are not supported in the permits clause, afaik
Could you fix these problems please?
It might also make sense to test with some other "oneOf" files from modules/openapi-generator/src/test/resources/3_0 to find further cases that need special handling.
modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
Outdated
Show resolved
Hide resolved
modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java
Outdated
Show resolved
Hide resolved
@martin-mfg Thanks a lot, I'll look into all the |
…en/languages/SpringCodegen.java Co-authored-by: martin-mfg <[email protected]>
@martin-mfg how should I handle these? Just skip them? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you intend to include these changes? If yes that's fine. Just want to check, since you didn't include this in your initial PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just ran nix flake update
as I wanted to make sure that it has the latest JDK11 build (got burned in the past in a minor jdk11 release). I can revert if that is preferred.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's fine, leave it as it is. :) No need to revert.
Yes please. (Unless you have a better idea?) |
Add option to generate a fully
sealed
model in theJavaSpring
generator.Related with #15586
PR checklist
Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*
.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master
(upcoming7.x.0
minor release - breaking changes with fallbacks),8.0.x
(breaking changes without fallbacks)