openapi-generator: [BUG] OneOf java classes not getting generated as part of codeGen in gradle plugin 4.0.0

When I generate sever stub for spec having OneOf tags, the code generation gradle task is successful , but in the generated models package OneOf*.java classes are missing.

I am using org.openapitools:openapi-generator-gradle-plugin:4.0.0 for “jaxrs-jersey” generatorName.

For example for below YAML file class “OneOfSofa1Sofa2” is not getting generated , but it is referred for variable “sofaStyle” in generated class Home.java

I have attached the YML as txt home.txt

Below gradle task was used: openApiGenerate { generatorName = "jaxrs-jersey" inputSpec = "$rootDir/src/main/resources/home.yml".toString() outputDir = "$rootDir".toString() apiPackage = "com.home.rest.resources" invokerPackage = "com.home.rest" modelPackage = "com.home.rest.model" modelFilesConstrainedTo = [] configOptions = [ dateLibrary: "java8" ] }

Screenshot of how it looks in editor

Screen Shot 2019-05-16 at 10 26 17 AM

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Reactions: 18
  • Comments: 22 (2 by maintainers)

Most upvoted comments

Same issue here. This is a critical blocker for using openapi generator in our project as we deal with polymorphic APIs.

Has anyone at least found a workaround for this?

A (not type-safe) workaround is to enumerate the class names generated from oneOf types in the following command line switches when running the generator: --language-specific-primitives=OneOfTypeATypeB,OneOfTypeCTypeD --type-mappings=OneOfTypeATypeB=java.lang.Object,OneOfTypeCTypeD=java.lang.Object

A workaround is to create those classes manually.

any examples on how these classes should look like…?