Skip to content

[Composite types] When allOf contains only one type don't generate union classes #2054

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

SergioArrighi
Copy link

Hello all,

I don't know if this may be of interest, but I think I saw some issues logged here and there of people asking for this kind of behaviour.
I originally wanted to make it optional, but I did't find any way to have some kind of configuration.

Thanks for the awesome work everybody and best regards.

@gracekarina
Copy link
Contributor

gracekarina commented Feb 13, 2024

Hi @SergioArrighi, this change breaks many tests, this could be added as an option if you follow the logic of the resolveCombinators option. thanks

Failures:
Error: OpenAPIResolverTest.componentsResolver:417 ClassCast class io.swagger.v3.oas.models.media.ObjectSchema cannot be cast to class io.swagger.v3.oas.models.media.ComposedSchema (io.swagger.v3.oas.models.media.ObjectSchema and io.swagger.v3.oas.models.media.ComposedSchema are in unnamed module of loader 'app')
Error: OpenAPIResolverTest.testComposedSchemaAdjacent:1012 NullPointer
Error: OpenAPIV3ParserTest.testComposedSchemaAdjacent:1396 NullPointer
Error: OpenAPIV3ParserTest.testIssue1777:128 expected [The id of the customer] but found [null]
Error: OpenAPIV3ParserTest.testIssue1802:143 expected object to not be null
Error: OpenAPIV3ParserTest.testIssueDereferencingComposedSchemaOneOf:84 expected object to not be null
Error: OpenAPIV3ParserTest.testOneOfExternalRefConflictName:1405 NullPointer
Error: OpenAPIDeserializerTest.testIssue1454AllOfDefaultValue:2892 expected [SCHEMA_DEFAULT] but found [null]

@gracekarina gracekarina self-requested a review February 13, 2024 18:29
if (n.isObject()) {
schema = getSchema((ObjectNode) n, location, result);
composedSchema.addAllOfItem(schema);
if (allOfArray.size() > 1) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this is going to be a new behavior, you could add it as an option, as the option resolveCombinators

Copy link
Contributor

@gracekarina gracekarina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if this is going to be a new behavior, you could add it as an option, as the option resolveCombinators

@SergioArrighi
Copy link
Author

Hello @gracekarina ,
thanks for the time you took to review this PR. Yes I first wanted to understand if it would be interesting for the project to have this kind of possibility and also to get some guidance on how to have a feature toggle for it. I will look into "resolveCombinators" as soon as I will have some time.
Thanks again for the review and for your work.
Regards

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants