From 8236ce343ebecb5629d889a9f732f921c1c81cf9 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 17:56:17 +0200 Subject: [PATCH 01/16] Initial version MergeDiscriminatorEnum --- .../src/test/resources/3_0/oneof_21501.yaml | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml diff --git a/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml b/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml new file mode 100644 index 000000000000..e7feba408179 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml @@ -0,0 +1,104 @@ +openapi: 3.0.3 +info: + title: Example + version: 1.0.0 + +paths: + /party/full/{partyId}: + parameters: + - $ref: '#/components/parameters/partyId' + get: + summary: Get party by ID + operationId: getPartyById + responses: + '200': + description: Full party retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/FullParty' + put: + summary: Store party by ID + operationId: storePartyById + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FullParty' + responses: + '200': + description: Full party updated + '201': + description: Full party created + +components: + parameters: + partyId: + name: partyId + in: path + required: true + schema: + type: string + + schemas: + FullParty: + type: object + properties: + partyId: + type: string + partyContacts: + type: array + items: + $ref: '#/components/schemas/Contact' + + Contact: + oneOf: + - $ref: '#/components/schemas/Email' + - $ref: '#/components/schemas/Phone' + - $ref: '#/components/schemas/PostalAddress' + discriminator: + propertyName: contactTypeDiscriminator + mapping: + Email: '#/components/schemas/Email' + Phone: '#/components/schemas/Phone' + PostalAddress: '#/components/schemas/PostalAddress' + + Email: + type: object + required: + - contactTypeDiscriminator + - emailAddress + properties: + contactTypeDiscriminator: + type: string + enum: + - Email + emailAddress: + type: string + + Phone: + type: object + required: + - contactTypeDiscriminator + - phoneNumber + properties: + contactTypeDiscriminator: + type: string + enum: + - Phone + phoneNumber: + type: string + + PostalAddress: + type: object + required: + - contactTypeDiscriminator + - street + properties: + contactTypeDiscriminator: + type: string + enum: + - PostalAddress + street: + type: string From 77f17aaf5e5424938561630f314e7ee56c1f0f8a Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 18:37:55 +0200 Subject: [PATCH 02/16] Add x-class-extra-annotation to java interfaces --- .../resources/Java/oneof_interface.mustache | 3 +- .../JavaSpring/oneof_interface.mustache | 5 +- .../codegen/java/JavaClientCodegenTest.java | 19 +++- .../java/spring/SpringCodegenTest.java | 8 ++ .../3_0/java/oneOf-with-annotations.yaml | 44 ++++++++ .../src/test/resources/3_0/oneof_21501.yaml | 104 ------------------ 6 files changed, 75 insertions(+), 108 deletions(-) create mode 100644 modules/openapi-generator/src/test/resources/3_0/java/oneOf-with-annotations.yaml delete mode 100644 modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml diff --git a/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache b/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache index eadcb26b8297..765ef99051ce 100644 --- a/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache +++ b/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache @@ -1,4 +1,5 @@ -{{>additionalOneOfTypeAnnotations}}{{>generatedAnnotation}}{{>typeInfoAnnotation}}{{>xmlAnnotation}} +{{>additionalOneOfTypeAnnotations}}{{>generatedAnnotation}}{{>typeInfoAnnotation}}{{>xmlAnnotation}}{{#vendorExtensions.x-class-extra-annotation}}{{{vendorExtensions.x-class-extra-annotation}}} +{{/vendorExtensions.x-class-extra-annotation}} public {{>sealed}}interface {{classname}} {{#vendorExtensions.x-implements}}{{#-first}}extends {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}}{{>permits}}{ {{#discriminator}} public {{propertyType}} {{propertyGetter}}(); diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache index 98db2c7cf4e2..3033ea8af0da 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache @@ -13,7 +13,8 @@ @JsonSubTypes.Type(value = {{classname}}.class){{^-last}}, {{/-last}} {{/interfaceModels}} }) -{{/useDeductionForOneOfInterfaces}} +{{/useDeductionForOneOfInterfaces}}{{#vendorExtensions.x-class-extra-annotation}}{{{vendorExtensions.x-class-extra-annotation}}} +{{/vendorExtensions.x-class-extra-annotation}} {{/discriminator}} {{>generatedAnnotation}} @@ -21,4 +22,4 @@ public {{>sealed}}interface {{classname}}{{#vendorExtensions.x-implements}}{{#-f {{#discriminator}} public {{propertyType}} {{propertyGetter}}(); {{/discriminator}} -} \ No newline at end of file +} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index fd0e7271c9f7..d86f32b9cbba 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -3924,4 +3924,21 @@ public void oneOfWithInnerModelTest() { } assertTrue(speciesSeen); } -} \ No newline at end of file + + @Test + public void testOneOfClassWithAnnotation() throws IOException { + final Map files = generateFromContract("src/test/resources/3_0/java/oneOf-with-annotations.yaml", RESTCLIENT); + JavaFileAssert.assertThat(files.get("Fruit.java")) + .isNormalClass() + .assertTypeAnnotations().containsWithName("SuppressWarnings"); + } + + @Test + public void testOneOfInterfaceWithAnnotation() throws IOException { + final Map files = generateFromContract("src/test/resources/3_0/java/oneOf-with-annotations.yaml", RESTCLIENT, + Map.of(USE_ONE_OF_INTERFACES, "true")); + JavaFileAssert.assertThat(files.get("Fruit.java")) + .isInterface() + .assertTypeAnnotations().containsWithName("SuppressWarnings"); + } +} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index 582af3e770c6..e85833a6caf0 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -5730,4 +5730,12 @@ public void testHasRestControllerDoesNotHaveController_issue21156() throws IOExc javaFileAssert .hasImports("java.util.concurrent.atomic.AtomicInteger"); } + + @Test + public void testOneOfInterfaceWithAnnotation() throws IOException { + final Map files = generateFromContract("src/test/resources/3_0/java/oneOf-with-annotations.yaml", SPRING_BOOT); + JavaFileAssert.assertThat(files.get("Fruit.java")) + .isInterface() + .assertTypeAnnotations().containsWithName("SuppressWarnings"); + } } diff --git a/modules/openapi-generator/src/test/resources/3_0/java/oneOf-with-annotations.yaml b/modules/openapi-generator/src/test/resources/3_0/java/oneOf-with-annotations.yaml new file mode 100644 index 000000000000..2dc849dbdff3 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/java/oneOf-with-annotations.yaml @@ -0,0 +1,44 @@ +openapi: 3.0.1 +info: + title: fruity + version: 0.0.1 +paths: + /: + get: + responses: + '200': + description: desc + content: + application/json: + schema: + $ref: '#/components/schemas/fruit' +components: + schemas: + fruit: + title: fruit + x-class-extra-annotation: '@SuppressWarnings("unchecked")' + properties: + color: + type: string + oneOf: + - $ref: '#/components/schemas/apple' + - $ref: '#/components/schemas/banana' + - $ref: '#/components/schemas/orange' + apple: + title: apple + type: object + properties: + kind: + type: string + banana: + title: banana + type: object + properties: + count: + type: number + orange: + title: orange + type: object + properties: + sweet: + type: boolean diff --git a/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml b/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml deleted file mode 100644 index e7feba408179..000000000000 --- a/modules/openapi-generator/src/test/resources/3_0/oneof_21501.yaml +++ /dev/null @@ -1,104 +0,0 @@ -openapi: 3.0.3 -info: - title: Example - version: 1.0.0 - -paths: - /party/full/{partyId}: - parameters: - - $ref: '#/components/parameters/partyId' - get: - summary: Get party by ID - operationId: getPartyById - responses: - '200': - description: Full party retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/FullParty' - put: - summary: Store party by ID - operationId: storePartyById - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/FullParty' - responses: - '200': - description: Full party updated - '201': - description: Full party created - -components: - parameters: - partyId: - name: partyId - in: path - required: true - schema: - type: string - - schemas: - FullParty: - type: object - properties: - partyId: - type: string - partyContacts: - type: array - items: - $ref: '#/components/schemas/Contact' - - Contact: - oneOf: - - $ref: '#/components/schemas/Email' - - $ref: '#/components/schemas/Phone' - - $ref: '#/components/schemas/PostalAddress' - discriminator: - propertyName: contactTypeDiscriminator - mapping: - Email: '#/components/schemas/Email' - Phone: '#/components/schemas/Phone' - PostalAddress: '#/components/schemas/PostalAddress' - - Email: - type: object - required: - - contactTypeDiscriminator - - emailAddress - properties: - contactTypeDiscriminator: - type: string - enum: - - Email - emailAddress: - type: string - - Phone: - type: object - required: - - contactTypeDiscriminator - - phoneNumber - properties: - contactTypeDiscriminator: - type: string - enum: - - Phone - phoneNumber: - type: string - - PostalAddress: - type: object - required: - - contactTypeDiscriminator - - street - properties: - contactTypeDiscriminator: - type: string - enum: - - PostalAddress - street: - type: string From fcecfdc45dc315d626b8b4f37948571d10ef7f02 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 18:43:43 +0200 Subject: [PATCH 03/16] Rollback touched file --- .../3_0/oneof_polymorphism_and_inheritance.yaml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml b/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml index ad65b8921f73..9d28cadda9f8 100644 --- a/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml @@ -209,20 +209,6 @@ components: properties: length: type: integer - Animal: - oneOf: - - $ref: '#/components/schemas/Dog' - - $ref: '#/components/schemas/Cat' - Cat: - type: object - properties: - declawed: - type: boolean - Dog: - type: object - properties: - bark: - type: boolean requestBodies: Foo: @@ -249,4 +235,4 @@ components: schema: type: array items: - $ref: '#/components/schemas/FooRefOrValue' \ No newline at end of file + $ref: '#/components/schemas/FooRefOrValue' From 8ab4f382169f34455221a291c8ecfe5279ad8cf7 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 18:48:05 +0200 Subject: [PATCH 04/16] Rollback touched file --- .../3_0/oneof_polymorphism_and_inheritance.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml b/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml index 9d28cadda9f8..ad65b8921f73 100644 --- a/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/oneof_polymorphism_and_inheritance.yaml @@ -209,6 +209,20 @@ components: properties: length: type: integer + Animal: + oneOf: + - $ref: '#/components/schemas/Dog' + - $ref: '#/components/schemas/Cat' + Cat: + type: object + properties: + declawed: + type: boolean + Dog: + type: object + properties: + bark: + type: boolean requestBodies: Foo: @@ -235,4 +249,4 @@ components: schema: type: array items: - $ref: '#/components/schemas/FooRefOrValue' + $ref: '#/components/schemas/FooRefOrValue' \ No newline at end of file From eca99b3a96011b7afa79e1a4429c372b2ff3533c Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 20:44:30 +0200 Subject: [PATCH 05/16] Regenerate samples --- .../openapitools/client/model/DogTest.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java new file mode 100644 index 000000000000..86b2d87bd2f9 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java @@ -0,0 +1,47 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Dog + */ +class DogTest { + private final Dog model = new Dog(); + + /** + * Model tests for Dog + */ + @Test + void testDog() { + // TODO: test Dog + } + + /** + * Test the property 'bark' + */ + @Test + void barkTest() { + // TODO: test bark + } + +} From 664dd2452d6d00427e3439a043554cdb1f3884ba Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 20:45:16 +0200 Subject: [PATCH 06/16] Regenerate samples --- .../webclient-sealedInterface/docs/Animal.md | 10 ++ .../webclient-sealedInterface/docs/Cat.md | 17 +++ .../webclient-sealedInterface/docs/Dog.md | 17 +++ .../org/openapitools/client/model/Cat.java | 106 ++++++++++++++++++ .../org/openapitools/client/model/Dog.java | 106 ++++++++++++++++++ .../openapitools/client/model/AnimalTest.java | 34 ++++++ .../openapitools/client/model/CatTest.java | 47 ++++++++ 7 files changed, 337 insertions(+) create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Animal.md create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Cat.md create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Dog.md create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Animal.md b/samples/client/others/java/webclient-sealedInterface/docs/Animal.md new file mode 100644 index 000000000000..324c70fa7d96 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Animal.md @@ -0,0 +1,10 @@ + + +# Interface Animal + +## Implementing Classes + +* Cat +* Dog + + diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Cat.md b/samples/client/others/java/webclient-sealedInterface/docs/Cat.md new file mode 100644 index 000000000000..b893148b66b5 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Cat.md @@ -0,0 +1,17 @@ + + +# Cat + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**declawed** | **Boolean** | | [optional] | + + +## Implemented Interfaces + +* Animal + + diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Dog.md b/samples/client/others/java/webclient-sealedInterface/docs/Dog.md new file mode 100644 index 000000000000..25628713ba08 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Dog.md @@ -0,0 +1,17 @@ + + +# Dog + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**bark** | **Boolean** | | [optional] | + + +## Implemented Interfaces + +* Animal + + diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java new file mode 100644 index 000000000000..23ca5083733a --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java @@ -0,0 +1,106 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +/** + * Cat + */ +@JsonPropertyOrder({ + Cat.JSON_PROPERTY_DECLAWED +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +public final class Cat implements Animal { + public static final String JSON_PROPERTY_DECLAWED = "declawed"; + @javax.annotation.Nullable + private Boolean declawed; + + public Cat() { + } + + public Cat declawed(@javax.annotation.Nullable Boolean declawed) { + + this.declawed = declawed; + return this; + } + + /** + * Get declawed + * @return declawed + */ + @javax.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getDeclawed() { + return declawed; + } + + + @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDeclawed(@javax.annotation.Nullable Boolean declawed) { + this.declawed = declawed; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Cat cat = (Cat) o; + return Objects.equals(this.declawed, cat.declawed); + } + + @Override + public int hashCode() { + return Objects.hash(declawed); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Cat {\n"); + sb.append(" declawed: ").append(toIndentedString(declawed)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java new file mode 100644 index 000000000000..4de9f164a385 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java @@ -0,0 +1,106 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +/** + * Dog + */ +@JsonPropertyOrder({ + Dog.JSON_PROPERTY_BARK +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +public final class Dog implements Animal { + public static final String JSON_PROPERTY_BARK = "bark"; + @javax.annotation.Nullable + private Boolean bark; + + public Dog() { + } + + public Dog bark(@javax.annotation.Nullable Boolean bark) { + + this.bark = bark; + return this; + } + + /** + * Get bark + * @return bark + */ + @javax.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BARK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getBark() { + return bark; + } + + + @JsonProperty(value = JSON_PROPERTY_BARK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBark(@javax.annotation.Nullable Boolean bark) { + this.bark = bark; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Dog dog = (Dog) o; + return Objects.equals(this.bark, dog.bark); + } + + @Override + public int hashCode() { + return Objects.hash(bark); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Dog {\n"); + sb.append(" bark: ").append(toIndentedString(bark)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java new file mode 100644 index 000000000000..c22f4bd39218 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java @@ -0,0 +1,34 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.openapitools.client.model.Cat; +import org.openapitools.client.model.Dog; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Animal + */ +class AnimalTest { +} diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java new file mode 100644 index 000000000000..aee81afeb24d --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java @@ -0,0 +1,47 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Cat + */ +class CatTest { + private final Cat model = new Cat(); + + /** + * Model tests for Cat + */ + @Test + void testCat() { + // TODO: test Cat + } + + /** + * Test the property 'declawed' + */ + @Test + void declawedTest() { + // TODO: test declawed + } + +} From 3d2b1d578a5b7b8c29d2b8840398be028ea6a9e3 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 20:46:04 +0200 Subject: [PATCH 07/16] Regenerate samples --- .../resources/Java/oneof_interface.mustache | 4 +- .../org/openapitools/client/model/Animal.java | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java diff --git a/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache b/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache index 765ef99051ce..07a7a82412d1 100644 --- a/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache +++ b/modules/openapi-generator/src/main/resources/Java/oneof_interface.mustache @@ -1,4 +1,6 @@ -{{>additionalOneOfTypeAnnotations}}{{>generatedAnnotation}}{{>typeInfoAnnotation}}{{>xmlAnnotation}}{{#vendorExtensions.x-class-extra-annotation}}{{{vendorExtensions.x-class-extra-annotation}}} +{{>additionalOneOfTypeAnnotations}}{{>generatedAnnotation}}{{>typeInfoAnnotation}}{{>xmlAnnotation}} +{{#vendorExtensions.x-class-extra-annotation}} +{{{vendorExtensions.x-class-extra-annotation}}} {{/vendorExtensions.x-class-extra-annotation}} public {{>sealed}}interface {{classname}} {{#vendorExtensions.x-implements}}{{#-first}}extends {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{/vendorExtensions.x-implements}}{{>permits}}{ {{#discriminator}} diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java new file mode 100644 index 000000000000..337c198ebb25 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java @@ -0,0 +1,40 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.openapitools.client.model.Cat; +import org.openapitools.client.model.Dog; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +@JsonIgnoreProperties( + value = "", // ignore manually set , it will be automatically generated by Jackson during serialization + allowSetters = true // allows the to be set during deserialization +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "", visible = true) +public sealed interface Animal permits Dog, Cat { +} + From 04d33e43eec98c83a6bbfd47216905a22f3e319f Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 20:47:39 +0200 Subject: [PATCH 08/16] Regenerate samples --- .../webclient-sealedInterface/.openapi-generator/FILES | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES index db1b84e17530..7c7755885376 100644 --- a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES +++ b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES @@ -6,6 +6,7 @@ api/openapi.yaml build.gradle build.sbt docs/Addressable.md +docs/Animal.md docs/Apple.md docs/Banana.md docs/Bar.md @@ -13,6 +14,8 @@ docs/BarApi.md docs/BarCreate.md docs/BarRef.md docs/BarRefOrValue.md +docs/Cat.md +docs/Dog.md docs/Entity.md docs/EntityRef.md docs/Extensible.md @@ -49,12 +52,15 @@ src/main/java/org/openapitools/client/auth/Authentication.java src/main/java/org/openapitools/client/auth/HttpBasicAuth.java src/main/java/org/openapitools/client/auth/HttpBearerAuth.java src/main/java/org/openapitools/client/model/Addressable.java +src/main/java/org/openapitools/client/model/Animal.java src/main/java/org/openapitools/client/model/Apple.java src/main/java/org/openapitools/client/model/Banana.java src/main/java/org/openapitools/client/model/Bar.java src/main/java/org/openapitools/client/model/BarCreate.java src/main/java/org/openapitools/client/model/BarRef.java src/main/java/org/openapitools/client/model/BarRefOrValue.java +src/main/java/org/openapitools/client/model/Cat.java +src/main/java/org/openapitools/client/model/Dog.java src/main/java/org/openapitools/client/model/Entity.java src/main/java/org/openapitools/client/model/EntityRef.java src/main/java/org/openapitools/client/model/Extensible.java @@ -66,3 +72,6 @@ src/main/java/org/openapitools/client/model/FruitType.java src/main/java/org/openapitools/client/model/Pasta.java src/main/java/org/openapitools/client/model/Pizza.java src/main/java/org/openapitools/client/model/PizzaSpeziale.java +src/test/java/org/openapitools/client/model/AnimalTest.java +src/test/java/org/openapitools/client/model/CatTest.java +src/test/java/org/openapitools/client/model/DogTest.java From 093cdc3534aa45710219acd61cf237d16613dfad Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 20:59:54 +0200 Subject: [PATCH 09/16] Remove last end of line --- .../src/main/resources/JavaSpring/oneof_interface.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache index 3033ea8af0da..00fca619c748 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/oneof_interface.mustache @@ -22,4 +22,4 @@ public {{>sealed}}interface {{classname}}{{#vendorExtensions.x-implements}}{{#-f {{#discriminator}} public {{propertyType}} {{propertyGetter}}(); {{/discriminator}} -} +} \ No newline at end of file From 0b23a87ca46789098cdf6bc8d13b9974cfd1c804 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 21:21:42 +0200 Subject: [PATCH 10/16] regenrate samples --- .../src/main/java/org/openapitools/client/model/Animal.java | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java index 337c198ebb25..f2d77b69e0e2 100644 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java @@ -35,6 +35,7 @@ allowSetters = true // allows the to be set during deserialization ) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "", visible = true) + public sealed interface Animal permits Dog, Cat { } From 58bf9685561b01daadf08cc9a9bc4c51f3b3e7ac Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 21:22:34 +0200 Subject: [PATCH 11/16] regenrate samples --- .../java/webclient-sealedInterface/README.md | 3 +++ .../webclient-sealedInterface/api/openapi.yaml | 15 +++++++++++++++ .../.openapi-generator/VERSION | 2 +- .../main/java/org/openapitools/api/BarApi.java | 10 +++++----- .../main/java/org/openapitools/api/FooApi.java | 14 ++++++++------ .../configuration/EnumConverterConfiguration.java | 7 +++++++ .../java/org/openapitools/model/Addressable.java | 2 +- .../main/java/org/openapitools/model/Animal.java | 2 +- .../main/java/org/openapitools/model/Apple.java | 2 +- .../main/java/org/openapitools/model/Banana.java | 2 +- .../src/main/java/org/openapitools/model/Bar.java | 2 +- .../java/org/openapitools/model/BarCreate.java | 2 +- .../main/java/org/openapitools/model/BarRef.java | 2 +- .../org/openapitools/model/BarRefOrValue.java | 2 +- .../src/main/java/org/openapitools/model/Cat.java | 2 +- .../src/main/java/org/openapitools/model/Dog.java | 2 +- .../main/java/org/openapitools/model/Entity.java | 2 +- .../java/org/openapitools/model/EntityRef.java | 2 +- .../java/org/openapitools/model/Extensible.java | 2 +- .../src/main/java/org/openapitools/model/Foo.java | 2 +- .../main/java/org/openapitools/model/FooRef.java | 2 +- .../org/openapitools/model/FooRefOrValue.java | 2 +- .../main/java/org/openapitools/model/Fruit.java | 2 +- .../java/org/openapitools/model/FruitType.java | 2 +- .../main/java/org/openapitools/model/Pasta.java | 2 +- .../main/java/org/openapitools/model/Pizza.java | 2 +- .../org/openapitools/model/PizzaSpeziale.java | 2 +- .../src/main/resources/openapi.yaml | 14 ++++++++++++-- .../main/java/org/openapitools/model/Animal.java | 2 +- .../src/main/java/org/openapitools/model/Cat.java | 2 +- .../src/main/java/org/openapitools/model/Dog.java | 2 +- .../main/java/org/openapitools/model/Animal.java | 2 +- .../src/main/java/org/openapitools/model/Cat.java | 2 +- .../src/main/java/org/openapitools/model/Dog.java | 2 +- 34 files changed, 78 insertions(+), 41 deletions(-) diff --git a/samples/client/others/java/webclient-sealedInterface/README.md b/samples/client/others/java/webclient-sealedInterface/README.md index 2a98a40d09c9..bd75247af413 100644 --- a/samples/client/others/java/webclient-sealedInterface/README.md +++ b/samples/client/others/java/webclient-sealedInterface/README.md @@ -124,12 +124,15 @@ Class | Method | HTTP request | Description ## Documentation for Models - [Addressable](docs/Addressable.md) + - [Animal](docs/Animal.md) - [Apple](docs/Apple.md) - [Banana](docs/Banana.md) - [Bar](docs/Bar.md) - [BarCreate](docs/BarCreate.md) - [BarRef](docs/BarRef.md) - [BarRefOrValue](docs/BarRefOrValue.md) + - [Cat](docs/Cat.md) + - [Dog](docs/Dog.md) - [Entity](docs/Entity.md) - [EntityRef](docs/EntityRef.md) - [Extensible](docs/Extensible.md) diff --git a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml index 844dd45174f9..d0afd744f5e9 100644 --- a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml +++ b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml @@ -266,4 +266,19 @@ components: required: - length type: object + Animal: + oneOf: + - $ref: "#/components/schemas/Dog" + - $ref: "#/components/schemas/Cat" + x-one-of-name: Animal + Cat: + properties: + declawed: + type: boolean + type: object + Dog: + properties: + bark: + type: boolean + type: object diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/.openapi-generator/VERSION b/samples/openapi3/server/petstore/spring-boot-oneof-interface/.openapi-generator/VERSION index fc74d6ceba8e..5e5282953086 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/.openapi-generator/VERSION +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/.openapi-generator/VERSION @@ -1 +1 @@ -7.15.0-SNAPSHOT +7.16.0-SNAPSHOT diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/BarApi.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/BarApi.java index 5a1d6c7b57e3..6c8d05565fee 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/BarApi.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/BarApi.java @@ -1,5 +1,5 @@ -/** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.15.0-SNAPSHOT). +/* + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.16.0-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ @@ -21,7 +21,6 @@ import io.swagger.v3.oas.annotations.media.ExampleObject; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.lang.Nullable; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -35,7 +34,7 @@ import java.util.Optional; import javax.annotation.Generated; -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") @Validated @Tag(name = "Bar", description = "the Bar API") public interface BarApi { @@ -44,6 +43,7 @@ default Optional getRequest() { return Optional.empty(); } + public static final String PATH_CREATE_BAR = "/bar"; /** * POST /bar : Create a Bar * @@ -62,7 +62,7 @@ default Optional getRequest() { ) @RequestMapping( method = RequestMethod.POST, - value = "/bar", + value = BarApi.PATH_CREATE_BAR, produces = { "application/json" }, consumes = { "application/json" } ) diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/FooApi.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/FooApi.java index e0c6c57862d6..68df49abf188 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/FooApi.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/api/FooApi.java @@ -1,5 +1,5 @@ -/** - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.15.0-SNAPSHOT). +/* + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) (7.16.0-SNAPSHOT). * https://openapi-generator.tech * Do not edit the class manually. */ @@ -7,6 +7,7 @@ import org.openapitools.model.Foo; import org.openapitools.model.FooRefOrValue; +import org.springframework.lang.Nullable; import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -21,7 +22,6 @@ import io.swagger.v3.oas.annotations.media.ExampleObject; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.lang.Nullable; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -35,7 +35,7 @@ import java.util.Optional; import javax.annotation.Generated; -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") @Validated @Tag(name = "Foo", description = "the Foo API") public interface FooApi { @@ -44,6 +44,7 @@ default Optional getRequest() { return Optional.empty(); } + public static final String PATH_CREATE_FOO = "/foo"; /** * POST /foo : Create a Foo * @@ -62,7 +63,7 @@ default Optional getRequest() { ) @RequestMapping( method = RequestMethod.POST, - value = "/foo", + value = FooApi.PATH_CREATE_FOO, produces = { "application/json" }, consumes = { "application/json;charset=utf-8" } ) @@ -84,6 +85,7 @@ default ResponseEntity createFoo( } + public static final String PATH_GET_ALL_FOOS = "/foo"; /** * GET /foo : GET all Foos * @@ -101,7 +103,7 @@ default ResponseEntity createFoo( ) @RequestMapping( method = RequestMethod.GET, - value = "/foo", + value = FooApi.PATH_GET_ALL_FOOS, produces = { "application/json;charset=utf-8" } ) diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java index 638061b124c5..cb1b70c02a8f 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -6,6 +6,13 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.converter.Converter; +/** + * This class provides Spring Converter beans for the enum models in the OpenAPI specification. + * + * By default, Spring only converts primitive types to enums using Enum::valueOf, which can prevent + * correct conversion if the OpenAPI specification is using an `enumPropertyNaming` other than + * `original` or the specification has an integer enum. + */ @Configuration(value = "org.openapitools.configuration.enumConverterConfiguration") public class EnumConverterConfiguration { diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Addressable.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Addressable.java index cc1faa7f02f9..730627fb5fa7 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Addressable.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Addressable.java @@ -20,7 +20,7 @@ */ @Schema(name = "Addressable", description = "Base schema for addressable entities") -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Addressable { private @Nullable String href; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Animal.java index 71497d6c7192..72b94311d02e 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Animal.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Animal.java @@ -26,6 +26,6 @@ @JsonSubTypes.Type(value = Dog.class), @JsonSubTypes.Type(value = Cat.class) }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public interface Animal { } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Apple.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Apple.java index 98f9bc20637e..634fa8f11281 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Apple.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Apple.java @@ -23,7 +23,7 @@ * Apple */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Apple implements Fruit { private Integer seeds; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Banana.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Banana.java index 7ddd5c8eef1a..72d79c9df4c9 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Banana.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Banana.java @@ -23,7 +23,7 @@ * Banana */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Banana implements Fruit { private Integer length; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Bar.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Bar.java index 7ef793d7b0c4..ea98b1ff2c4b 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Bar.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Bar.java @@ -25,7 +25,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Bar extends Entity implements BarRefOrValue { private String id; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarCreate.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarCreate.java index 4ff8623f2cd1..f57fb61afd92 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarCreate.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarCreate.java @@ -27,7 +27,7 @@ @JsonTypeName("Bar_Create") -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class BarCreate extends Entity { private @Nullable String barPropA; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRef.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRef.java index 9e693220631e..ac60d2fccad7 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRef.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRef.java @@ -24,7 +24,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class BarRef extends EntityRef implements BarRefOrValue { public BarRef() { diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRefOrValue.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRefOrValue.java index 231127081847..abad6620f475 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRefOrValue.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/BarRefOrValue.java @@ -32,7 +32,7 @@ @JsonSubTypes.Type(value = BarRef.class, name = "BarRef") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public interface BarRefOrValue { public String getAtType(); } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Cat.java index 690ed47b4bc9..e0f6d444a828 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Cat.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Cat.java @@ -19,7 +19,7 @@ * Cat */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Cat implements Animal { private @Nullable Boolean declawed; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Dog.java index 385ffd6ab3c8..377cb4b888cd 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Dog.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Dog.java @@ -19,7 +19,7 @@ * Dog */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Dog implements Animal { private @Nullable Boolean bark; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Entity.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Entity.java index 312c1480e7c6..bef926d21d66 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Entity.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Entity.java @@ -36,7 +36,7 @@ @JsonSubTypes.Type(value = PizzaSpeziale.class, name = "PizzaSpeziale") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Entity { private @Nullable String href; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/EntityRef.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/EntityRef.java index e350803a8aa3..c6d67e5b5fc1 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/EntityRef.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/EntityRef.java @@ -33,7 +33,7 @@ @JsonSubTypes.Type(value = FooRef.class, name = "FooRef") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class EntityRef { private @Nullable String name; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Extensible.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Extensible.java index c0324216c73d..35409b11c790 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Extensible.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Extensible.java @@ -19,7 +19,7 @@ * Extensible */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Extensible { private @Nullable String atSchemaLocation; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Foo.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Foo.java index b3fd833b8eac..8d8a8776ed7c 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Foo.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Foo.java @@ -24,7 +24,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Foo extends Entity implements FooRefOrValue { private @Nullable String fooPropA; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRef.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRef.java index ba4d64626c90..d1c6d333237e 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRef.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRef.java @@ -24,7 +24,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class FooRef extends EntityRef implements FooRefOrValue { private @Nullable String foorefPropA; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRefOrValue.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRefOrValue.java index 21f35dee14a6..62ba99f5651c 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRefOrValue.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FooRefOrValue.java @@ -31,7 +31,7 @@ @JsonSubTypes.Type(value = FooRef.class, name = "FooRef") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public interface FooRefOrValue { public String getAtType(); } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Fruit.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Fruit.java index 0313fa6de3e3..cd6729294fd2 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Fruit.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Fruit.java @@ -33,7 +33,7 @@ @JsonSubTypes.Type(value = Banana.class, name = "BANANA") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public interface Fruit { public FruitType getFruitType(); } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FruitType.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FruitType.java index b23ab8a11701..0f1a448e3c4d 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FruitType.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/FruitType.java @@ -20,7 +20,7 @@ * Gets or Sets FruitType */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public enum FruitType { APPLE("APPLE"), diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pasta.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pasta.java index 262f1386da46..b5ff1bcceb41 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pasta.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pasta.java @@ -24,7 +24,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Pasta extends Entity { private @Nullable String vendor; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pizza.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pizza.java index 53979cecbafd..b9c76341a568 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pizza.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/Pizza.java @@ -33,7 +33,7 @@ @JsonSubTypes.Type(value = PizzaSpeziale.class, name = "PizzaSpeziale") }) -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Pizza extends Entity { private @Nullable BigDecimal pizzaSize; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/PizzaSpeziale.java b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/PizzaSpeziale.java index c52c56041e7d..75e9a127ec46 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/PizzaSpeziale.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/java/org/openapitools/model/PizzaSpeziale.java @@ -25,7 +25,7 @@ */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class PizzaSpeziale extends Pizza { private @Nullable String toppings; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/resources/openapi.yaml b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/resources/openapi.yaml index df48b1fe6ba5..fbef5145c2d5 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/resources/openapi.yaml +++ b/samples/openapi3/server/petstore/spring-boot-oneof-interface/src/main/resources/openapi.yaml @@ -15,7 +15,13 @@ paths: operationId: getAllFoos responses: "200": - $ref: "#/components/responses/200FooArray" + content: + application/json;charset=utf-8: + schema: + items: + $ref: "#/components/schemas/FooRefOrValue" + type: array + description: Success summary: GET all Foos tags: - Foo @@ -29,7 +35,11 @@ paths: $ref: "#/components/requestBodies/Foo" responses: "201": - $ref: "#/components/responses/201Foo" + content: + application/json: + schema: + $ref: "#/components/schemas/FooRefOrValue" + description: Error summary: Create a Foo tags: - Foo diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Animal.java index 30731ad0d1eb..8c6cd8ddd1f0 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Animal.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Animal.java @@ -20,6 +20,6 @@ import javax.annotation.Generated; -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public sealed interface Animal permits Dog, Cat { } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Cat.java index 3082c00bd925..4dd282bcc66c 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Cat.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Cat.java @@ -19,7 +19,7 @@ * Cat */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public final class Cat implements Animal { private @Nullable Boolean declawed; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Dog.java index 4ee53035790d..91a40561e686 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Dog.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof-sealed/src/main/java/org/openapitools/model/Dog.java @@ -19,7 +19,7 @@ * Dog */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public final class Dog implements Animal { private @Nullable Boolean bark; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Animal.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Animal.java index 53d04fdcc39f..823704535148 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Animal.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Animal.java @@ -20,6 +20,6 @@ import javax.annotation.Generated; -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public interface Animal { } diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Cat.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Cat.java index 5c22cba14724..1fb15f84fa31 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Cat.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Cat.java @@ -19,7 +19,7 @@ * Cat */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Cat implements Animal { private @Nullable Boolean declawed; diff --git a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Dog.java b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Dog.java index d3b99c1f9d97..3f4a2489c812 100644 --- a/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Dog.java +++ b/samples/openapi3/server/petstore/spring-boot-oneof/src/main/java/org/openapitools/model/Dog.java @@ -19,7 +19,7 @@ * Dog */ -@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.15.0-SNAPSHOT") +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") public class Dog implements Animal { private @Nullable Boolean bark; From cd1a73f453ab83aad1b004c08fa3b89efad07e8a Mon Sep 17 00:00:00 2001 From: jpfinne Date: Sun, 21 Sep 2025 21:34:37 +0200 Subject: [PATCH 12/16] fix webclient-sealedInterface --- .../.openapi-generator/FILES | 9 ---- .../openapitools/client/model/AnimalTest.java | 34 -------------- .../openapitools/client/model/CatTest.java | 47 ------------------- .../openapitools/client/model/DogTest.java | 47 ------------------- 4 files changed, 137 deletions(-) delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES index 7c7755885376..db1b84e17530 100644 --- a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES +++ b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES @@ -6,7 +6,6 @@ api/openapi.yaml build.gradle build.sbt docs/Addressable.md -docs/Animal.md docs/Apple.md docs/Banana.md docs/Bar.md @@ -14,8 +13,6 @@ docs/BarApi.md docs/BarCreate.md docs/BarRef.md docs/BarRefOrValue.md -docs/Cat.md -docs/Dog.md docs/Entity.md docs/EntityRef.md docs/Extensible.md @@ -52,15 +49,12 @@ src/main/java/org/openapitools/client/auth/Authentication.java src/main/java/org/openapitools/client/auth/HttpBasicAuth.java src/main/java/org/openapitools/client/auth/HttpBearerAuth.java src/main/java/org/openapitools/client/model/Addressable.java -src/main/java/org/openapitools/client/model/Animal.java src/main/java/org/openapitools/client/model/Apple.java src/main/java/org/openapitools/client/model/Banana.java src/main/java/org/openapitools/client/model/Bar.java src/main/java/org/openapitools/client/model/BarCreate.java src/main/java/org/openapitools/client/model/BarRef.java src/main/java/org/openapitools/client/model/BarRefOrValue.java -src/main/java/org/openapitools/client/model/Cat.java -src/main/java/org/openapitools/client/model/Dog.java src/main/java/org/openapitools/client/model/Entity.java src/main/java/org/openapitools/client/model/EntityRef.java src/main/java/org/openapitools/client/model/Extensible.java @@ -72,6 +66,3 @@ src/main/java/org/openapitools/client/model/FruitType.java src/main/java/org/openapitools/client/model/Pasta.java src/main/java/org/openapitools/client/model/Pizza.java src/main/java/org/openapitools/client/model/PizzaSpeziale.java -src/test/java/org/openapitools/client/model/AnimalTest.java -src/test/java/org/openapitools/client/model/CatTest.java -src/test/java/org/openapitools/client/model/DogTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java deleted file mode 100644 index c22f4bd39218..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import org.openapitools.client.model.Cat; -import org.openapitools.client.model.Dog; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -/** - * Model tests for Animal - */ -class AnimalTest { -} diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java deleted file mode 100644 index aee81afeb24d..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -/** - * Model tests for Cat - */ -class CatTest { - private final Cat model = new Cat(); - - /** - * Model tests for Cat - */ - @Test - void testCat() { - // TODO: test Cat - } - - /** - * Test the property 'declawed' - */ - @Test - void declawedTest() { - // TODO: test declawed - } - -} diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java deleted file mode 100644 index 86b2d87bd2f9..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -/** - * Model tests for Dog - */ -class DogTest { - private final Dog model = new Dog(); - - /** - * Model tests for Dog - */ - @Test - void testDog() { - // TODO: test Dog - } - - /** - * Test the property 'bark' - */ - @Test - void barkTest() { - // TODO: test bark - } - -} From fa98330248c9f646a2c1defea648f3e4e6b47483 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Mon, 22 Sep 2025 08:43:00 +0200 Subject: [PATCH 13/16] fix webclient-sealedInterface --- samples/client/others/java/webclient-sealedInterface/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/samples/client/others/java/webclient-sealedInterface/README.md b/samples/client/others/java/webclient-sealedInterface/README.md index bd75247af413..2a98a40d09c9 100644 --- a/samples/client/others/java/webclient-sealedInterface/README.md +++ b/samples/client/others/java/webclient-sealedInterface/README.md @@ -124,15 +124,12 @@ Class | Method | HTTP request | Description ## Documentation for Models - [Addressable](docs/Addressable.md) - - [Animal](docs/Animal.md) - [Apple](docs/Apple.md) - [Banana](docs/Banana.md) - [Bar](docs/Bar.md) - [BarCreate](docs/BarCreate.md) - [BarRef](docs/BarRef.md) - [BarRefOrValue](docs/BarRefOrValue.md) - - [Cat](docs/Cat.md) - - [Dog](docs/Dog.md) - [Entity](docs/Entity.md) - [EntityRef](docs/EntityRef.md) - [Extensible](docs/Extensible.md) From 276a840718adc9a8553733d7773a69b7d82f21ca Mon Sep 17 00:00:00 2001 From: jpfinne Date: Mon, 22 Sep 2025 08:43:59 +0200 Subject: [PATCH 14/16] fix webclient-sealedInterface --- .../api/openapi.yaml | 15 --- .../webclient-sealedInterface/docs/Animal.md | 10 -- .../webclient-sealedInterface/docs/Cat.md | 17 --- .../webclient-sealedInterface/docs/Dog.md | 17 --- .../org/openapitools/client/model/Animal.java | 41 ------- .../org/openapitools/client/model/Cat.java | 106 ------------------ .../org/openapitools/client/model/Dog.java | 106 ------------------ 7 files changed, 312 deletions(-) delete mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Animal.md delete mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Cat.md delete mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Dog.md delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java delete mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java diff --git a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml index d0afd744f5e9..844dd45174f9 100644 --- a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml +++ b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml @@ -266,19 +266,4 @@ components: required: - length type: object - Animal: - oneOf: - - $ref: "#/components/schemas/Dog" - - $ref: "#/components/schemas/Cat" - x-one-of-name: Animal - Cat: - properties: - declawed: - type: boolean - type: object - Dog: - properties: - bark: - type: boolean - type: object diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Animal.md b/samples/client/others/java/webclient-sealedInterface/docs/Animal.md deleted file mode 100644 index 324c70fa7d96..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/docs/Animal.md +++ /dev/null @@ -1,10 +0,0 @@ - - -# Interface Animal - -## Implementing Classes - -* Cat -* Dog - - diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Cat.md b/samples/client/others/java/webclient-sealedInterface/docs/Cat.md deleted file mode 100644 index b893148b66b5..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/docs/Cat.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# Cat - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**declawed** | **Boolean** | | [optional] | - - -## Implemented Interfaces - -* Animal - - diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Dog.md b/samples/client/others/java/webclient-sealedInterface/docs/Dog.md deleted file mode 100644 index 25628713ba08..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/docs/Dog.md +++ /dev/null @@ -1,17 +0,0 @@ - - -# Dog - - -## Properties - -| Name | Type | Description | Notes | -|------------ | ------------- | ------------- | -------------| -|**bark** | **Boolean** | | [optional] | - - -## Implemented Interfaces - -* Animal - - diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java deleted file mode 100644 index f2d77b69e0e2..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import java.util.Objects; -import java.util.Arrays; -import java.util.Locale; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import org.openapitools.client.model.Cat; -import org.openapitools.client.model.Dog; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.annotation.JsonTypeName; - -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") -@JsonIgnoreProperties( - value = "", // ignore manually set , it will be automatically generated by Jackson during serialization - allowSetters = true // allows the to be set during deserialization -) -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "", visible = true) - -public sealed interface Animal permits Dog, Cat { -} - diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java deleted file mode 100644 index 23ca5083733a..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import java.util.Objects; -import java.util.Arrays; -import java.util.Locale; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.annotation.JsonTypeName; - -/** - * Cat - */ -@JsonPropertyOrder({ - Cat.JSON_PROPERTY_DECLAWED -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") -public final class Cat implements Animal { - public static final String JSON_PROPERTY_DECLAWED = "declawed"; - @javax.annotation.Nullable - private Boolean declawed; - - public Cat() { - } - - public Cat declawed(@javax.annotation.Nullable Boolean declawed) { - - this.declawed = declawed; - return this; - } - - /** - * Get declawed - * @return declawed - */ - @javax.annotation.Nullable - @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getDeclawed() { - return declawed; - } - - - @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setDeclawed(@javax.annotation.Nullable Boolean declawed) { - this.declawed = declawed; - } - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Cat cat = (Cat) o; - return Objects.equals(this.declawed, cat.declawed); - } - - @Override - public int hashCode() { - return Objects.hash(declawed); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Cat {\n"); - sb.append(" declawed: ").append(toIndentedString(declawed)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java deleted file mode 100644 index 4de9f164a385..000000000000 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * ByRefOrValue - * This tests for a oneOf interface representation - * - * The version of the OpenAPI document: 0.0.1 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -package org.openapitools.client.model; - -import java.util.Objects; -import java.util.Arrays; -import java.util.Locale; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonValue; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.annotation.JsonTypeName; - -/** - * Dog - */ -@JsonPropertyOrder({ - Dog.JSON_PROPERTY_BARK -}) -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") -public final class Dog implements Animal { - public static final String JSON_PROPERTY_BARK = "bark"; - @javax.annotation.Nullable - private Boolean bark; - - public Dog() { - } - - public Dog bark(@javax.annotation.Nullable Boolean bark) { - - this.bark = bark; - return this; - } - - /** - * Get bark - * @return bark - */ - @javax.annotation.Nullable - @JsonProperty(value = JSON_PROPERTY_BARK, required = false) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - - public Boolean getBark() { - return bark; - } - - - @JsonProperty(value = JSON_PROPERTY_BARK, required = false) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public void setBark(@javax.annotation.Nullable Boolean bark) { - this.bark = bark; - } - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - Dog dog = (Dog) o; - return Objects.equals(this.bark, dog.bark); - } - - @Override - public int hashCode() { - return Objects.hash(bark); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class Dog {\n"); - sb.append(" bark: ").append(toIndentedString(bark)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - From 31c60daba4a81d4ea38a8893d082d69c226a0fbc Mon Sep 17 00:00:00 2001 From: jpfinne Date: Mon, 22 Sep 2025 09:17:57 +0200 Subject: [PATCH 15/16] fix webclient-sealedInterface --- .../.openapi-generator/FILES | 9 ++ .../java/webclient-sealedInterface/README.md | 3 + .../api/openapi.yaml | 15 +++ .../webclient-sealedInterface/docs/Animal.md | 10 ++ .../webclient-sealedInterface/docs/Cat.md | 17 +++ .../webclient-sealedInterface/docs/Dog.md | 17 +++ .../org/openapitools/client/model/Animal.java | 41 +++++++ .../org/openapitools/client/model/Cat.java | 106 ++++++++++++++++++ .../org/openapitools/client/model/Dog.java | 106 ++++++++++++++++++ .../openapitools/client/model/AnimalTest.java | 34 ++++++ .../openapitools/client/model/CatTest.java | 47 ++++++++ .../openapitools/client/model/DogTest.java | 47 ++++++++ 12 files changed, 452 insertions(+) create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Animal.md create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Cat.md create mode 100644 samples/client/others/java/webclient-sealedInterface/docs/Dog.md create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java create mode 100644 samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES index db1b84e17530..7c7755885376 100644 --- a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES +++ b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES @@ -6,6 +6,7 @@ api/openapi.yaml build.gradle build.sbt docs/Addressable.md +docs/Animal.md docs/Apple.md docs/Banana.md docs/Bar.md @@ -13,6 +14,8 @@ docs/BarApi.md docs/BarCreate.md docs/BarRef.md docs/BarRefOrValue.md +docs/Cat.md +docs/Dog.md docs/Entity.md docs/EntityRef.md docs/Extensible.md @@ -49,12 +52,15 @@ src/main/java/org/openapitools/client/auth/Authentication.java src/main/java/org/openapitools/client/auth/HttpBasicAuth.java src/main/java/org/openapitools/client/auth/HttpBearerAuth.java src/main/java/org/openapitools/client/model/Addressable.java +src/main/java/org/openapitools/client/model/Animal.java src/main/java/org/openapitools/client/model/Apple.java src/main/java/org/openapitools/client/model/Banana.java src/main/java/org/openapitools/client/model/Bar.java src/main/java/org/openapitools/client/model/BarCreate.java src/main/java/org/openapitools/client/model/BarRef.java src/main/java/org/openapitools/client/model/BarRefOrValue.java +src/main/java/org/openapitools/client/model/Cat.java +src/main/java/org/openapitools/client/model/Dog.java src/main/java/org/openapitools/client/model/Entity.java src/main/java/org/openapitools/client/model/EntityRef.java src/main/java/org/openapitools/client/model/Extensible.java @@ -66,3 +72,6 @@ src/main/java/org/openapitools/client/model/FruitType.java src/main/java/org/openapitools/client/model/Pasta.java src/main/java/org/openapitools/client/model/Pizza.java src/main/java/org/openapitools/client/model/PizzaSpeziale.java +src/test/java/org/openapitools/client/model/AnimalTest.java +src/test/java/org/openapitools/client/model/CatTest.java +src/test/java/org/openapitools/client/model/DogTest.java diff --git a/samples/client/others/java/webclient-sealedInterface/README.md b/samples/client/others/java/webclient-sealedInterface/README.md index 2a98a40d09c9..bd75247af413 100644 --- a/samples/client/others/java/webclient-sealedInterface/README.md +++ b/samples/client/others/java/webclient-sealedInterface/README.md @@ -124,12 +124,15 @@ Class | Method | HTTP request | Description ## Documentation for Models - [Addressable](docs/Addressable.md) + - [Animal](docs/Animal.md) - [Apple](docs/Apple.md) - [Banana](docs/Banana.md) - [Bar](docs/Bar.md) - [BarCreate](docs/BarCreate.md) - [BarRef](docs/BarRef.md) - [BarRefOrValue](docs/BarRefOrValue.md) + - [Cat](docs/Cat.md) + - [Dog](docs/Dog.md) - [Entity](docs/Entity.md) - [EntityRef](docs/EntityRef.md) - [Extensible](docs/Extensible.md) diff --git a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml index 844dd45174f9..d0afd744f5e9 100644 --- a/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml +++ b/samples/client/others/java/webclient-sealedInterface/api/openapi.yaml @@ -266,4 +266,19 @@ components: required: - length type: object + Animal: + oneOf: + - $ref: "#/components/schemas/Dog" + - $ref: "#/components/schemas/Cat" + x-one-of-name: Animal + Cat: + properties: + declawed: + type: boolean + type: object + Dog: + properties: + bark: + type: boolean + type: object diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Animal.md b/samples/client/others/java/webclient-sealedInterface/docs/Animal.md new file mode 100644 index 000000000000..324c70fa7d96 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Animal.md @@ -0,0 +1,10 @@ + + +# Interface Animal + +## Implementing Classes + +* Cat +* Dog + + diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Cat.md b/samples/client/others/java/webclient-sealedInterface/docs/Cat.md new file mode 100644 index 000000000000..b893148b66b5 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Cat.md @@ -0,0 +1,17 @@ + + +# Cat + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**declawed** | **Boolean** | | [optional] | + + +## Implemented Interfaces + +* Animal + + diff --git a/samples/client/others/java/webclient-sealedInterface/docs/Dog.md b/samples/client/others/java/webclient-sealedInterface/docs/Dog.md new file mode 100644 index 000000000000..25628713ba08 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/docs/Dog.md @@ -0,0 +1,17 @@ + + +# Dog + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**bark** | **Boolean** | | [optional] | + + +## Implemented Interfaces + +* Animal + + diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java new file mode 100644 index 000000000000..f2d77b69e0e2 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Animal.java @@ -0,0 +1,41 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.openapitools.client.model.Cat; +import org.openapitools.client.model.Dog; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +@JsonIgnoreProperties( + value = "", // ignore manually set , it will be automatically generated by Jackson during serialization + allowSetters = true // allows the to be set during deserialization +) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "", visible = true) + +public sealed interface Animal permits Dog, Cat { +} + diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java new file mode 100644 index 000000000000..23ca5083733a --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Cat.java @@ -0,0 +1,106 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +/** + * Cat + */ +@JsonPropertyOrder({ + Cat.JSON_PROPERTY_DECLAWED +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +public final class Cat implements Animal { + public static final String JSON_PROPERTY_DECLAWED = "declawed"; + @javax.annotation.Nullable + private Boolean declawed; + + public Cat() { + } + + public Cat declawed(@javax.annotation.Nullable Boolean declawed) { + + this.declawed = declawed; + return this; + } + + /** + * Get declawed + * @return declawed + */ + @javax.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getDeclawed() { + return declawed; + } + + + @JsonProperty(value = JSON_PROPERTY_DECLAWED, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDeclawed(@javax.annotation.Nullable Boolean declawed) { + this.declawed = declawed; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Cat cat = (Cat) o; + return Objects.equals(this.declawed, cat.declawed); + } + + @Override + public int hashCode() { + return Objects.hash(declawed); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Cat {\n"); + sb.append(" declawed: ").append(toIndentedString(declawed)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java new file mode 100644 index 000000000000..4de9f164a385 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/model/Dog.java @@ -0,0 +1,106 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Locale; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.JsonTypeName; + +/** + * Dog + */ +@JsonPropertyOrder({ + Dog.JSON_PROPERTY_BARK +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0-SNAPSHOT") +public final class Dog implements Animal { + public static final String JSON_PROPERTY_BARK = "bark"; + @javax.annotation.Nullable + private Boolean bark; + + public Dog() { + } + + public Dog bark(@javax.annotation.Nullable Boolean bark) { + + this.bark = bark; + return this; + } + + /** + * Get bark + * @return bark + */ + @javax.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BARK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public Boolean getBark() { + return bark; + } + + + @JsonProperty(value = JSON_PROPERTY_BARK, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBark(@javax.annotation.Nullable Boolean bark) { + this.bark = bark; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Dog dog = (Dog) o; + return Objects.equals(this.bark, dog.bark); + } + + @Override + public int hashCode() { + return Objects.hash(bark); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Dog {\n"); + sb.append(" bark: ").append(toIndentedString(bark)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java new file mode 100644 index 000000000000..c22f4bd39218 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/AnimalTest.java @@ -0,0 +1,34 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.openapitools.client.model.Cat; +import org.openapitools.client.model.Dog; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Animal + */ +class AnimalTest { +} diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java new file mode 100644 index 000000000000..aee81afeb24d --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/CatTest.java @@ -0,0 +1,47 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Cat + */ +class CatTest { + private final Cat model = new Cat(); + + /** + * Model tests for Cat + */ + @Test + void testCat() { + // TODO: test Cat + } + + /** + * Test the property 'declawed' + */ + @Test + void declawedTest() { + // TODO: test declawed + } + +} diff --git a/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java new file mode 100644 index 000000000000..86b2d87bd2f9 --- /dev/null +++ b/samples/client/others/java/webclient-sealedInterface/src/test/java/org/openapitools/client/model/DogTest.java @@ -0,0 +1,47 @@ +/* + * ByRefOrValue + * This tests for a oneOf interface representation + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Dog + */ +class DogTest { + private final Dog model = new Dog(); + + /** + * Model tests for Dog + */ + @Test + void testDog() { + // TODO: test Dog + } + + /** + * Test the property 'bark' + */ + @Test + void barkTest() { + // TODO: test bark + } + +} From 0374e07c087152d702e7d1b6c3fbd2020746dbb3 Mon Sep 17 00:00:00 2001 From: jpfinne Date: Mon, 22 Sep 2025 09:40:46 +0200 Subject: [PATCH 16/16] fix webclient-sealedInterface --- .../webclient-sealedInterface/.openapi-generator/FILES | 9 --------- 1 file changed, 9 deletions(-) diff --git a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES index 7c7755885376..db1b84e17530 100644 --- a/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES +++ b/samples/client/others/java/webclient-sealedInterface/.openapi-generator/FILES @@ -6,7 +6,6 @@ api/openapi.yaml build.gradle build.sbt docs/Addressable.md -docs/Animal.md docs/Apple.md docs/Banana.md docs/Bar.md @@ -14,8 +13,6 @@ docs/BarApi.md docs/BarCreate.md docs/BarRef.md docs/BarRefOrValue.md -docs/Cat.md -docs/Dog.md docs/Entity.md docs/EntityRef.md docs/Extensible.md @@ -52,15 +49,12 @@ src/main/java/org/openapitools/client/auth/Authentication.java src/main/java/org/openapitools/client/auth/HttpBasicAuth.java src/main/java/org/openapitools/client/auth/HttpBearerAuth.java src/main/java/org/openapitools/client/model/Addressable.java -src/main/java/org/openapitools/client/model/Animal.java src/main/java/org/openapitools/client/model/Apple.java src/main/java/org/openapitools/client/model/Banana.java src/main/java/org/openapitools/client/model/Bar.java src/main/java/org/openapitools/client/model/BarCreate.java src/main/java/org/openapitools/client/model/BarRef.java src/main/java/org/openapitools/client/model/BarRefOrValue.java -src/main/java/org/openapitools/client/model/Cat.java -src/main/java/org/openapitools/client/model/Dog.java src/main/java/org/openapitools/client/model/Entity.java src/main/java/org/openapitools/client/model/EntityRef.java src/main/java/org/openapitools/client/model/Extensible.java @@ -72,6 +66,3 @@ src/main/java/org/openapitools/client/model/FruitType.java src/main/java/org/openapitools/client/model/Pasta.java src/main/java/org/openapitools/client/model/Pizza.java src/main/java/org/openapitools/client/model/PizzaSpeziale.java -src/test/java/org/openapitools/client/model/AnimalTest.java -src/test/java/org/openapitools/client/model/CatTest.java -src/test/java/org/openapitools/client/model/DogTest.java