diff --git a/bin/configs/jaxrs-spec-quarkus-mutiny.yaml b/bin/configs/jaxrs-spec-quarkus-mutiny.yaml
new file mode 100644
index 000000000000..5620523e027f
--- /dev/null
+++ b/bin/configs/jaxrs-spec-quarkus-mutiny.yaml
@@ -0,0 +1,15 @@
+generatorName: jaxrs-spec
+outputDir: samples/server/petstore/jaxrs-spec-quarkus-mutiny
+inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
+templateDir: modules/openapi-generator/src/main/resources/JavaJaxRS/spec
+additionalProperties:
+ artifactId: jaxrs-spec-petstore-server
+ serializableModel: "true"
+ hideGenerationTimestamp: "true"
+ implicitHeadersRegex: (api_key|enum_header_string)
+ generateBuilders: "true"
+ useMicroProfileOpenAPIAnnotations: "true"
+ useAsync: "true"
+ useMutiny: "true"
+ library: "quarkus"
+ dateLibrary: "java8-localdatetime"
diff --git a/docs/generators/jaxrs-cxf-cdi.md b/docs/generators/jaxrs-cxf-cdi.md
index 82b1b863e73c..1de80c28200a 100644
--- a/docs/generators/jaxrs-cxf-cdi.md
+++ b/docs/generators/jaxrs-cxf-cdi.md
@@ -78,6 +78,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|useBeanValidation|Use BeanValidation API annotations| |true|
|useJakartaEe|whether to use Jakarta EE namespace instead of javax| |false|
|useMicroProfileOpenAPIAnnotations|Whether to generate Microprofile OpenAPI annotations. Only valid when library is set to quarkus.| |false|
+|useMutiny|Whether to use Smallrye Mutiny instead of CompletionStage for asynchronous computation. Only valid when library is set to quarkus.| |false|
|useOneOfInterfaces|whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface| |false|
|useSwaggerAnnotations|Whether to generate Swagger annotations.| |true|
|useTags|use tags for creating interface and controller classnames| |false|
diff --git a/docs/generators/jaxrs-spec.md b/docs/generators/jaxrs-spec.md
index 6572bfa72474..87563f7c6bee 100644
--- a/docs/generators/jaxrs-spec.md
+++ b/docs/generators/jaxrs-spec.md
@@ -78,6 +78,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|useBeanValidation|Use BeanValidation API annotations| |true|
|useJakartaEe|whether to use Jakarta EE namespace instead of javax| |false|
|useMicroProfileOpenAPIAnnotations|Whether to generate Microprofile OpenAPI annotations. Only valid when library is set to quarkus.| |false|
+|useMutiny|Whether to use Smallrye Mutiny instead of CompletionStage for asynchronous computation. Only valid when library is set to quarkus.| |false|
|useOneOfInterfaces|whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface| |false|
|useSwaggerAnnotations|Whether to generate Swagger annotations.| |true|
|useTags|use tags for creating interface and controller classnames| |false|
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java
index 69627170d693..373ac795d862 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSSpecServerCodegen.java
@@ -38,6 +38,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen {
public static final String GENERATE_POM = "generatePom";
public static final String USE_SWAGGER_ANNOTATIONS = "useSwaggerAnnotations";
public static final String USE_MICROPROFILE_OPENAPI_ANNOTATIONS = "useMicroProfileOpenAPIAnnotations";
+ public static final String USE_MUTINY = "useMutiny";
public static final String OPEN_API_SPEC_FILE_LOCATION = "openApiSpecFileLocation";
public static final String GENERATE_BUILDERS = "generateBuilders";
@@ -53,6 +54,7 @@ public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen {
private boolean generateBuilders = false;
private boolean useSwaggerAnnotations = true;
private boolean useMicroProfileOpenAPIAnnotations = false;
+ private boolean useMutiny = false;
protected boolean useGzipFeature = false;
private boolean useJackson = false;
@@ -120,6 +122,7 @@ public JavaJAXRSSpecServerCodegen() {
cliOptions.add(CliOption.newBoolean(USE_MICROPROFILE_OPENAPI_ANNOTATIONS, "Whether to generate Microprofile OpenAPI annotations. Only valid when library is set to quarkus.", useMicroProfileOpenAPIAnnotations));
cliOptions.add(CliOption.newString(OPEN_API_SPEC_FILE_LOCATION, "Location where the file containing the spec will be generated in the output folder. No file generated when set to null or empty string."));
cliOptions.add(CliOption.newBoolean(SUPPORT_ASYNC, "Wrap responses in CompletionStage type, allowing asynchronous computation (requires JAX-RS 2.1).", supportAsync));
+ cliOptions.add(CliOption.newBoolean(USE_MUTINY, "Whether to use Smallrye Mutiny instead of CompletionStage for asynchronous computation. Only valid when library is set to quarkus.", useMutiny));
}
@Override
@@ -167,6 +170,12 @@ public void processOpts() {
writePropertyBack(USE_MICROPROFILE_OPENAPI_ANNOTATIONS, useMicroProfileOpenAPIAnnotations);
}
+ if (QUARKUS_LIBRARY.equals(library)) {
+ if (additionalProperties.containsKey(USE_MUTINY)) {
+ useMutiny = Boolean.parseBoolean(additionalProperties.get(USE_MUTINY).toString());
+ }
+ writePropertyBack(USE_MUTINY, useMutiny);
+ }
if (additionalProperties.containsKey(GENERATE_BUILDERS)) {
generateBuilders = Boolean.parseBoolean(additionalProperties.get(GENERATE_BUILDERS).toString());
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/api.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/api.mustache
index d45774cacc21..8f40dc3a9e7f 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/api.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/api.mustache
@@ -15,8 +15,13 @@ import io.swagger.annotations.*;
{{/useSwaggerAnnotations}}
{{#supportAsync}}
+{{#useMutiny}}
+import io.smallrye.mutiny.Uni;
+{{/useMutiny}}
+{{^useMutiny}}
import java.util.concurrent.CompletionStage;
import java.util.concurrent.CompletableFuture;
+{{/useMutiny}}
{{/supportAsync}}
import java.io.InputStream;
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/apiMethod.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/apiMethod.mustache
index 96c81be32634..5bd7a3e4e607 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/apiMethod.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/apiMethod.mustache
@@ -40,6 +40,6 @@
{{^vendorExtensions.x-java-is-response-void}}@org.eclipse.microprofile.openapi.annotations.media.Content(schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = {{{baseType}}}.class{{#vendorExtensions.x-microprofile-open-api-return-schema-container}}, type = {{{.}}} {{/vendorExtensions.x-microprofile-open-api-return-schema-container}}{{#vendorExtensions.x-microprofile-open-api-return-unique-items}}, uniqueItems = true {{/vendorExtensions.x-microprofile-open-api-return-unique-items}})){{/vendorExtensions.x-java-is-response-void}}
}){{^-last}},{{/-last}}{{/responses}}
}){{/hasProduces}}{{/useMicroProfileOpenAPIAnnotations}}
- public {{#supportAsync}}CompletionStage<{{/supportAsync}}Response{{#supportAsync}}>{{/supportAsync}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>cookieParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}) {
- return {{#supportAsync}}CompletableFuture.supplyAsync(() -> {{/supportAsync}}Response.ok().entity("magic!").build(){{#supportAsync}}){{/supportAsync}};
+ public {{#supportAsync}}{{#useMutiny}}Uni{{/useMutiny}}{{^useMutiny}}CompletionStage{{/useMutiny}}<{{/supportAsync}}Response{{#supportAsync}}>{{/supportAsync}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>cookieParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}) {
+ return {{#supportAsync}}{{#useMutiny}}Uni.createFrom().item({{/useMutiny}}{{^useMutiny}}CompletableFuture.supplyAsync(() -> {{/useMutiny}}{{/supportAsync}}Response.ok().entity("magic!").build(){{#supportAsync}}){{/supportAsync}};
}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/pom.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/pom.mustache
index d8fffd4846f9..ef91cc3dfb27 100644
--- a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/pom.mustache
@@ -44,6 +44,9 @@
{{#useSwaggerAnnotations}}
1.6.10
{{/useSwaggerAnnotations}}
+{{#useMutiny}}
+ 1.2.1
+{{/useMutiny}}
@@ -109,6 +112,14 @@
provided
{{/useSwaggerAnnotations}}
+{{#useMutiny}}
+
+ io.smallrye
+ smallrye-rest-client
+ ${smallrye.rest.client.version}
+ test
+
+{{/useMutiny}}
diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/returnAsyncTypeInterface.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/returnAsyncTypeInterface.mustache
new file mode 100644
index 000000000000..93f1098e48da
--- /dev/null
+++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/returnAsyncTypeInterface.mustache
@@ -0,0 +1 @@
+{{#useMutiny}}Uni{{/useMutiny}}{{^useMutiny}}CompletionStage{{/useMutiny}}<{{#returnResponse}}Response{{/returnResponse}}{{^returnResponse}}{{#returnContainer}}{{#isMap}}Map{{/isMap}}{{#isArray}}{{{returnContainer}}}<{{{returnBaseType}}}>{{/isArray}}{{/returnContainer}}{{^returnContainer}}{{{returnBaseType}}}{{/returnContainer}}{{/returnResponse}}>
\ No newline at end of file
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java
index c11931e8a4fd..d63754a27470 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java
@@ -808,6 +808,103 @@ public void generateApiForQuarkusWithGzipFeature() throws Exception {
);
}
+ @Test
+ public void generateApiForQuarkusWithoutMutiny() throws Exception {
+ final File output = Files.createTempDirectory("test").toFile();
+ output.deleteOnExit();
+
+ final OpenAPI openAPI = new OpenAPIParser()
+ .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI();
+
+ codegen.setOutputDir(output.getAbsolutePath());
+ codegen.setLibrary(QUARKUS_LIBRARY);
+ codegen.additionalProperties().put(SUPPORT_ASYNC, true);
+ codegen.additionalProperties().put(USE_TAGS, true); //And use tags to generate everything in PingApi.java
+
+ final ClientOptInput input = new ClientOptInput()
+ .openAPI(openAPI)
+ .config(codegen); //Using JavaJAXRSSpecServerCodegen
+
+ final DefaultGenerator generator = new DefaultGenerator();
+ final List files = generator.opts(input).generate(); //When generating files
+
+ //Then the java files are compilable
+ validateJavaSourceFiles(files);
+
+ //And the generated class contains CompletionStage
+ TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java");
+ TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"),
+ "CompletionStage pingGetBoolean", //Support primitive types response
+ "CompletionStage pingGetInteger" //Support primitive types response
+ );
+ }
+
+ @Test
+ public void generateApiForQuarkusWithMutinyApi() throws Exception {
+ final File output = Files.createTempDirectory("test").toFile();
+ output.deleteOnExit();
+
+ final OpenAPI openAPI = new OpenAPIParser()
+ .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI();
+
+ codegen.setOutputDir(output.getAbsolutePath());
+ codegen.setLibrary(QUARKUS_LIBRARY);
+ codegen.additionalProperties().put(USE_TAGS, true); //And use tags to generate everything in PingApi.java
+ codegen.additionalProperties().put(SUPPORT_ASYNC, true);
+ codegen.additionalProperties().put(INTERFACE_ONLY, true);
+ codegen.additionalProperties().put(USE_MUTINY, true);
+
+ final ClientOptInput input = new ClientOptInput()
+ .openAPI(openAPI)
+ .config(codegen); //Using JavaJAXRSSpecServerCodegen
+
+ final DefaultGenerator generator = new DefaultGenerator();
+ final List files = generator.opts(input).generate(); //When generating files
+
+ //Then the java files are compilable
+ validateJavaSourceFiles(files);
+
+ //And the generated class contains CompletionStage
+ TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java");
+ TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"),
+ "Uni pingGetBoolean", //Support primitive types response
+ "Uni pingGetInteger" //Support primitive types response
+ );
+ }
+
+
+ @Test
+ public void generateApiForQuarkusWithMutinyImpl() throws Exception {
+ final File output = Files.createTempDirectory("test").toFile();
+ output.deleteOnExit();
+
+ final OpenAPI openAPI = new OpenAPIParser()
+ .readLocation("src/test/resources/3_0/issue_4832.yaml", null, new ParseOptions()).getOpenAPI();
+
+ codegen.setOutputDir(output.getAbsolutePath());
+ codegen.setLibrary(QUARKUS_LIBRARY);
+ codegen.additionalProperties().put(USE_TAGS, true); //And use tags to generate everything in PingApi.java
+ codegen.additionalProperties().put(SUPPORT_ASYNC, true);
+ codegen.additionalProperties().put(USE_MUTINY, true);
+
+ final ClientOptInput input = new ClientOptInput()
+ .openAPI(openAPI)
+ .config(codegen); //Using JavaJAXRSSpecServerCodegen
+
+ final DefaultGenerator generator = new DefaultGenerator();
+ final List files = generator.opts(input).generate(); //When generating files
+
+ //Then the java files are compilable
+ validateJavaSourceFiles(files);
+
+ //And the generated class contains CompletionStage
+ TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/PingApi.java");
+ TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/PingApi.java"),
+ "Uni pingGetBoolean", //Support primitive types response
+ "Uni pingGetInteger" //Support primitive types response
+ );
+ }
+
@Test
public void testHandleRequiredAndReadOnlyPropertiesCorrectly() throws Exception {
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.dockerignore b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.dockerignore
new file mode 100644
index 000000000000..b86c7ac34057
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.dockerignore
@@ -0,0 +1,4 @@
+*
+!target/*-runner
+!target/*-runner.jar
+!target/lib/*
\ No newline at end of file
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator-ignore b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator-ignore
new file mode 100644
index 000000000000..7484ee590a38
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/FILES b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/FILES
new file mode 100644
index 000000000000..5b0d5374cd44
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/FILES
@@ -0,0 +1,66 @@
+.dockerignore
+README.md
+pom.xml
+src/gen/java/org/openapitools/api/AnotherFakeApi.java
+src/gen/java/org/openapitools/api/FakeApi.java
+src/gen/java/org/openapitools/api/FakeClassnameTestApi.java
+src/gen/java/org/openapitools/api/FooApi.java
+src/gen/java/org/openapitools/api/PetApi.java
+src/gen/java/org/openapitools/api/RestApplication.java
+src/gen/java/org/openapitools/api/RestResourceRoot.java
+src/gen/java/org/openapitools/api/StoreApi.java
+src/gen/java/org/openapitools/api/UserApi.java
+src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java
+src/gen/java/org/openapitools/model/AllOfWithSingleRef.java
+src/gen/java/org/openapitools/model/Animal.java
+src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
+src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java
+src/gen/java/org/openapitools/model/ArrayTest.java
+src/gen/java/org/openapitools/model/Capitalization.java
+src/gen/java/org/openapitools/model/Cat.java
+src/gen/java/org/openapitools/model/Category.java
+src/gen/java/org/openapitools/model/ChildWithNullable.java
+src/gen/java/org/openapitools/model/ClassModel.java
+src/gen/java/org/openapitools/model/Client.java
+src/gen/java/org/openapitools/model/DeprecatedObject.java
+src/gen/java/org/openapitools/model/Dog.java
+src/gen/java/org/openapitools/model/EnumArrays.java
+src/gen/java/org/openapitools/model/EnumClass.java
+src/gen/java/org/openapitools/model/EnumTest.java
+src/gen/java/org/openapitools/model/FakeBigDecimalMap200Response.java
+src/gen/java/org/openapitools/model/FileSchemaTestClass.java
+src/gen/java/org/openapitools/model/Foo.java
+src/gen/java/org/openapitools/model/FooGetDefaultResponse.java
+src/gen/java/org/openapitools/model/FormatTest.java
+src/gen/java/org/openapitools/model/HasOnlyReadOnly.java
+src/gen/java/org/openapitools/model/HealthCheckResult.java
+src/gen/java/org/openapitools/model/MapTest.java
+src/gen/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
+src/gen/java/org/openapitools/model/Model200Response.java
+src/gen/java/org/openapitools/model/ModelApiResponse.java
+src/gen/java/org/openapitools/model/ModelFile.java
+src/gen/java/org/openapitools/model/ModelList.java
+src/gen/java/org/openapitools/model/ModelReturn.java
+src/gen/java/org/openapitools/model/Name.java
+src/gen/java/org/openapitools/model/NullableClass.java
+src/gen/java/org/openapitools/model/NumberOnly.java
+src/gen/java/org/openapitools/model/ObjectWithDeprecatedFields.java
+src/gen/java/org/openapitools/model/Order.java
+src/gen/java/org/openapitools/model/OuterComposite.java
+src/gen/java/org/openapitools/model/OuterEnum.java
+src/gen/java/org/openapitools/model/OuterEnumDefaultValue.java
+src/gen/java/org/openapitools/model/OuterEnumInteger.java
+src/gen/java/org/openapitools/model/OuterEnumIntegerDefaultValue.java
+src/gen/java/org/openapitools/model/OuterObjectWithEnumProperty.java
+src/gen/java/org/openapitools/model/ParentWithNullable.java
+src/gen/java/org/openapitools/model/Pet.java
+src/gen/java/org/openapitools/model/ReadOnlyFirst.java
+src/gen/java/org/openapitools/model/SingleRefType.java
+src/gen/java/org/openapitools/model/SpecialModelName.java
+src/gen/java/org/openapitools/model/Tag.java
+src/gen/java/org/openapitools/model/TestInlineFreeformAdditionalPropertiesRequest.java
+src/gen/java/org/openapitools/model/User.java
+src/main/docker/Dockerfile.jvm
+src/main/docker/Dockerfile.native
+src/main/resources/META-INF/openapi.yaml
+src/main/resources/application.properties
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/VERSION b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/VERSION
new file mode 100644
index 000000000000..08bfd0643b8c
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/.openapi-generator/VERSION
@@ -0,0 +1 @@
+7.5.0-SNAPSHOT
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/README.md b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/README.md
new file mode 100644
index 000000000000..929e2bbe4b9d
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/README.md
@@ -0,0 +1,33 @@
+# JAX-RS server with OpenAPI using Quarkus
+
+## Overview
+This server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using an
+[OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.
+
+This is an example of building a OpenAPI-enabled JAX-RS server.
+This example uses the [JAX-RS](https://jax-rs-spec.java.net/) framework and
+the [Eclipse-MicroProfile-OpenAPI](https://github.com/eclipse/microprofile-open-api) addition.
+
+The pom file is configured to use [Quarkus](https://quarkus.io/) as application server.
+
+
+To start the server in dev mode, run this maven command:
+
+```bash
+mvn compile quarkus:dev
+```
+
+You can then call your server endpoints under:
+
+```
+http://localhost:8080/
+```
+
+In dev-mode, you can open Swagger-UI at:
+
+```
+http://localhost:8080/swagger-ui/
+```
+
+Read more in the [Quarkus OpenAPI guide](https://quarkus.io/guides/openapi-swaggerui-guide).
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/pom.xml b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/pom.xml
new file mode 100644
index 000000000000..eb5c42b58b7c
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/pom.xml
@@ -0,0 +1,157 @@
+
+
+ 4.0.0
+ org.openapitools
+ jaxrs-spec-petstore-server
+ jaxrs-spec-petstore-server
+ 1.0.0
+
+
+
+ 3.8.1
+ true
+ 1.8
+ 1.8
+ UTF-8
+ UTF-8
+ 1.13.7.Final
+ 1.13.7.Final
+ quarkus-universe-bom
+ io.quarkus
+ 2.22.1
+ 2.1.1
+ 1.3.2
+ 1.2.1
+
+
+
+
+ ${quarkus.platform.group-id}
+ ${quarkus.platform.artifact-id}
+ ${quarkus.platform.version}
+ pom
+ import
+
+
+
+
+
+ io.quarkus
+ quarkus-resteasy
+
+
+ io.quarkus
+ quarkus-junit5
+ test
+
+
+ io.rest-assured
+ rest-assured
+ test
+
+
+ io.quarkus
+ quarkus-smallrye-openapi
+
+
+ javax.ws.rs
+ javax.ws.rs-api
+ ${javax.ws.rs-version}
+ provided
+
+
+ javax.annotation
+ javax.annotation-api
+ ${javax.annotation-api-version}
+
+
+ io.smallrye
+ smallrye-rest-client
+ ${smallrye.rest.client.version}
+ test
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 1.9.1
+
+
+ add-source
+ generate-sources
+
+ add-source
+
+
+
+
+
+
+
+
+
+
+ io.quarkus
+ quarkus-maven-plugin
+ ${quarkus-plugin.version}
+
+
+
+ build
+
+
+
+
+
+ maven-compiler-plugin
+ ${compiler-plugin.version}
+
+
+ maven-surefire-plugin
+ ${surefire-plugin.version}
+
+
+ org.jboss.logmanager.LogManager
+
+
+
+
+
+
+
+ native
+
+
+ native
+
+
+
+
+
+ maven-failsafe-plugin
+ ${surefire-plugin.version}
+
+
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${project.build.finalName}-runner
+
+
+
+
+
+
+
+
+ native
+
+
+
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/AnotherFakeApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/AnotherFakeApi.java
new file mode 100644
index 000000000000..42c546afd776
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/AnotherFakeApi.java
@@ -0,0 +1,80 @@
+package org.openapitools.api;
+
+import org.openapitools.model.Client;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "", version="1.0.0", description="",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/another-fake/dummy")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AnotherFakeApi {
+
+ @PATCH
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "call123testSpecialTags", summary = "To test special tags", description = "To test special tags and operation ID starting with number")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="$another-fake?")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Client.class))
+ })
+ })
+ public Response call123testSpecialTags(@Valid @NotNull Client client) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeApi.java
new file mode 100644
index 000000000000..05d3d47fb409
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeApi.java
@@ -0,0 +1,441 @@
+package org.openapitools.api;
+
+import java.math.BigDecimal;
+import org.openapitools.model.ChildWithNullable;
+import org.openapitools.model.Client;
+import org.openapitools.model.EnumClass;
+import org.openapitools.model.FakeBigDecimalMap200Response;
+import java.io.File;
+import org.openapitools.model.FileSchemaTestClass;
+import org.openapitools.model.HealthCheckResult;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Map;
+import org.openapitools.model.ModelApiResponse;
+import org.openapitools.model.OuterComposite;
+import org.openapitools.model.OuterObjectWithEnumProperty;
+import org.openapitools.model.Pet;
+import org.openapitools.model.TestInlineFreeformAdditionalPropertiesRequest;
+import org.openapitools.model.User;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "", version="1.0.0", description="",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/fake")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FakeApi {
+
+ @GET
+ @Path("/BigDecimalMap")
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeBigDecimalMap", summary = "", description = "for Java apache and Java native, test toUrlQueryString for maps with BegDecimal keys")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = FakeBigDecimalMap200Response.class))
+ })
+ })
+ public Response fakeBigDecimalMap() {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/health")
+ @Produces({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeHealthGet", summary = "Health check endpoint", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "The instance started successfully", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = HealthCheckResult.class))
+ })
+ })
+ public Response fakeHealthGet() {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/http-signature-test")
+ @Consumes({ "application/json", "application/xml" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "http_signature_test")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeHttpSignatureTest", summary = "test http signature authentication", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "The instance started successfully", content = {
+
+ })
+ })
+ public Response fakeHttpSignatureTest(@Valid @NotNull Pet pet,@QueryParam("query_1") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="query parameter") String query1,@HeaderParam("header_1") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="header parameter") String header1) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/outer/boolean")
+ @Consumes({ "application/json" })
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeOuterBooleanSerialize", summary = "", description = "Test serialization of outer boolean types")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Output boolean", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Boolean.class))
+ })
+ })
+ public Response fakeOuterBooleanSerialize(@Valid Boolean body) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/outer/composite")
+ @Consumes({ "application/json" })
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeOuterCompositeSerialize", summary = "", description = "Test serialization of object with outer number type")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Output composite", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = OuterComposite.class))
+ })
+ })
+ public Response fakeOuterCompositeSerialize(@Valid OuterComposite outerComposite) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/outer/number")
+ @Consumes({ "application/json" })
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeOuterNumberSerialize", summary = "", description = "Test serialization of outer number types")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Output number", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = BigDecimal.class))
+ })
+ })
+ public Response fakeOuterNumberSerialize(@Valid BigDecimal body) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/outer/string")
+ @Consumes({ "application/json" })
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakeOuterStringSerialize", summary = "", description = "Test serialization of outer string types")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Output string", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = String.class))
+ })
+ })
+ public Response fakeOuterStringSerialize(@Valid String body) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/property/enum-int")
+ @Consumes({ "application/json" })
+ @Produces({ "*/*" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fakePropertyEnumIntegerSerialize", summary = "", description = "Test serialization of enum (int) properties with examples")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Output enum (int)", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="*/*", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = OuterObjectWithEnumProperty.class))
+ })
+ })
+ public Response fakePropertyEnumIntegerSerialize(@Valid @NotNull OuterObjectWithEnumProperty outerObjectWithEnumProperty) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/additionalProperties-reference")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testAdditionalPropertiesReference", summary = "test referenced additionalProperties", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testAdditionalPropertiesReference(@Valid @NotNull Map requestBody) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Path("/body-with-binary")
+ @Consumes({ "image/png" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testBodyWithBinary", summary = "", description = "For this test, the body has to be a binary file.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Success", content = {
+
+ })
+ })
+ public Response testBodyWithBinary(@Valid File body) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Path("/body-with-file-schema")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testBodyWithFileSchema", summary = "", description = "For this test, the body for this request must reference a schema named `File`.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Success", content = {
+
+ })
+ })
+ public Response testBodyWithFileSchema(@Valid @NotNull FileSchemaTestClass fileSchemaTestClass) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Path("/body-with-query-params")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testBodyWithQueryParams", summary = "", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Success", content = {
+
+ })
+ })
+ public Response testBodyWithQueryParams(@QueryParam("query") @NotNull String query,@Valid @NotNull User user) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PATCH
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testClientModel", summary = "To test \"client\" model", description = "To test \"client\" model")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Client.class))
+ })
+ })
+ public Response testClientModel(@Valid @NotNull Client client) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Consumes({ "application/x-www-form-urlencoded" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "http_basic_test")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testEndpointParameters", summary = "Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 ", description = "Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 ")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid username supplied", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "User not found", content = {
+
+ })
+ })
+ public Response testEndpointParameters(@FormParam(value = "number") BigDecimal number,@FormParam(value = "double") Double _double,@FormParam(value = "pattern_without_delimiter") String patternWithoutDelimiter,@FormParam(value = "byte") byte[] _byte,@FormParam(value = "integer") Integer integer,@FormParam(value = "int32") Integer int32,@FormParam(value = "int64") Long int64,@FormParam(value = "float") Float _float,@FormParam(value = "string") String string, @FormParam(value = "binary") InputStream binaryInputStream,@FormParam(value = "date") LocalDate date,@FormParam(value = "dateTime") LocalDateTime dateTime,@FormParam(value = "password") String password,@FormParam(value = "callback") String paramCallback) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Consumes({ "application/x-www-form-urlencoded" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testEnumParameters", summary = "To test enum parameters", description = "To test enum parameters")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid request", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "Not found", content = {
+
+ })
+ })
+ public Response testEnumParameters(@HeaderParam("enum_header_string_array") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Header parameter enum test (string array)") List enumHeaderStringArray,@QueryParam("enum_query_string_array") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Query parameter enum test (string array)") List enumQueryStringArray,@QueryParam("enum_query_string") @DefaultValue("-efg") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Query parameter enum test (string)") String enumQueryString,@QueryParam("enum_query_integer") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Query parameter enum test (double)") Integer enumQueryInteger,@QueryParam("enum_query_double") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Query parameter enum test (double)") Double enumQueryDouble,@QueryParam("enum_query_model_array") List enumQueryModelArray,@FormParam(value = "enum_form_string_array") List enumFormStringArray,@FormParam(value = "enum_form_string") String enumFormString) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @DELETE
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "bearer_test")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testGroupParameters", summary = "Fake endpoint to test group parameters (optional)", description = "Fake endpoint to test group parameters (optional)")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Something wrong", content = {
+
+ })
+ })
+ public Response testGroupParameters(@QueryParam("required_string_group") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Required String in group parameters") Integer requiredStringGroup,@HeaderParam("required_boolean_group") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Required Boolean in group parameters") Boolean requiredBooleanGroup,@QueryParam("required_int64_group") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Required Integer in group parameters") Long requiredInt64Group,@QueryParam("string_group") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="String in group parameters") Integer stringGroup,@HeaderParam("boolean_group") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Boolean in group parameters") Boolean booleanGroup,@QueryParam("int64_group") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Integer in group parameters") Long int64Group) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/inline-additionalProperties")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testInlineAdditionalProperties", summary = "test inline additionalProperties", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testInlineAdditionalProperties(@Valid @NotNull Map requestBody) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/inline-freeform-additionalProperties")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testInlineFreeformAdditionalProperties", summary = "test inline free-form additionalProperties", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testInlineFreeformAdditionalProperties(@Valid @NotNull TestInlineFreeformAdditionalPropertiesRequest testInlineFreeformAdditionalPropertiesRequest) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/jsonFormData")
+ @Consumes({ "application/x-www-form-urlencoded" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testJsonFormData", summary = "test json serialization of form data", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testJsonFormData(@FormParam(value = "param") String param,@FormParam(value = "param2") String param2) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/nullable")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testNullable", summary = "test nullable parent property", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testNullable(@Valid @NotNull ChildWithNullable childWithNullable) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Path("/test-query-parameters")
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testQueryParameterCollectionFormat", summary = "", description = "To test the collection format in query parameters")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Success", content = {
+
+ })
+ })
+ public Response testQueryParameterCollectionFormat(@QueryParam("pipe") @NotNull List pipe,@QueryParam("ioutil") @NotNull List ioutil,@QueryParam("http") @NotNull List http,@QueryParam("url") @NotNull List url,@QueryParam("context") @NotNull List context,@QueryParam("allowEmpty") @NotNull String allowEmpty,@QueryParam("language") Map language) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/stringMap-reference")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testStringMapReference", summary = "test referenced string map", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response testStringMapReference(@Valid @NotNull Map requestBody) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/{petId}/uploadImageWithRequiredFile")
+ @Consumes({ "multipart/form-data" })
+ @Produces({ "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "uploadFileWithRequiredFile", summary = "uploads an image (required)", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = ModelApiResponse.class))
+ })
+ })
+ public Response uploadFileWithRequiredFile(@PathParam("petId") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of pet to update") Long petId, @FormParam(value = "requiredFile") InputStream requiredFileInputStream,@FormParam(value = "additionalMetadata") String additionalMetadata) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeClassnameTestApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeClassnameTestApi.java
new file mode 100644
index 000000000000..454b3f0fbece
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FakeClassnameTestApi.java
@@ -0,0 +1,82 @@
+package org.openapitools.api;
+
+import org.openapitools.model.Client;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "", version="1.0.0", description="",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/fake_classname_test")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FakeClassnameTestApi {
+
+ @PATCH
+ @Consumes({ "application/json" })
+ @Produces({ "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "api_key_query")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "testClassname", summary = "To test class name in snake case", description = "To test class name in snake case")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="fake_classname_tags 123#$%^")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Client.class))
+ })
+ })
+ public Response testClassname(@Valid @NotNull Client client) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FooApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FooApi.java
new file mode 100644
index 000000000000..3a62fc0430eb
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/FooApi.java
@@ -0,0 +1,79 @@
+package org.openapitools.api;
+
+import org.openapitools.model.FooGetDefaultResponse;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "", version="1.0.0", description="",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="", description="")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/foo")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FooApi {
+
+ @GET
+ @Produces({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "fooGet", summary = "", description = "")
+
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "response", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = FooGetDefaultResponse.class))
+ })
+ })
+ public Response fooGet() {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/PetApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/PetApi.java
new file mode 100644
index 000000000000..85710bc751d5
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/PetApi.java
@@ -0,0 +1,239 @@
+package org.openapitools.api;
+
+import java.io.File;
+import org.openapitools.model.ModelApiResponse;
+import org.openapitools.model.Pet;
+import java.util.Set;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "pet", version="1.0.0", description="Everything about your Pets",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet", description="Everything about your Pets")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet", description="Everything about your Pets")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/pet")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class PetApi {
+
+ @POST
+ @Consumes({ "application/json", "application/xml" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "addPet", summary = "Add a new pet to the store", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Successful operation", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "405", description = "Invalid input", content = {
+
+ })
+ })
+ public Response addPet(@Valid @NotNull Pet pet) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @DELETE
+ @Path("/{petId}")
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "deletePet", summary = "Deletes a pet", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Successful operation", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid pet value", content = {
+
+ })
+ })
+ public Response deletePet(@PathParam("petId") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Pet id to delete") Long petId) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/findByStatus")
+ @Produces({ "application/xml", "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "findPetsByStatus", summary = "Finds Pets by status", description = "Multiple status values can be provided with comma separated strings")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class, type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.ARRAY )),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class, type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.ARRAY ))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid status value", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response findPetsByStatus(@QueryParam("status") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Status values that need to be considered for filter") List status) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/findByTags")
+ @Produces({ "application/xml", "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "findPetsByTags", summary = "Finds Pets by tags", description = "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class, type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.ARRAY , uniqueItems = true )),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class, type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.ARRAY , uniqueItems = true ))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid tag value", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response findPetsByTags(@QueryParam("tags") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="Tags to filter by") Set tags) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/{petId}")
+ @Produces({ "application/xml", "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "api_key")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "getPetById", summary = "Find pet by ID", description = "Returns a single pet")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class)),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Pet.class))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid ID supplied", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "Pet not found", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response getPetById(@PathParam("petId") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of pet to return") Long petId) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Consumes({ "application/json", "application/xml" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "updatePet", summary = "Update an existing pet", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Successful operation", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid ID supplied", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "Pet not found", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "405", description = "Validation exception", content = {
+
+ })
+ })
+ public Response updatePet(@Valid @NotNull Pet pet) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/{petId}")
+ @Consumes({ "application/x-www-form-urlencoded" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "updatePetWithForm", summary = "Updates a pet in the store with form data", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "Successful operation", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "405", description = "Invalid input", content = {
+
+ })
+ })
+ public Response updatePetWithForm(@PathParam("petId") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of pet that needs to be updated") Long petId,@FormParam(value = "name") String name,@FormParam(value = "status") String status) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/{petId}/uploadImage")
+ @Consumes({ "multipart/form-data" })
+ @Produces({ "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "petstore_auth", scopes = { "write:pets", "read:pets" })
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "uploadFile", summary = "uploads an image", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="pet")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = ModelApiResponse.class))
+ })
+ })
+ public Response uploadFile(@PathParam("petId") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of pet to update") Long petId,@FormParam(value = "additionalMetadata") String additionalMetadata, @FormParam(value = "file") InputStream _fileInputStream) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestApplication.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestApplication.java
new file mode 100644
index 000000000000..a0a2d08f9640
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestApplication.java
@@ -0,0 +1,17 @@
+package org.openapitools.api;
+
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ version="1.0.0"
+ ,title = "OpenAPI Petstore"
+ ,description = "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\"
+ ,license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+
+))
+@ApplicationPath(RestResourceRoot.APPLICATION_PATH)
+public class RestApplication extends Application {
+
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestResourceRoot.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestResourceRoot.java
new file mode 100644
index 000000000000..96ba6c8d8e40
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/RestResourceRoot.java
@@ -0,0 +1,5 @@
+package org.openapitools.api;
+
+public class RestResourceRoot {
+ public static final String APPLICATION_PATH = "/v2";
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/StoreApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/StoreApi.java
new file mode 100644
index 000000000000..0a35dda15643
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/StoreApi.java
@@ -0,0 +1,145 @@
+package org.openapitools.api;
+
+import java.util.Map;
+import org.openapitools.model.Order;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "store", version="1.0.0", description="Access to Petstore orders",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store", description="Access to Petstore orders")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store", description="Access to Petstore orders")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/store")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class StoreApi {
+
+ @DELETE
+ @Path("/order/{order_id}")
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "deleteOrder", summary = "Delete purchase order by ID", description = "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid ID supplied", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "Order not found", content = {
+
+ })
+ })
+ public Response deleteOrder(@PathParam("order_id") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of the order that needs to be deleted") String orderId) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/inventory")
+ @Produces({ "application/json" })
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirements(value={
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement(name = "api_key")
+ })
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "getInventory", summary = "Returns pet inventories by status", description = "Returns a map of status codes to quantities")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Map.class))
+ })
+ })
+ public Response getInventory() {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/order/{order_id}")
+ @Produces({ "application/xml", "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "getOrderById", summary = "Find purchase order by ID", description = "For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Order.class)),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Order.class))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid ID supplied", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "Order not found", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response getOrderById(@PathParam("order_id") @Min(1L) @Max(5L) @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="ID of pet that needs to be fetched") Long orderId) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/order")
+ @Consumes({ "application/json" })
+ @Produces({ "application/xml", "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "placeOrder", summary = "Place an order for a pet", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="store")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Order.class)),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = Order.class))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid Order", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response placeOrder(@Valid @NotNull Order order) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/UserApi.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/UserApi.java
new file mode 100644
index 000000000000..bdab6a9c59b0
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/api/UserApi.java
@@ -0,0 +1,206 @@
+package org.openapitools.api;
+
+import java.time.LocalDateTime;
+import org.openapitools.model.User;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+
+
+
+import java.io.InputStream;
+import java.util.Map;
+import java.util.List;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+@org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition(
+ info = @org.eclipse.microprofile.openapi.annotations.info.Info(
+ title = "user", version="1.0.0", description="Operations about user",
+ license = @org.eclipse.microprofile.openapi.annotations.info.License(name = "Apache-2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html")
+ ),
+ tags = @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user", description="Operations about user")
+)
+@org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user", description="Operations about user")
+@org.eclipse.microprofile.openapi.annotations.security.SecuritySchemes(value = {
+ @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "petstore_auth",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.OAUTH2,
+ description = "",
+ flows = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlows(
+ implicit = @org.eclipse.microprofile.openapi.annotations.security.OAuthFlow(authorizationUrl = "http://petstore.swagger.io/api/oauth/dialog",
+ tokenUrl = "",
+ refreshUrl = "",
+ scopes = {
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "write:pets", description = "modify pets in your account"),
+ @org.eclipse.microprofile.openapi.annotations.security.OAuthScope(name = "read:pets", description = "read your pets")
+ }))
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.HEADER
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "api_key_query",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.APIKEY,
+ description = "",
+ apiKeyName = "api_key_query",
+ in = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeIn.QUERY
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "http_basic_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "basic"
+ ), @org.eclipse.microprofile.openapi.annotations.security.SecurityScheme(
+ securitySchemeName = "bearer_test",
+ type = org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType.HTTP,
+ description = "",
+ scheme = "bearer", bearerFormat = "JWT"
+ ),
+})
+@Path("/user")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class UserApi {
+
+ @POST
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "createUser", summary = "Create user", description = "This can only be done by the logged in user.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response createUser(@Valid @NotNull User user) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/createWithArray")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "createUsersWithArrayInput", summary = "Creates list of users with given input array", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response createUsersWithArrayInput(@Valid @NotNull List<@Valid User> user) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @POST
+ @Path("/createWithList")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "createUsersWithListInput", summary = "Creates list of users with given input array", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response createUsersWithListInput(@Valid @NotNull List<@Valid User> user) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @DELETE
+ @Path("/{username}")
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "deleteUser", summary = "Delete user", description = "This can only be done by the logged in user.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid username supplied", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "User not found", content = {
+
+ })
+ })
+ public Response deleteUser(@PathParam("username") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="The name that needs to be deleted") String username) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/{username}")
+ @Produces({ "application/xml", "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "getUserByName", summary = "Get user by user name", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = User.class)),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = User.class))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid username supplied", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "User not found", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response getUserByName(@PathParam("username") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="The name that needs to be fetched. Use user1 for testing.") String username) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/login")
+ @Produces({ "application/xml", "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "loginUser", summary = "Logs user into the system", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", headers = {
+ @org.eclipse.microprofile.openapi.annotations.headers.Header(name = "X-Rate-Limit", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.INTEGER), description = "calls per hour allowed by the user"),
+ @org.eclipse.microprofile.openapi.annotations.headers.Header(name = "X-Expires-After", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(type = org.eclipse.microprofile.openapi.annotations.enums.SchemaType.STRING), description = "date in UTC when token expires")
+ }, content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = String.class)),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json", schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = String.class))
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid username/password supplied", content = {
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/xml"),
+ @org.eclipse.microprofile.openapi.annotations.media.Content(mediaType="application/json")
+ })
+ })
+ public Response loginUser(@QueryParam("username") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="The user name for login") String username,@QueryParam("password") @NotNull @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="The password for login in clear text") String password) {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @GET
+ @Path("/logout")
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "logoutUser", summary = "Logs out current logged in user session", description = "")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "200", description = "successful operation", content = {
+
+ })
+ })
+ public Response logoutUser() {
+ return Response.ok().entity("magic!").build();
+ }
+
+ @PUT
+ @Path("/{username}")
+ @Consumes({ "application/json" })
+
+ @org.eclipse.microprofile.openapi.annotations.Operation(operationId = "updateUser", summary = "Updated user", description = "This can only be done by the logged in user.")
+ @org.eclipse.microprofile.openapi.annotations.tags.Tag(name="user")
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponses(value = {
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "400", description = "Invalid user supplied", content = {
+
+ }),
+ @org.eclipse.microprofile.openapi.annotations.responses.APIResponse(responseCode = "404", description = "User not found", content = {
+
+ })
+ })
+ public Response updateUser(@PathParam("username") @org.eclipse.microprofile.openapi.annotations.parameters.Parameter(description="name that need to be deleted") String username,@Valid @NotNull User user) {
+ return Response.ok().entity("magic!").build();
+ }
+}
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesAnyType.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesAnyType.java
new file mode 100644
index 000000000000..1f1eef4714bf
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesAnyType.java
@@ -0,0 +1,84 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesAnyType")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesAnyType extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesAnyType name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesAnyType additionalPropertiesAnyType = (AdditionalPropertiesAnyType) o;
+ return Objects.equals(this.name, additionalPropertiesAnyType.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesAnyType {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesArray.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesArray.java
new file mode 100644
index 000000000000..99b8f6b76e6b
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesArray.java
@@ -0,0 +1,85 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesArray")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesArray extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesArray name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesArray additionalPropertiesArray = (AdditionalPropertiesArray) o;
+ return Objects.equals(this.name, additionalPropertiesArray.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesArray {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesBoolean.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesBoolean.java
new file mode 100644
index 000000000000..bb34e58e817a
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesBoolean.java
@@ -0,0 +1,84 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesBoolean")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesBoolean extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesBoolean name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesBoolean additionalPropertiesBoolean = (AdditionalPropertiesBoolean) o;
+ return Objects.equals(this.name, additionalPropertiesBoolean.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesBoolean {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java
new file mode 100644
index 000000000000..2f9f9db99b96
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java
@@ -0,0 +1,178 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesClass")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesClass implements Serializable {
+ private @Valid Map mapProperty = new HashMap<>();
+ private @Valid Map> mapOfMapProperty = new HashMap<>();
+
+ protected AdditionalPropertiesClass(AdditionalPropertiesClassBuilder, ?> b) {
+ this.mapProperty = b.mapProperty;
+ this.mapOfMapProperty = b.mapOfMapProperty;
+ }
+
+ public AdditionalPropertiesClass() {
+ }
+
+ /**
+ **/
+ public AdditionalPropertiesClass mapProperty(Map mapProperty) {
+ this.mapProperty = mapProperty;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("map_property")
+ public Map getMapProperty() {
+ return mapProperty;
+ }
+
+ @JsonProperty("map_property")
+ public void setMapProperty(Map mapProperty) {
+ this.mapProperty = mapProperty;
+ }
+
+ public AdditionalPropertiesClass putMapPropertyItem(String key, String mapPropertyItem) {
+ if (this.mapProperty == null) {
+ this.mapProperty = new HashMap<>();
+ }
+
+ this.mapProperty.put(key, mapPropertyItem);
+ return this;
+ }
+
+ public AdditionalPropertiesClass removeMapPropertyItem(String mapPropertyItem) {
+ if (mapPropertyItem != null && this.mapProperty != null) {
+ this.mapProperty.remove(mapPropertyItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public AdditionalPropertiesClass mapOfMapProperty(Map> mapOfMapProperty) {
+ this.mapOfMapProperty = mapOfMapProperty;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("map_of_map_property")
+ @Valid public Map> getMapOfMapProperty() {
+ return mapOfMapProperty;
+ }
+
+ @JsonProperty("map_of_map_property")
+ public void setMapOfMapProperty(Map> mapOfMapProperty) {
+ this.mapOfMapProperty = mapOfMapProperty;
+ }
+
+ public AdditionalPropertiesClass putMapOfMapPropertyItem(String key, Map mapOfMapPropertyItem) {
+ if (this.mapOfMapProperty == null) {
+ this.mapOfMapProperty = new HashMap<>();
+ }
+
+ this.mapOfMapProperty.put(key, mapOfMapPropertyItem);
+ return this;
+ }
+
+ public AdditionalPropertiesClass removeMapOfMapPropertyItem(Map mapOfMapPropertyItem) {
+ if (mapOfMapPropertyItem != null && this.mapOfMapProperty != null) {
+ this.mapOfMapProperty.remove(mapOfMapPropertyItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesClass additionalPropertiesClass = (AdditionalPropertiesClass) o;
+ return Objects.equals(this.mapProperty, additionalPropertiesClass.mapProperty) &&
+ Objects.equals(this.mapOfMapProperty, additionalPropertiesClass.mapOfMapProperty);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mapProperty, mapOfMapProperty);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesClass {\n");
+
+ sb.append(" mapProperty: ").append(toIndentedString(mapProperty)).append("\n");
+ sb.append(" mapOfMapProperty: ").append(toIndentedString(mapOfMapProperty)).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 ");
+ }
+
+
+ public static AdditionalPropertiesClassBuilder, ?> builder() {
+ return new AdditionalPropertiesClassBuilderImpl();
+ }
+
+ private static final class AdditionalPropertiesClassBuilderImpl extends AdditionalPropertiesClassBuilder {
+
+ @Override
+ protected AdditionalPropertiesClassBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public AdditionalPropertiesClass build() {
+ return new AdditionalPropertiesClass(this);
+ }
+ }
+
+ public static abstract class AdditionalPropertiesClassBuilder> {
+ private Map mapProperty = new HashMap<>();
+ private Map> mapOfMapProperty = new HashMap<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B mapProperty(Map mapProperty) {
+ this.mapProperty = mapProperty;
+ return self();
+ }
+ public B mapOfMapProperty(Map> mapOfMapProperty) {
+ this.mapOfMapProperty = mapOfMapProperty;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesInteger.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesInteger.java
new file mode 100644
index 000000000000..2d7961459872
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesInteger.java
@@ -0,0 +1,84 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesInteger")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesInteger extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesInteger name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesInteger additionalPropertiesInteger = (AdditionalPropertiesInteger) o;
+ return Objects.equals(this.name, additionalPropertiesInteger.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesInteger {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesNumber.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesNumber.java
new file mode 100644
index 000000000000..97ade36b064b
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesNumber.java
@@ -0,0 +1,85 @@
+package org.openapitools.model;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesNumber")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesNumber extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesNumber name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesNumber additionalPropertiesNumber = (AdditionalPropertiesNumber) o;
+ return Objects.equals(this.name, additionalPropertiesNumber.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesNumber {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesObject.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesObject.java
new file mode 100644
index 000000000000..ce2afb15ef74
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesObject.java
@@ -0,0 +1,84 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesObject")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesObject extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesObject name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesObject additionalPropertiesObject = (AdditionalPropertiesObject) o;
+ return Objects.equals(this.name, additionalPropertiesObject.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesObject {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesString.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesString.java
new file mode 100644
index 000000000000..1fda37af1587
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AdditionalPropertiesString.java
@@ -0,0 +1,84 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AdditionalPropertiesString")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AdditionalPropertiesString extends HashMap implements Serializable {
+ private String name;
+
+ /**
+ **/
+ public AdditionalPropertiesString name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdditionalPropertiesString additionalPropertiesString = (AdditionalPropertiesString) o;
+ return Objects.equals(this.name, additionalPropertiesString.name) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdditionalPropertiesString {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AllOfWithSingleRef.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AllOfWithSingleRef.java
new file mode 100644
index 000000000000..4e551e256c65
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/AllOfWithSingleRef.java
@@ -0,0 +1,145 @@
+package org.openapitools.model;
+
+import org.openapitools.model.SingleRefType;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("AllOfWithSingleRef")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class AllOfWithSingleRef implements Serializable {
+ private String username;
+ private SingleRefType singleRefType;
+
+ protected AllOfWithSingleRef(AllOfWithSingleRefBuilder, ?> b) {
+ this.username = b.username;
+ this.singleRefType = b.singleRefType;
+ }
+
+ public AllOfWithSingleRef() {
+ }
+
+ /**
+ **/
+ public AllOfWithSingleRef username(String username) {
+ this.username = username;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("username")
+ public String getUsername() {
+ return username;
+ }
+
+ @JsonProperty("username")
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ /**
+ **/
+ public AllOfWithSingleRef singleRefType(SingleRefType singleRefType) {
+ this.singleRefType = singleRefType;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("SingleRefType")
+ @Valid public SingleRefType getSingleRefType() {
+ return singleRefType;
+ }
+
+ @JsonProperty("SingleRefType")
+ public void setSingleRefType(SingleRefType singleRefType) {
+ this.singleRefType = singleRefType;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AllOfWithSingleRef allOfWithSingleRef = (AllOfWithSingleRef) o;
+ return Objects.equals(this.username, allOfWithSingleRef.username) &&
+ Objects.equals(this.singleRefType, allOfWithSingleRef.singleRefType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(username, singleRefType);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AllOfWithSingleRef {\n");
+
+ sb.append(" username: ").append(toIndentedString(username)).append("\n");
+ sb.append(" singleRefType: ").append(toIndentedString(singleRefType)).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 ");
+ }
+
+
+ public static AllOfWithSingleRefBuilder, ?> builder() {
+ return new AllOfWithSingleRefBuilderImpl();
+ }
+
+ private static final class AllOfWithSingleRefBuilderImpl extends AllOfWithSingleRefBuilder {
+
+ @Override
+ protected AllOfWithSingleRefBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public AllOfWithSingleRef build() {
+ return new AllOfWithSingleRef(this);
+ }
+ }
+
+ public static abstract class AllOfWithSingleRefBuilder> {
+ private String username;
+ private SingleRefType singleRefType;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B username(String username) {
+ this.username = username;
+ return self();
+ }
+ public B singleRefType(SingleRefType singleRefType) {
+ this.singleRefType = singleRefType;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Animal.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Animal.java
new file mode 100644
index 000000000000..59ee072684fc
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Animal.java
@@ -0,0 +1,152 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "className", visible = true)
+@JsonSubTypes({
+ @JsonSubTypes.Type(value = Cat.class, name = "CAT"),
+ @JsonSubTypes.Type(value = Dog.class, name = "DOG"),
+})
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Animal")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Animal implements Serializable {
+ private String className;
+ private String color = "red";
+
+ protected Animal(AnimalBuilder, ?> b) {
+ this.className = b.className;
+ this.color = b.color;
+ }
+
+ public Animal() {
+ }
+
+ /**
+ **/
+ public Animal className(String className) {
+ this.className = className;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("className")
+ @NotNull public String getClassName() {
+ return className;
+ }
+
+ @JsonProperty("className")
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ /**
+ **/
+ public Animal color(String color) {
+ this.color = color;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("color")
+ public String getColor() {
+ return color;
+ }
+
+ @JsonProperty("color")
+ public void setColor(String color) {
+ this.color = color;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Animal animal = (Animal) o;
+ return Objects.equals(this.className, animal.className) &&
+ Objects.equals(this.color, animal.color);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(className, color);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Animal {\n");
+
+ sb.append(" className: ").append(toIndentedString(className)).append("\n");
+ sb.append(" color: ").append(toIndentedString(color)).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 ");
+ }
+
+
+ public static AnimalBuilder, ?> builder() {
+ return new AnimalBuilderImpl();
+ }
+
+ private static final class AnimalBuilderImpl extends AnimalBuilder {
+
+ @Override
+ protected AnimalBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Animal build() {
+ return new Animal(this);
+ }
+ }
+
+ public static abstract class AnimalBuilder> {
+ private String className;
+ private String color = "red";
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B className(String className) {
+ this.className = className;
+ return self();
+ }
+ public B color(String color) {
+ this.color = color;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
new file mode 100644
index 000000000000..c88ada708f52
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
@@ -0,0 +1,136 @@
+package org.openapitools.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("ArrayOfArrayOfNumberOnly")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ArrayOfArrayOfNumberOnly implements Serializable {
+ private @Valid List> arrayArrayNumber = new ArrayList<>();
+
+ protected ArrayOfArrayOfNumberOnly(ArrayOfArrayOfNumberOnlyBuilder, ?> b) {
+ this.arrayArrayNumber = b.arrayArrayNumber;
+ }
+
+ public ArrayOfArrayOfNumberOnly() {
+ }
+
+ /**
+ **/
+ public ArrayOfArrayOfNumberOnly arrayArrayNumber(List> arrayArrayNumber) {
+ this.arrayArrayNumber = arrayArrayNumber;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("ArrayArrayNumber")
+ @Valid public List<@Valid List<@Valid BigDecimal>> getArrayArrayNumber() {
+ return arrayArrayNumber;
+ }
+
+ @JsonProperty("ArrayArrayNumber")
+ public void setArrayArrayNumber(List> arrayArrayNumber) {
+ this.arrayArrayNumber = arrayArrayNumber;
+ }
+
+ public ArrayOfArrayOfNumberOnly addArrayArrayNumberItem(List arrayArrayNumberItem) {
+ if (this.arrayArrayNumber == null) {
+ this.arrayArrayNumber = new ArrayList<>();
+ }
+
+ this.arrayArrayNumber.add(arrayArrayNumberItem);
+ return this;
+ }
+
+ public ArrayOfArrayOfNumberOnly removeArrayArrayNumberItem(List arrayArrayNumberItem) {
+ if (arrayArrayNumberItem != null && this.arrayArrayNumber != null) {
+ this.arrayArrayNumber.remove(arrayArrayNumberItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ArrayOfArrayOfNumberOnly arrayOfArrayOfNumberOnly = (ArrayOfArrayOfNumberOnly) o;
+ return Objects.equals(this.arrayArrayNumber, arrayOfArrayOfNumberOnly.arrayArrayNumber);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(arrayArrayNumber);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ArrayOfArrayOfNumberOnly {\n");
+
+ sb.append(" arrayArrayNumber: ").append(toIndentedString(arrayArrayNumber)).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 ");
+ }
+
+
+ public static ArrayOfArrayOfNumberOnlyBuilder, ?> builder() {
+ return new ArrayOfArrayOfNumberOnlyBuilderImpl();
+ }
+
+ private static final class ArrayOfArrayOfNumberOnlyBuilderImpl extends ArrayOfArrayOfNumberOnlyBuilder {
+
+ @Override
+ protected ArrayOfArrayOfNumberOnlyBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ArrayOfArrayOfNumberOnly build() {
+ return new ArrayOfArrayOfNumberOnly(this);
+ }
+ }
+
+ public static abstract class ArrayOfArrayOfNumberOnlyBuilder> {
+ private List> arrayArrayNumber = new ArrayList<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B arrayArrayNumber(List> arrayArrayNumber) {
+ this.arrayArrayNumber = arrayArrayNumber;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java
new file mode 100644
index 000000000000..eded2af23bc0
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java
@@ -0,0 +1,136 @@
+package org.openapitools.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("ArrayOfNumberOnly")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ArrayOfNumberOnly implements Serializable {
+ private @Valid List arrayNumber = new ArrayList<>();
+
+ protected ArrayOfNumberOnly(ArrayOfNumberOnlyBuilder, ?> b) {
+ this.arrayNumber = b.arrayNumber;
+ }
+
+ public ArrayOfNumberOnly() {
+ }
+
+ /**
+ **/
+ public ArrayOfNumberOnly arrayNumber(List arrayNumber) {
+ this.arrayNumber = arrayNumber;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("ArrayNumber")
+ @Valid public List<@Valid BigDecimal> getArrayNumber() {
+ return arrayNumber;
+ }
+
+ @JsonProperty("ArrayNumber")
+ public void setArrayNumber(List arrayNumber) {
+ this.arrayNumber = arrayNumber;
+ }
+
+ public ArrayOfNumberOnly addArrayNumberItem(BigDecimal arrayNumberItem) {
+ if (this.arrayNumber == null) {
+ this.arrayNumber = new ArrayList<>();
+ }
+
+ this.arrayNumber.add(arrayNumberItem);
+ return this;
+ }
+
+ public ArrayOfNumberOnly removeArrayNumberItem(BigDecimal arrayNumberItem) {
+ if (arrayNumberItem != null && this.arrayNumber != null) {
+ this.arrayNumber.remove(arrayNumberItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ArrayOfNumberOnly arrayOfNumberOnly = (ArrayOfNumberOnly) o;
+ return Objects.equals(this.arrayNumber, arrayOfNumberOnly.arrayNumber);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(arrayNumber);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ArrayOfNumberOnly {\n");
+
+ sb.append(" arrayNumber: ").append(toIndentedString(arrayNumber)).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 ");
+ }
+
+
+ public static ArrayOfNumberOnlyBuilder, ?> builder() {
+ return new ArrayOfNumberOnlyBuilderImpl();
+ }
+
+ private static final class ArrayOfNumberOnlyBuilderImpl extends ArrayOfNumberOnlyBuilder {
+
+ @Override
+ protected ArrayOfNumberOnlyBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ArrayOfNumberOnly build() {
+ return new ArrayOfNumberOnly(this);
+ }
+ }
+
+ public static abstract class ArrayOfNumberOnlyBuilder> {
+ private List arrayNumber = new ArrayList<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B arrayNumber(List arrayNumber) {
+ this.arrayNumber = arrayNumber;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayTest.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayTest.java
new file mode 100644
index 000000000000..17f086ea6f24
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ArrayTest.java
@@ -0,0 +1,224 @@
+package org.openapitools.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.openapitools.model.ReadOnlyFirst;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("ArrayTest")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ArrayTest implements Serializable {
+ private @Valid List arrayOfString = new ArrayList<>();
+ private @Valid List> arrayArrayOfInteger = new ArrayList<>();
+ private @Valid List> arrayArrayOfModel = new ArrayList<>();
+
+ protected ArrayTest(ArrayTestBuilder, ?> b) {
+ this.arrayOfString = b.arrayOfString;
+ this.arrayArrayOfInteger = b.arrayArrayOfInteger;
+ this.arrayArrayOfModel = b.arrayArrayOfModel;
+ }
+
+ public ArrayTest() {
+ }
+
+ /**
+ **/
+ public ArrayTest arrayOfString(List arrayOfString) {
+ this.arrayOfString = arrayOfString;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("array_of_string")
+ @Size(min=0,max=3)public List getArrayOfString() {
+ return arrayOfString;
+ }
+
+ @JsonProperty("array_of_string")
+ public void setArrayOfString(List arrayOfString) {
+ this.arrayOfString = arrayOfString;
+ }
+
+ public ArrayTest addArrayOfStringItem(String arrayOfStringItem) {
+ if (this.arrayOfString == null) {
+ this.arrayOfString = new ArrayList<>();
+ }
+
+ this.arrayOfString.add(arrayOfStringItem);
+ return this;
+ }
+
+ public ArrayTest removeArrayOfStringItem(String arrayOfStringItem) {
+ if (arrayOfStringItem != null && this.arrayOfString != null) {
+ this.arrayOfString.remove(arrayOfStringItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public ArrayTest arrayArrayOfInteger(List> arrayArrayOfInteger) {
+ this.arrayArrayOfInteger = arrayArrayOfInteger;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("array_array_of_integer")
+ @Valid public List> getArrayArrayOfInteger() {
+ return arrayArrayOfInteger;
+ }
+
+ @JsonProperty("array_array_of_integer")
+ public void setArrayArrayOfInteger(List> arrayArrayOfInteger) {
+ this.arrayArrayOfInteger = arrayArrayOfInteger;
+ }
+
+ public ArrayTest addArrayArrayOfIntegerItem(List arrayArrayOfIntegerItem) {
+ if (this.arrayArrayOfInteger == null) {
+ this.arrayArrayOfInteger = new ArrayList<>();
+ }
+
+ this.arrayArrayOfInteger.add(arrayArrayOfIntegerItem);
+ return this;
+ }
+
+ public ArrayTest removeArrayArrayOfIntegerItem(List arrayArrayOfIntegerItem) {
+ if (arrayArrayOfIntegerItem != null && this.arrayArrayOfInteger != null) {
+ this.arrayArrayOfInteger.remove(arrayArrayOfIntegerItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public ArrayTest arrayArrayOfModel(List> arrayArrayOfModel) {
+ this.arrayArrayOfModel = arrayArrayOfModel;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("array_array_of_model")
+ @Valid public List<@Valid List<@Valid ReadOnlyFirst>> getArrayArrayOfModel() {
+ return arrayArrayOfModel;
+ }
+
+ @JsonProperty("array_array_of_model")
+ public void setArrayArrayOfModel(List> arrayArrayOfModel) {
+ this.arrayArrayOfModel = arrayArrayOfModel;
+ }
+
+ public ArrayTest addArrayArrayOfModelItem(List<@Valid ReadOnlyFirst> arrayArrayOfModelItem) {
+ if (this.arrayArrayOfModel == null) {
+ this.arrayArrayOfModel = new ArrayList<>();
+ }
+
+ this.arrayArrayOfModel.add(arrayArrayOfModelItem);
+ return this;
+ }
+
+ public ArrayTest removeArrayArrayOfModelItem(List<@Valid ReadOnlyFirst> arrayArrayOfModelItem) {
+ if (arrayArrayOfModelItem != null && this.arrayArrayOfModel != null) {
+ this.arrayArrayOfModel.remove(arrayArrayOfModelItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ArrayTest arrayTest = (ArrayTest) o;
+ return Objects.equals(this.arrayOfString, arrayTest.arrayOfString) &&
+ Objects.equals(this.arrayArrayOfInteger, arrayTest.arrayArrayOfInteger) &&
+ Objects.equals(this.arrayArrayOfModel, arrayTest.arrayArrayOfModel);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(arrayOfString, arrayArrayOfInteger, arrayArrayOfModel);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ArrayTest {\n");
+
+ sb.append(" arrayOfString: ").append(toIndentedString(arrayOfString)).append("\n");
+ sb.append(" arrayArrayOfInteger: ").append(toIndentedString(arrayArrayOfInteger)).append("\n");
+ sb.append(" arrayArrayOfModel: ").append(toIndentedString(arrayArrayOfModel)).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 ");
+ }
+
+
+ public static ArrayTestBuilder, ?> builder() {
+ return new ArrayTestBuilderImpl();
+ }
+
+ private static final class ArrayTestBuilderImpl extends ArrayTestBuilder {
+
+ @Override
+ protected ArrayTestBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ArrayTest build() {
+ return new ArrayTest(this);
+ }
+ }
+
+ public static abstract class ArrayTestBuilder> {
+ private List arrayOfString = new ArrayList<>();
+ private List> arrayArrayOfInteger = new ArrayList<>();
+ private List> arrayArrayOfModel = new ArrayList<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B arrayOfString(List arrayOfString) {
+ this.arrayOfString = arrayOfString;
+ return self();
+ }
+ public B arrayArrayOfInteger(List> arrayArrayOfInteger) {
+ this.arrayArrayOfInteger = arrayArrayOfInteger;
+ return self();
+ }
+ public B arrayArrayOfModel(List> arrayArrayOfModel) {
+ this.arrayArrayOfModel = arrayArrayOfModel;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/BigCat.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/BigCat.java
new file mode 100644
index 000000000000..47842269e44c
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/BigCat.java
@@ -0,0 +1,163 @@
+package org.openapitools.model;
+
+import org.openapitools.model.Cat;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("BigCat")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class BigCat extends Cat implements Serializable {
+ public enum KindEnum {
+
+ LIONS(String.valueOf("lions")), TIGERS(String.valueOf("tigers")), LEOPARDS(String.valueOf("leopards")), JAGUARS(String.valueOf("jaguars"));
+
+
+ private String value;
+
+ KindEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static KindEnum fromString(String s) {
+ for (KindEnum b : KindEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private KindEnum kind;
+
+ protected BigCat(BigCatBuilder, ?> b) {
+ super(b);
+ this.kind = b.kind;
+ }
+
+ public BigCat() {
+ }
+
+ /**
+ **/
+ public BigCat kind(KindEnum kind) {
+ this.kind = kind;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("kind")
+ public KindEnum getKind() {
+ return kind;
+ }
+
+ @JsonProperty("kind")
+ public void setKind(KindEnum kind) {
+ this.kind = kind;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BigCat bigCat = (BigCat) o;
+ return Objects.equals(this.kind, bigCat.kind) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(kind, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BigCat {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).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 ");
+ }
+
+
+ public static BigCatBuilder, ?> builder() {
+ return new BigCatBuilderImpl();
+ }
+
+ private static final class BigCatBuilderImpl extends BigCatBuilder {
+
+ @Override
+ protected BigCatBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public BigCat build() {
+ return new BigCat(this);
+ }
+ }
+
+ public static abstract class BigCatBuilder> extends CatBuilder {
+ private KindEnum kind;
+
+ public B kind(KindEnum kind) {
+ this.kind = kind;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Capitalization.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Capitalization.java
new file mode 100644
index 000000000000..6acbf5cedd1e
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Capitalization.java
@@ -0,0 +1,257 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Capitalization")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Capitalization implements Serializable {
+ private String smallCamel;
+ private String capitalCamel;
+ private String smallSnake;
+ private String capitalSnake;
+ private String scAETHFlowPoints;
+ private String ATT_NAME;
+
+ protected Capitalization(CapitalizationBuilder, ?> b) {
+ this.smallCamel = b.smallCamel;
+ this.capitalCamel = b.capitalCamel;
+ this.smallSnake = b.smallSnake;
+ this.capitalSnake = b.capitalSnake;
+ this.scAETHFlowPoints = b.scAETHFlowPoints;
+ this.ATT_NAME = b.ATT_NAME;
+ }
+
+ public Capitalization() {
+ }
+
+ /**
+ **/
+ public Capitalization smallCamel(String smallCamel) {
+ this.smallCamel = smallCamel;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("smallCamel")
+ public String getSmallCamel() {
+ return smallCamel;
+ }
+
+ @JsonProperty("smallCamel")
+ public void setSmallCamel(String smallCamel) {
+ this.smallCamel = smallCamel;
+ }
+
+ /**
+ **/
+ public Capitalization capitalCamel(String capitalCamel) {
+ this.capitalCamel = capitalCamel;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("CapitalCamel")
+ public String getCapitalCamel() {
+ return capitalCamel;
+ }
+
+ @JsonProperty("CapitalCamel")
+ public void setCapitalCamel(String capitalCamel) {
+ this.capitalCamel = capitalCamel;
+ }
+
+ /**
+ **/
+ public Capitalization smallSnake(String smallSnake) {
+ this.smallSnake = smallSnake;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("small_Snake")
+ public String getSmallSnake() {
+ return smallSnake;
+ }
+
+ @JsonProperty("small_Snake")
+ public void setSmallSnake(String smallSnake) {
+ this.smallSnake = smallSnake;
+ }
+
+ /**
+ **/
+ public Capitalization capitalSnake(String capitalSnake) {
+ this.capitalSnake = capitalSnake;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("Capital_Snake")
+ public String getCapitalSnake() {
+ return capitalSnake;
+ }
+
+ @JsonProperty("Capital_Snake")
+ public void setCapitalSnake(String capitalSnake) {
+ this.capitalSnake = capitalSnake;
+ }
+
+ /**
+ **/
+ public Capitalization scAETHFlowPoints(String scAETHFlowPoints) {
+ this.scAETHFlowPoints = scAETHFlowPoints;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("SCA_ETH_Flow_Points")
+ public String getScAETHFlowPoints() {
+ return scAETHFlowPoints;
+ }
+
+ @JsonProperty("SCA_ETH_Flow_Points")
+ public void setScAETHFlowPoints(String scAETHFlowPoints) {
+ this.scAETHFlowPoints = scAETHFlowPoints;
+ }
+
+ /**
+ * Name of the pet
+ **/
+ public Capitalization ATT_NAME(String ATT_NAME) {
+ this.ATT_NAME = ATT_NAME;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "Name of the pet ")
+ @JsonProperty("ATT_NAME")
+ public String getATTNAME() {
+ return ATT_NAME;
+ }
+
+ @JsonProperty("ATT_NAME")
+ public void setATTNAME(String ATT_NAME) {
+ this.ATT_NAME = ATT_NAME;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Capitalization capitalization = (Capitalization) o;
+ return Objects.equals(this.smallCamel, capitalization.smallCamel) &&
+ Objects.equals(this.capitalCamel, capitalization.capitalCamel) &&
+ Objects.equals(this.smallSnake, capitalization.smallSnake) &&
+ Objects.equals(this.capitalSnake, capitalization.capitalSnake) &&
+ Objects.equals(this.scAETHFlowPoints, capitalization.scAETHFlowPoints) &&
+ Objects.equals(this.ATT_NAME, capitalization.ATT_NAME);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(smallCamel, capitalCamel, smallSnake, capitalSnake, scAETHFlowPoints, ATT_NAME);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Capitalization {\n");
+
+ sb.append(" smallCamel: ").append(toIndentedString(smallCamel)).append("\n");
+ sb.append(" capitalCamel: ").append(toIndentedString(capitalCamel)).append("\n");
+ sb.append(" smallSnake: ").append(toIndentedString(smallSnake)).append("\n");
+ sb.append(" capitalSnake: ").append(toIndentedString(capitalSnake)).append("\n");
+ sb.append(" scAETHFlowPoints: ").append(toIndentedString(scAETHFlowPoints)).append("\n");
+ sb.append(" ATT_NAME: ").append(toIndentedString(ATT_NAME)).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 ");
+ }
+
+
+ public static CapitalizationBuilder, ?> builder() {
+ return new CapitalizationBuilderImpl();
+ }
+
+ private static final class CapitalizationBuilderImpl extends CapitalizationBuilder {
+
+ @Override
+ protected CapitalizationBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Capitalization build() {
+ return new Capitalization(this);
+ }
+ }
+
+ public static abstract class CapitalizationBuilder> {
+ private String smallCamel;
+ private String capitalCamel;
+ private String smallSnake;
+ private String capitalSnake;
+ private String scAETHFlowPoints;
+ private String ATT_NAME;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B smallCamel(String smallCamel) {
+ this.smallCamel = smallCamel;
+ return self();
+ }
+ public B capitalCamel(String capitalCamel) {
+ this.capitalCamel = capitalCamel;
+ return self();
+ }
+ public B smallSnake(String smallSnake) {
+ this.smallSnake = smallSnake;
+ return self();
+ }
+ public B capitalSnake(String capitalSnake) {
+ this.capitalSnake = capitalSnake;
+ return self();
+ }
+ public B scAETHFlowPoints(String scAETHFlowPoints) {
+ this.scAETHFlowPoints = scAETHFlowPoints;
+ return self();
+ }
+ public B ATT_NAME(String ATT_NAME) {
+ this.ATT_NAME = ATT_NAME;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Cat.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Cat.java
new file mode 100644
index 000000000000..9917d941c971
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Cat.java
@@ -0,0 +1,116 @@
+package org.openapitools.model;
+
+import org.openapitools.model.Animal;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Cat")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Cat extends Animal implements Serializable {
+ private Boolean declawed;
+
+ protected Cat(CatBuilder, ?> b) {
+ super(b);
+ this.declawed = b.declawed;
+ }
+
+ public Cat() {
+ }
+
+ /**
+ **/
+ public Cat declawed(Boolean declawed) {
+ this.declawed = declawed;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("declawed")
+ public Boolean getDeclawed() {
+ return declawed;
+ }
+
+ @JsonProperty("declawed")
+ public void setDeclawed(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) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(declawed, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Cat {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\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 ");
+ }
+
+
+ public static CatBuilder, ?> builder() {
+ return new CatBuilderImpl();
+ }
+
+ private static final class CatBuilderImpl extends CatBuilder {
+
+ @Override
+ protected CatBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Cat build() {
+ return new Cat(this);
+ }
+ }
+
+ public static abstract class CatBuilder> extends AnimalBuilder {
+ private Boolean declawed;
+
+ public B declawed(Boolean declawed) {
+ this.declawed = declawed;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Category.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Category.java
new file mode 100644
index 000000000000..8b56ec044192
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Category.java
@@ -0,0 +1,144 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Category")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Category implements Serializable {
+ private Long id;
+ private String name = "default-name";
+
+ protected Category(CategoryBuilder, ?> b) {
+ this.id = b.id;
+ this.name = b.name;
+ }
+
+ public Category() {
+ }
+
+ /**
+ **/
+ public Category id(Long id) {
+ this.id = id;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("id")
+ public Long getId() {
+ return id;
+ }
+
+ @JsonProperty("id")
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ /**
+ **/
+ public Category name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("name")
+ @NotNull public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Category category = (Category) o;
+ return Objects.equals(this.id, category.id) &&
+ Objects.equals(this.name, category.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Category {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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 ");
+ }
+
+
+ public static CategoryBuilder, ?> builder() {
+ return new CategoryBuilderImpl();
+ }
+
+ private static final class CategoryBuilderImpl extends CategoryBuilder {
+
+ @Override
+ protected CategoryBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Category build() {
+ return new Category(this);
+ }
+ }
+
+ public static abstract class CategoryBuilder> {
+ private Long id;
+ private String name = "default-name";
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B id(Long id) {
+ this.id = id;
+ return self();
+ }
+ public B name(String name) {
+ this.name = name;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ChildWithNullable.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ChildWithNullable.java
new file mode 100644
index 000000000000..a28bb86b964d
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ChildWithNullable.java
@@ -0,0 +1,117 @@
+package org.openapitools.model;
+
+import org.openapitools.jackson.nullable.JsonNullable;
+import org.openapitools.model.ParentWithNullable;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("ChildWithNullable")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ChildWithNullable extends ParentWithNullable implements Serializable {
+ private String otherProperty;
+
+ protected ChildWithNullable(ChildWithNullableBuilder, ?> b) {
+ super(b);
+ this.otherProperty = b.otherProperty;
+ }
+
+ public ChildWithNullable() {
+ }
+
+ /**
+ **/
+ public ChildWithNullable otherProperty(String otherProperty) {
+ this.otherProperty = otherProperty;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("otherProperty")
+ public String getOtherProperty() {
+ return otherProperty;
+ }
+
+ @JsonProperty("otherProperty")
+ public void setOtherProperty(String otherProperty) {
+ this.otherProperty = otherProperty;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ChildWithNullable childWithNullable = (ChildWithNullable) o;
+ return Objects.equals(this.otherProperty, childWithNullable.otherProperty) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(otherProperty, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ChildWithNullable {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" otherProperty: ").append(toIndentedString(otherProperty)).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 ");
+ }
+
+
+ public static ChildWithNullableBuilder, ?> builder() {
+ return new ChildWithNullableBuilderImpl();
+ }
+
+ private static final class ChildWithNullableBuilderImpl extends ChildWithNullableBuilder {
+
+ @Override
+ protected ChildWithNullableBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ChildWithNullable build() {
+ return new ChildWithNullable(this);
+ }
+ }
+
+ public static abstract class ChildWithNullableBuilder> extends ParentWithNullableBuilder {
+ private String otherProperty;
+
+ public B otherProperty(String otherProperty) {
+ this.otherProperty = otherProperty;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ClassModel.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ClassModel.java
new file mode 100644
index 000000000000..f235033c9a7b
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ClassModel.java
@@ -0,0 +1,118 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model for testing model with \"_class\" property
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Model for testing model with \"_class\" property")
+@JsonTypeName("ClassModel")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ClassModel implements Serializable {
+ private String propertyClass;
+
+ protected ClassModel(ClassModelBuilder, ?> b) {
+ this.propertyClass = b.propertyClass;
+ }
+
+ public ClassModel() {
+ }
+
+ /**
+ **/
+ public ClassModel propertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("_class")
+ public String getPropertyClass() {
+ return propertyClass;
+ }
+
+ @JsonProperty("_class")
+ public void setPropertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClassModel classModel = (ClassModel) o;
+ return Objects.equals(this.propertyClass, classModel.propertyClass);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(propertyClass);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClassModel {\n");
+
+ sb.append(" propertyClass: ").append(toIndentedString(propertyClass)).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 ");
+ }
+
+
+ public static ClassModelBuilder, ?> builder() {
+ return new ClassModelBuilderImpl();
+ }
+
+ private static final class ClassModelBuilderImpl extends ClassModelBuilder {
+
+ @Override
+ protected ClassModelBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ClassModel build() {
+ return new ClassModel(this);
+ }
+ }
+
+ public static abstract class ClassModelBuilder> {
+ private String propertyClass;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B propertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Client.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Client.java
new file mode 100644
index 000000000000..270417c29a89
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Client.java
@@ -0,0 +1,116 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Client")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Client implements Serializable {
+ private String client;
+
+ protected Client(ClientBuilder, ?> b) {
+ this.client = b.client;
+ }
+
+ public Client() {
+ }
+
+ /**
+ **/
+ public Client client(String client) {
+ this.client = client;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("client")
+ public String getClient() {
+ return client;
+ }
+
+ @JsonProperty("client")
+ public void setClient(String client) {
+ this.client = client;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Client client = (Client) o;
+ return Objects.equals(this.client, client.client);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(client);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Client {\n");
+
+ sb.append(" client: ").append(toIndentedString(client)).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 ");
+ }
+
+
+ public static ClientBuilder, ?> builder() {
+ return new ClientBuilderImpl();
+ }
+
+ private static final class ClientBuilderImpl extends ClientBuilder {
+
+ @Override
+ protected ClientBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Client build() {
+ return new Client(this);
+ }
+ }
+
+ public static abstract class ClientBuilder> {
+ private String client;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B client(String client) {
+ this.client = client;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/DeprecatedObject.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/DeprecatedObject.java
new file mode 100644
index 000000000000..5140832f3f92
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/DeprecatedObject.java
@@ -0,0 +1,116 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("DeprecatedObject")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class DeprecatedObject implements Serializable {
+ private String name;
+
+ protected DeprecatedObject(DeprecatedObjectBuilder, ?> b) {
+ this.name = b.name;
+ }
+
+ public DeprecatedObject() {
+ }
+
+ /**
+ **/
+ public DeprecatedObject name(String name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeprecatedObject deprecatedObject = (DeprecatedObject) o;
+ return Objects.equals(this.name, deprecatedObject.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeprecatedObject {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).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 ");
+ }
+
+
+ public static DeprecatedObjectBuilder, ?> builder() {
+ return new DeprecatedObjectBuilderImpl();
+ }
+
+ private static final class DeprecatedObjectBuilderImpl extends DeprecatedObjectBuilder {
+
+ @Override
+ protected DeprecatedObjectBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public DeprecatedObject build() {
+ return new DeprecatedObject(this);
+ }
+ }
+
+ public static abstract class DeprecatedObjectBuilder> {
+ private String name;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B name(String name) {
+ this.name = name;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Dog.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Dog.java
new file mode 100644
index 000000000000..ea4ed8fc6e8b
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Dog.java
@@ -0,0 +1,116 @@
+package org.openapitools.model;
+
+import org.openapitools.model.Animal;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Dog")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Dog extends Animal implements Serializable {
+ private String breed;
+
+ protected Dog(DogBuilder, ?> b) {
+ super(b);
+ this.breed = b.breed;
+ }
+
+ public Dog() {
+ }
+
+ /**
+ **/
+ public Dog breed(String breed) {
+ this.breed = breed;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("breed")
+ public String getBreed() {
+ return breed;
+ }
+
+ @JsonProperty("breed")
+ public void setBreed(String breed) {
+ this.breed = breed;
+ }
+
+
+ @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.breed, dog.breed) &&
+ super.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(breed, super.hashCode());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Dog {\n");
+ sb.append(" ").append(toIndentedString(super.toString())).append("\n");
+ sb.append(" breed: ").append(toIndentedString(breed)).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 ");
+ }
+
+
+ public static DogBuilder, ?> builder() {
+ return new DogBuilderImpl();
+ }
+
+ private static final class DogBuilderImpl extends DogBuilder {
+
+ @Override
+ protected DogBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Dog build() {
+ return new Dog(this);
+ }
+ }
+
+ public static abstract class DogBuilder> extends AnimalBuilder {
+ private String breed;
+
+ public B breed(String breed) {
+ this.breed = breed;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumArrays.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumArrays.java
new file mode 100644
index 000000000000..98c6b9aa6ff0
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumArrays.java
@@ -0,0 +1,257 @@
+package org.openapitools.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("EnumArrays")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class EnumArrays implements Serializable {
+ public enum JustSymbolEnum {
+
+ GREATER_THAN_OR_EQUAL_TO(String.valueOf(">=")), DOLLAR(String.valueOf("$"));
+
+
+ private String value;
+
+ JustSymbolEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static JustSymbolEnum fromString(String s) {
+ for (JustSymbolEnum b : JustSymbolEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static JustSymbolEnum fromValue(String value) {
+ for (JustSymbolEnum b : JustSymbolEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private JustSymbolEnum justSymbol;
+ public enum ArrayEnumEnum {
+
+ FISH(String.valueOf("fish")), CRAB(String.valueOf("crab"));
+
+
+ private String value;
+
+ ArrayEnumEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static ArrayEnumEnum fromString(String s) {
+ for (ArrayEnumEnum b : ArrayEnumEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static ArrayEnumEnum fromValue(String value) {
+ for (ArrayEnumEnum b : ArrayEnumEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private @Valid List arrayEnum = new ArrayList<>();
+
+ protected EnumArrays(EnumArraysBuilder, ?> b) {
+ this.justSymbol = b.justSymbol;
+ this.arrayEnum = b.arrayEnum;
+ }
+
+ public EnumArrays() {
+ }
+
+ /**
+ **/
+ public EnumArrays justSymbol(JustSymbolEnum justSymbol) {
+ this.justSymbol = justSymbol;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("just_symbol")
+ public JustSymbolEnum getJustSymbol() {
+ return justSymbol;
+ }
+
+ @JsonProperty("just_symbol")
+ public void setJustSymbol(JustSymbolEnum justSymbol) {
+ this.justSymbol = justSymbol;
+ }
+
+ /**
+ **/
+ public EnumArrays arrayEnum(List arrayEnum) {
+ this.arrayEnum = arrayEnum;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("array_enum")
+ public List getArrayEnum() {
+ return arrayEnum;
+ }
+
+ @JsonProperty("array_enum")
+ public void setArrayEnum(List arrayEnum) {
+ this.arrayEnum = arrayEnum;
+ }
+
+ public EnumArrays addArrayEnumItem(ArrayEnumEnum arrayEnumItem) {
+ if (this.arrayEnum == null) {
+ this.arrayEnum = new ArrayList<>();
+ }
+
+ this.arrayEnum.add(arrayEnumItem);
+ return this;
+ }
+
+ public EnumArrays removeArrayEnumItem(ArrayEnumEnum arrayEnumItem) {
+ if (arrayEnumItem != null && this.arrayEnum != null) {
+ this.arrayEnum.remove(arrayEnumItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumArrays enumArrays = (EnumArrays) o;
+ return Objects.equals(this.justSymbol, enumArrays.justSymbol) &&
+ Objects.equals(this.arrayEnum, enumArrays.arrayEnum);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(justSymbol, arrayEnum);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumArrays {\n");
+
+ sb.append(" justSymbol: ").append(toIndentedString(justSymbol)).append("\n");
+ sb.append(" arrayEnum: ").append(toIndentedString(arrayEnum)).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 ");
+ }
+
+
+ public static EnumArraysBuilder, ?> builder() {
+ return new EnumArraysBuilderImpl();
+ }
+
+ private static final class EnumArraysBuilderImpl extends EnumArraysBuilder {
+
+ @Override
+ protected EnumArraysBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public EnumArrays build() {
+ return new EnumArrays(this);
+ }
+ }
+
+ public static abstract class EnumArraysBuilder> {
+ private JustSymbolEnum justSymbol;
+ private List arrayEnum = new ArrayList<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B justSymbol(JustSymbolEnum justSymbol) {
+ this.justSymbol = justSymbol;
+ return self();
+ }
+ public B arrayEnum(List arrayEnum) {
+ this.arrayEnum = arrayEnum;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumClass.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumClass.java
new file mode 100644
index 000000000000..089a69da6da5
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumClass.java
@@ -0,0 +1,59 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Gets or Sets EnumClass
+ */
+public enum EnumClass {
+
+ _ABC("_abc"),
+
+ _EFG("-efg"),
+
+ _XYZ_("(xyz)");
+
+ private String value;
+
+ EnumClass(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static EnumClass fromString(String s) {
+ for (EnumClass b : EnumClass.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static EnumClass fromValue(String value) {
+ for (EnumClass b : EnumClass.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumTest.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumTest.java
new file mode 100644
index 000000000000..e86af587dafa
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/EnumTest.java
@@ -0,0 +1,506 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.openapitools.jackson.nullable.JsonNullable;
+import org.openapitools.model.OuterEnum;
+import org.openapitools.model.OuterEnumDefaultValue;
+import org.openapitools.model.OuterEnumInteger;
+import org.openapitools.model.OuterEnumIntegerDefaultValue;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Enum_Test")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class EnumTest implements Serializable {
+ public enum EnumStringEnum {
+
+ UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower")), EMPTY(String.valueOf(""));
+
+
+ private String value;
+
+ EnumStringEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static EnumStringEnum fromString(String s) {
+ for (EnumStringEnum b : EnumStringEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static EnumStringEnum fromValue(String value) {
+ for (EnumStringEnum b : EnumStringEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private EnumStringEnum enumString;
+ public enum EnumStringRequiredEnum {
+
+ UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower")), EMPTY(String.valueOf(""));
+
+
+ private String value;
+
+ EnumStringRequiredEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static EnumStringRequiredEnum fromString(String s) {
+ for (EnumStringRequiredEnum b : EnumStringRequiredEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static EnumStringRequiredEnum fromValue(String value) {
+ for (EnumStringRequiredEnum b : EnumStringRequiredEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private EnumStringRequiredEnum enumStringRequired;
+ public enum EnumIntegerEnum {
+
+ NUMBER_1(Integer.valueOf(1)), NUMBER_MINUS_1(Integer.valueOf(-1));
+
+
+ private Integer value;
+
+ EnumIntegerEnum (Integer v) {
+ value = v;
+ }
+
+ public Integer value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into Integer, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static EnumIntegerEnum fromString(String s) {
+ for (EnumIntegerEnum b : EnumIntegerEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static EnumIntegerEnum fromValue(Integer value) {
+ for (EnumIntegerEnum b : EnumIntegerEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private EnumIntegerEnum enumInteger;
+ public enum EnumNumberEnum {
+
+ NUMBER_1_DOT_1(Double.valueOf(1.1)), NUMBER_MINUS_1_DOT_2(Double.valueOf(-1.2));
+
+
+ private Double value;
+
+ EnumNumberEnum (Double v) {
+ value = v;
+ }
+
+ public Double value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into Double, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static EnumNumberEnum fromString(String s) {
+ for (EnumNumberEnum b : EnumNumberEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static EnumNumberEnum fromValue(Double value) {
+ for (EnumNumberEnum b : EnumNumberEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private EnumNumberEnum enumNumber;
+ private OuterEnum outerEnum;
+ private OuterEnumInteger outerEnumInteger;
+ private OuterEnumDefaultValue outerEnumDefaultValue = OuterEnumDefaultValue.PLACED;
+ private OuterEnumIntegerDefaultValue outerEnumIntegerDefaultValue = OuterEnumIntegerDefaultValue.NUMBER_0;
+
+ protected EnumTest(EnumTestBuilder, ?> b) {
+ this.enumString = b.enumString;
+ this.enumStringRequired = b.enumStringRequired;
+ this.enumInteger = b.enumInteger;
+ this.enumNumber = b.enumNumber;
+ this.outerEnum = b.outerEnum;
+ this.outerEnumInteger = b.outerEnumInteger;
+ this.outerEnumDefaultValue = b.outerEnumDefaultValue;
+ this.outerEnumIntegerDefaultValue = b.outerEnumIntegerDefaultValue;
+ }
+
+ public EnumTest() {
+ }
+
+ /**
+ **/
+ public EnumTest enumString(EnumStringEnum enumString) {
+ this.enumString = enumString;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("enum_string")
+ public EnumStringEnum getEnumString() {
+ return enumString;
+ }
+
+ @JsonProperty("enum_string")
+ public void setEnumString(EnumStringEnum enumString) {
+ this.enumString = enumString;
+ }
+
+ /**
+ **/
+ public EnumTest enumStringRequired(EnumStringRequiredEnum enumStringRequired) {
+ this.enumStringRequired = enumStringRequired;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("enum_string_required")
+ @NotNull public EnumStringRequiredEnum getEnumStringRequired() {
+ return enumStringRequired;
+ }
+
+ @JsonProperty("enum_string_required")
+ public void setEnumStringRequired(EnumStringRequiredEnum enumStringRequired) {
+ this.enumStringRequired = enumStringRequired;
+ }
+
+ /**
+ **/
+ public EnumTest enumInteger(EnumIntegerEnum enumInteger) {
+ this.enumInteger = enumInteger;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("enum_integer")
+ public EnumIntegerEnum getEnumInteger() {
+ return enumInteger;
+ }
+
+ @JsonProperty("enum_integer")
+ public void setEnumInteger(EnumIntegerEnum enumInteger) {
+ this.enumInteger = enumInteger;
+ }
+
+ /**
+ **/
+ public EnumTest enumNumber(EnumNumberEnum enumNumber) {
+ this.enumNumber = enumNumber;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("enum_number")
+ public EnumNumberEnum getEnumNumber() {
+ return enumNumber;
+ }
+
+ @JsonProperty("enum_number")
+ public void setEnumNumber(EnumNumberEnum enumNumber) {
+ this.enumNumber = enumNumber;
+ }
+
+ /**
+ **/
+ public EnumTest outerEnum(OuterEnum outerEnum) {
+ this.outerEnum = outerEnum;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("outerEnum")
+ @Valid public OuterEnum getOuterEnum() {
+ return outerEnum;
+ }
+
+ @JsonProperty("outerEnum")
+ public void setOuterEnum(OuterEnum outerEnum) {
+ this.outerEnum = outerEnum;
+ }
+
+ /**
+ **/
+ public EnumTest outerEnumInteger(OuterEnumInteger outerEnumInteger) {
+ this.outerEnumInteger = outerEnumInteger;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("outerEnumInteger")
+ @Valid public OuterEnumInteger getOuterEnumInteger() {
+ return outerEnumInteger;
+ }
+
+ @JsonProperty("outerEnumInteger")
+ public void setOuterEnumInteger(OuterEnumInteger outerEnumInteger) {
+ this.outerEnumInteger = outerEnumInteger;
+ }
+
+ /**
+ **/
+ public EnumTest outerEnumDefaultValue(OuterEnumDefaultValue outerEnumDefaultValue) {
+ this.outerEnumDefaultValue = outerEnumDefaultValue;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("outerEnumDefaultValue")
+ @Valid public OuterEnumDefaultValue getOuterEnumDefaultValue() {
+ return outerEnumDefaultValue;
+ }
+
+ @JsonProperty("outerEnumDefaultValue")
+ public void setOuterEnumDefaultValue(OuterEnumDefaultValue outerEnumDefaultValue) {
+ this.outerEnumDefaultValue = outerEnumDefaultValue;
+ }
+
+ /**
+ **/
+ public EnumTest outerEnumIntegerDefaultValue(OuterEnumIntegerDefaultValue outerEnumIntegerDefaultValue) {
+ this.outerEnumIntegerDefaultValue = outerEnumIntegerDefaultValue;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("outerEnumIntegerDefaultValue")
+ @Valid public OuterEnumIntegerDefaultValue getOuterEnumIntegerDefaultValue() {
+ return outerEnumIntegerDefaultValue;
+ }
+
+ @JsonProperty("outerEnumIntegerDefaultValue")
+ public void setOuterEnumIntegerDefaultValue(OuterEnumIntegerDefaultValue outerEnumIntegerDefaultValue) {
+ this.outerEnumIntegerDefaultValue = outerEnumIntegerDefaultValue;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumTest enumTest = (EnumTest) o;
+ return Objects.equals(this.enumString, enumTest.enumString) &&
+ Objects.equals(this.enumStringRequired, enumTest.enumStringRequired) &&
+ Objects.equals(this.enumInteger, enumTest.enumInteger) &&
+ Objects.equals(this.enumNumber, enumTest.enumNumber) &&
+ Objects.equals(this.outerEnum, enumTest.outerEnum) &&
+ Objects.equals(this.outerEnumInteger, enumTest.outerEnumInteger) &&
+ Objects.equals(this.outerEnumDefaultValue, enumTest.outerEnumDefaultValue) &&
+ Objects.equals(this.outerEnumIntegerDefaultValue, enumTest.outerEnumIntegerDefaultValue);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enumString, enumStringRequired, enumInteger, enumNumber, outerEnum, outerEnumInteger, outerEnumDefaultValue, outerEnumIntegerDefaultValue);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumTest {\n");
+
+ sb.append(" enumString: ").append(toIndentedString(enumString)).append("\n");
+ sb.append(" enumStringRequired: ").append(toIndentedString(enumStringRequired)).append("\n");
+ sb.append(" enumInteger: ").append(toIndentedString(enumInteger)).append("\n");
+ sb.append(" enumNumber: ").append(toIndentedString(enumNumber)).append("\n");
+ sb.append(" outerEnum: ").append(toIndentedString(outerEnum)).append("\n");
+ sb.append(" outerEnumInteger: ").append(toIndentedString(outerEnumInteger)).append("\n");
+ sb.append(" outerEnumDefaultValue: ").append(toIndentedString(outerEnumDefaultValue)).append("\n");
+ sb.append(" outerEnumIntegerDefaultValue: ").append(toIndentedString(outerEnumIntegerDefaultValue)).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 ");
+ }
+
+
+ public static EnumTestBuilder, ?> builder() {
+ return new EnumTestBuilderImpl();
+ }
+
+ private static final class EnumTestBuilderImpl extends EnumTestBuilder {
+
+ @Override
+ protected EnumTestBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public EnumTest build() {
+ return new EnumTest(this);
+ }
+ }
+
+ public static abstract class EnumTestBuilder> {
+ private EnumStringEnum enumString;
+ private EnumStringRequiredEnum enumStringRequired;
+ private EnumIntegerEnum enumInteger;
+ private EnumNumberEnum enumNumber;
+ private OuterEnum outerEnum;
+ private OuterEnumInteger outerEnumInteger;
+ private OuterEnumDefaultValue outerEnumDefaultValue = OuterEnumDefaultValue.PLACED;
+ private OuterEnumIntegerDefaultValue outerEnumIntegerDefaultValue = OuterEnumIntegerDefaultValue.NUMBER_0;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B enumString(EnumStringEnum enumString) {
+ this.enumString = enumString;
+ return self();
+ }
+ public B enumStringRequired(EnumStringRequiredEnum enumStringRequired) {
+ this.enumStringRequired = enumStringRequired;
+ return self();
+ }
+ public B enumInteger(EnumIntegerEnum enumInteger) {
+ this.enumInteger = enumInteger;
+ return self();
+ }
+ public B enumNumber(EnumNumberEnum enumNumber) {
+ this.enumNumber = enumNumber;
+ return self();
+ }
+ public B outerEnum(OuterEnum outerEnum) {
+ this.outerEnum = outerEnum;
+ return self();
+ }
+ public B outerEnumInteger(OuterEnumInteger outerEnumInteger) {
+ this.outerEnumInteger = outerEnumInteger;
+ return self();
+ }
+ public B outerEnumDefaultValue(OuterEnumDefaultValue outerEnumDefaultValue) {
+ this.outerEnumDefaultValue = outerEnumDefaultValue;
+ return self();
+ }
+ public B outerEnumIntegerDefaultValue(OuterEnumIntegerDefaultValue outerEnumIntegerDefaultValue) {
+ this.outerEnumIntegerDefaultValue = outerEnumIntegerDefaultValue;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FakeBigDecimalMap200Response.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FakeBigDecimalMap200Response.java
new file mode 100644
index 000000000000..9c2267dabc17
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FakeBigDecimalMap200Response.java
@@ -0,0 +1,164 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("fakeBigDecimalMap_200_response")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FakeBigDecimalMap200Response implements Serializable {
+ private BigDecimal someId;
+ private @Valid Map someMap = new HashMap<>();
+
+ protected FakeBigDecimalMap200Response(FakeBigDecimalMap200ResponseBuilder, ?> b) {
+ this.someId = b.someId;
+ this.someMap = b.someMap;
+ }
+
+ public FakeBigDecimalMap200Response() {
+ }
+
+ /**
+ **/
+ public FakeBigDecimalMap200Response someId(BigDecimal someId) {
+ this.someId = someId;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("someId")
+ @Valid public BigDecimal getSomeId() {
+ return someId;
+ }
+
+ @JsonProperty("someId")
+ public void setSomeId(BigDecimal someId) {
+ this.someId = someId;
+ }
+
+ /**
+ **/
+ public FakeBigDecimalMap200Response someMap(Map someMap) {
+ this.someMap = someMap;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("someMap")
+ @Valid public Map getSomeMap() {
+ return someMap;
+ }
+
+ @JsonProperty("someMap")
+ public void setSomeMap(Map someMap) {
+ this.someMap = someMap;
+ }
+
+ public FakeBigDecimalMap200Response putSomeMapItem(String key, BigDecimal someMapItem) {
+ if (this.someMap == null) {
+ this.someMap = new HashMap<>();
+ }
+
+ this.someMap.put(key, someMapItem);
+ return this;
+ }
+
+ public FakeBigDecimalMap200Response removeSomeMapItem(BigDecimal someMapItem) {
+ if (someMapItem != null && this.someMap != null) {
+ this.someMap.remove(someMapItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FakeBigDecimalMap200Response fakeBigDecimalMap200Response = (FakeBigDecimalMap200Response) o;
+ return Objects.equals(this.someId, fakeBigDecimalMap200Response.someId) &&
+ Objects.equals(this.someMap, fakeBigDecimalMap200Response.someMap);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(someId, someMap);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FakeBigDecimalMap200Response {\n");
+
+ sb.append(" someId: ").append(toIndentedString(someId)).append("\n");
+ sb.append(" someMap: ").append(toIndentedString(someMap)).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 ");
+ }
+
+
+ public static FakeBigDecimalMap200ResponseBuilder, ?> builder() {
+ return new FakeBigDecimalMap200ResponseBuilderImpl();
+ }
+
+ private static final class FakeBigDecimalMap200ResponseBuilderImpl extends FakeBigDecimalMap200ResponseBuilder {
+
+ @Override
+ protected FakeBigDecimalMap200ResponseBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public FakeBigDecimalMap200Response build() {
+ return new FakeBigDecimalMap200Response(this);
+ }
+ }
+
+ public static abstract class FakeBigDecimalMap200ResponseBuilder> {
+ private BigDecimal someId;
+ private Map someMap = new HashMap<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B someId(BigDecimal someId) {
+ this.someId = someId;
+ return self();
+ }
+ public B someMap(Map someMap) {
+ this.someMap = someMap;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FileSchemaTestClass.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FileSchemaTestClass.java
new file mode 100644
index 000000000000..d5d8a6c538f1
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FileSchemaTestClass.java
@@ -0,0 +1,164 @@
+package org.openapitools.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.openapitools.model.ModelFile;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("FileSchemaTestClass")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FileSchemaTestClass implements Serializable {
+ private ModelFile _file;
+ private @Valid List<@Valid ModelFile> files = new ArrayList<>();
+
+ protected FileSchemaTestClass(FileSchemaTestClassBuilder, ?> b) {
+ this._file = b._file;
+ this.files = b.files;
+ }
+
+ public FileSchemaTestClass() {
+ }
+
+ /**
+ **/
+ public FileSchemaTestClass _file(ModelFile _file) {
+ this._file = _file;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("file")
+ @Valid public ModelFile getFile() {
+ return _file;
+ }
+
+ @JsonProperty("file")
+ public void setFile(ModelFile _file) {
+ this._file = _file;
+ }
+
+ /**
+ **/
+ public FileSchemaTestClass files(List<@Valid ModelFile> files) {
+ this.files = files;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("files")
+ @Valid public List<@Valid ModelFile> getFiles() {
+ return files;
+ }
+
+ @JsonProperty("files")
+ public void setFiles(List<@Valid ModelFile> files) {
+ this.files = files;
+ }
+
+ public FileSchemaTestClass addFilesItem(ModelFile filesItem) {
+ if (this.files == null) {
+ this.files = new ArrayList<>();
+ }
+
+ this.files.add(filesItem);
+ return this;
+ }
+
+ public FileSchemaTestClass removeFilesItem(ModelFile filesItem) {
+ if (filesItem != null && this.files != null) {
+ this.files.remove(filesItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FileSchemaTestClass fileSchemaTestClass = (FileSchemaTestClass) o;
+ return Objects.equals(this._file, fileSchemaTestClass._file) &&
+ Objects.equals(this.files, fileSchemaTestClass.files);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(_file, files);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FileSchemaTestClass {\n");
+
+ sb.append(" _file: ").append(toIndentedString(_file)).append("\n");
+ sb.append(" files: ").append(toIndentedString(files)).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 ");
+ }
+
+
+ public static FileSchemaTestClassBuilder, ?> builder() {
+ return new FileSchemaTestClassBuilderImpl();
+ }
+
+ private static final class FileSchemaTestClassBuilderImpl extends FileSchemaTestClassBuilder {
+
+ @Override
+ protected FileSchemaTestClassBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public FileSchemaTestClass build() {
+ return new FileSchemaTestClass(this);
+ }
+ }
+
+ public static abstract class FileSchemaTestClassBuilder> {
+ private ModelFile _file;
+ private List<@Valid ModelFile> files = new ArrayList<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B _file(ModelFile _file) {
+ this._file = _file;
+ return self();
+ }
+ public B files(List<@Valid ModelFile> files) {
+ this.files = files;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Foo.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Foo.java
new file mode 100644
index 000000000000..c20b1c5cc633
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Foo.java
@@ -0,0 +1,116 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("Foo")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Foo implements Serializable {
+ private String bar = "bar";
+
+ protected Foo(FooBuilder, ?> b) {
+ this.bar = b.bar;
+ }
+
+ public Foo() {
+ }
+
+ /**
+ **/
+ public Foo bar(String bar) {
+ this.bar = bar;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("bar")
+ public String getBar() {
+ return bar;
+ }
+
+ @JsonProperty("bar")
+ public void setBar(String bar) {
+ this.bar = bar;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Foo foo = (Foo) o;
+ return Objects.equals(this.bar, foo.bar);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(bar);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Foo {\n");
+
+ sb.append(" bar: ").append(toIndentedString(bar)).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 ");
+ }
+
+
+ public static FooBuilder, ?> builder() {
+ return new FooBuilderImpl();
+ }
+
+ private static final class FooBuilderImpl extends FooBuilder {
+
+ @Override
+ protected FooBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Foo build() {
+ return new Foo(this);
+ }
+ }
+
+ public static abstract class FooBuilder> {
+ private String bar = "bar";
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B bar(String bar) {
+ this.bar = bar;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FooGetDefaultResponse.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FooGetDefaultResponse.java
new file mode 100644
index 000000000000..ea5ad1a733e8
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FooGetDefaultResponse.java
@@ -0,0 +1,118 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.openapitools.model.Foo;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("_foo_get_default_response")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FooGetDefaultResponse implements Serializable {
+ private Foo string;
+
+ protected FooGetDefaultResponse(FooGetDefaultResponseBuilder, ?> b) {
+ this.string = b.string;
+ }
+
+ public FooGetDefaultResponse() {
+ }
+
+ /**
+ **/
+ public FooGetDefaultResponse string(Foo string) {
+ this.string = string;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("string")
+ @Valid public Foo getString() {
+ return string;
+ }
+
+ @JsonProperty("string")
+ public void setString(Foo string) {
+ this.string = string;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FooGetDefaultResponse fooGetDefaultResponse = (FooGetDefaultResponse) o;
+ return Objects.equals(this.string, fooGetDefaultResponse.string);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(string);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FooGetDefaultResponse {\n");
+
+ sb.append(" string: ").append(toIndentedString(string)).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 ");
+ }
+
+
+ public static FooGetDefaultResponseBuilder, ?> builder() {
+ return new FooGetDefaultResponseBuilderImpl();
+ }
+
+ private static final class FooGetDefaultResponseBuilderImpl extends FooGetDefaultResponseBuilder {
+
+ @Override
+ protected FooGetDefaultResponseBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public FooGetDefaultResponse build() {
+ return new FooGetDefaultResponse(this);
+ }
+ }
+
+ public static abstract class FooGetDefaultResponseBuilder> {
+ private Foo string;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B string(Foo string) {
+ this.string = string;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FormatTest.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FormatTest.java
new file mode 100644
index 000000000000..1ec8298c1fd9
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/FormatTest.java
@@ -0,0 +1,555 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.File;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Arrays;
+import java.util.UUID;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("format_test")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class FormatTest implements Serializable {
+ private Integer integer;
+ private Integer int32;
+ private Long int64;
+ private BigDecimal number;
+ private Float _float;
+ private Double _double;
+ private BigDecimal decimal;
+ private String string;
+ private byte[] _byte;
+ private File binary;
+ private LocalDate date;
+ private LocalDateTime dateTime;
+ private UUID uuid;
+ private String password;
+ private String patternWithDigits;
+ private String patternWithDigitsAndDelimiter;
+
+ protected FormatTest(FormatTestBuilder, ?> b) {
+ this.integer = b.integer;
+ this.int32 = b.int32;
+ this.int64 = b.int64;
+ this.number = b.number;
+ this._float = b._float;
+ this._double = b._double;
+ this.decimal = b.decimal;
+ this.string = b.string;
+ this._byte = b._byte;
+ this.binary = b.binary;
+ this.date = b.date;
+ this.dateTime = b.dateTime;
+ this.uuid = b.uuid;
+ this.password = b.password;
+ this.patternWithDigits = b.patternWithDigits;
+ this.patternWithDigitsAndDelimiter = b.patternWithDigitsAndDelimiter;
+ }
+
+ public FormatTest() {
+ }
+
+ /**
+ * minimum: 10
+ * maximum: 100
+ **/
+ public FormatTest integer(Integer integer) {
+ this.integer = integer;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("integer")
+ @Min(10) @Max(100)public Integer getInteger() {
+ return integer;
+ }
+
+ @JsonProperty("integer")
+ public void setInteger(Integer integer) {
+ this.integer = integer;
+ }
+
+ /**
+ * minimum: 20
+ * maximum: 200
+ **/
+ public FormatTest int32(Integer int32) {
+ this.int32 = int32;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("int32")
+ @Min(20) @Max(200)public Integer getInt32() {
+ return int32;
+ }
+
+ @JsonProperty("int32")
+ public void setInt32(Integer int32) {
+ this.int32 = int32;
+ }
+
+ /**
+ **/
+ public FormatTest int64(Long int64) {
+ this.int64 = int64;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("int64")
+ public Long getInt64() {
+ return int64;
+ }
+
+ @JsonProperty("int64")
+ public void setInt64(Long int64) {
+ this.int64 = int64;
+ }
+
+ /**
+ * minimum: 32.1
+ * maximum: 543.2
+ **/
+ public FormatTest number(BigDecimal number) {
+ this.number = number;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("number")
+ @NotNull @Valid @DecimalMin("32.1") @DecimalMax("543.2")public BigDecimal getNumber() {
+ return number;
+ }
+
+ @JsonProperty("number")
+ public void setNumber(BigDecimal number) {
+ this.number = number;
+ }
+
+ /**
+ * minimum: 54.3
+ * maximum: 987.6
+ **/
+ public FormatTest _float(Float _float) {
+ this._float = _float;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("float")
+ @DecimalMin("54.3") @DecimalMax("987.6")public Float getFloat() {
+ return _float;
+ }
+
+ @JsonProperty("float")
+ public void setFloat(Float _float) {
+ this._float = _float;
+ }
+
+ /**
+ * minimum: 67.8
+ * maximum: 123.4
+ **/
+ public FormatTest _double(Double _double) {
+ this._double = _double;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("double")
+ @DecimalMin("67.8") @DecimalMax("123.4")public Double getDouble() {
+ return _double;
+ }
+
+ @JsonProperty("double")
+ public void setDouble(Double _double) {
+ this._double = _double;
+ }
+
+ /**
+ **/
+ public FormatTest decimal(BigDecimal decimal) {
+ this.decimal = decimal;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("decimal")
+ @Valid public BigDecimal getDecimal() {
+ return decimal;
+ }
+
+ @JsonProperty("decimal")
+ public void setDecimal(BigDecimal decimal) {
+ this.decimal = decimal;
+ }
+
+ /**
+ **/
+ public FormatTest string(String string) {
+ this.string = string;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("string")
+ @Pattern(regexp="/[a-z]/i")public String getString() {
+ return string;
+ }
+
+ @JsonProperty("string")
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ /**
+ **/
+ public FormatTest _byte(byte[] _byte) {
+ this._byte = _byte;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("byte")
+ @NotNull public byte[] getByte() {
+ return _byte;
+ }
+
+ @JsonProperty("byte")
+ public void setByte(byte[] _byte) {
+ this._byte = _byte;
+ }
+
+ /**
+ **/
+ public FormatTest binary(File binary) {
+ this.binary = binary;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("binary")
+ @Valid public File getBinary() {
+ return binary;
+ }
+
+ @JsonProperty("binary")
+ public void setBinary(File binary) {
+ this.binary = binary;
+ }
+
+ /**
+ **/
+ public FormatTest date(LocalDate date) {
+ this.date = date;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("date")
+ @NotNull @Valid public LocalDate getDate() {
+ return date;
+ }
+
+ @JsonProperty("date")
+ public void setDate(LocalDate date) {
+ this.date = date;
+ }
+
+ /**
+ **/
+ public FormatTest dateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("dateTime")
+ @Valid public LocalDateTime getDateTime() {
+ return dateTime;
+ }
+
+ @JsonProperty("dateTime")
+ public void setDateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ }
+
+ /**
+ **/
+ public FormatTest uuid(UUID uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(example = "72f98069-206d-4f12-9f12-3d1e525a8e84", description = "")
+ @JsonProperty("uuid")
+ @Valid public UUID getUuid() {
+ return uuid;
+ }
+
+ @JsonProperty("uuid")
+ public void setUuid(UUID uuid) {
+ this.uuid = uuid;
+ }
+
+ /**
+ **/
+ public FormatTest password(String password) {
+ this.password = password;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("password")
+ @NotNull @Size(min=10,max=64)public String getPassword() {
+ return password;
+ }
+
+ @JsonProperty("password")
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * A string that is a 10 digit number. Can have leading zeros.
+ **/
+ public FormatTest patternWithDigits(String patternWithDigits) {
+ this.patternWithDigits = patternWithDigits;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "A string that is a 10 digit number. Can have leading zeros.")
+ @JsonProperty("pattern_with_digits")
+ @Pattern(regexp="^\\d{10}$")public String getPatternWithDigits() {
+ return patternWithDigits;
+ }
+
+ @JsonProperty("pattern_with_digits")
+ public void setPatternWithDigits(String patternWithDigits) {
+ this.patternWithDigits = patternWithDigits;
+ }
+
+ /**
+ * A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
+ **/
+ public FormatTest patternWithDigitsAndDelimiter(String patternWithDigitsAndDelimiter) {
+ this.patternWithDigitsAndDelimiter = patternWithDigitsAndDelimiter;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.")
+ @JsonProperty("pattern_with_digits_and_delimiter")
+ @Pattern(regexp="/^image_\\d{1,3}$/i")public String getPatternWithDigitsAndDelimiter() {
+ return patternWithDigitsAndDelimiter;
+ }
+
+ @JsonProperty("pattern_with_digits_and_delimiter")
+ public void setPatternWithDigitsAndDelimiter(String patternWithDigitsAndDelimiter) {
+ this.patternWithDigitsAndDelimiter = patternWithDigitsAndDelimiter;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ FormatTest formatTest = (FormatTest) o;
+ return Objects.equals(this.integer, formatTest.integer) &&
+ Objects.equals(this.int32, formatTest.int32) &&
+ Objects.equals(this.int64, formatTest.int64) &&
+ Objects.equals(this.number, formatTest.number) &&
+ Objects.equals(this._float, formatTest._float) &&
+ Objects.equals(this._double, formatTest._double) &&
+ Objects.equals(this.decimal, formatTest.decimal) &&
+ Objects.equals(this.string, formatTest.string) &&
+ Arrays.equals(this._byte, formatTest._byte) &&
+ Objects.equals(this.binary, formatTest.binary) &&
+ Objects.equals(this.date, formatTest.date) &&
+ Objects.equals(this.dateTime, formatTest.dateTime) &&
+ Objects.equals(this.uuid, formatTest.uuid) &&
+ Objects.equals(this.password, formatTest.password) &&
+ Objects.equals(this.patternWithDigits, formatTest.patternWithDigits) &&
+ Objects.equals(this.patternWithDigitsAndDelimiter, formatTest.patternWithDigitsAndDelimiter);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(integer, int32, int64, number, _float, _double, decimal, string, Arrays.hashCode(_byte), binary, date, dateTime, uuid, password, patternWithDigits, patternWithDigitsAndDelimiter);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class FormatTest {\n");
+
+ sb.append(" integer: ").append(toIndentedString(integer)).append("\n");
+ sb.append(" int32: ").append(toIndentedString(int32)).append("\n");
+ sb.append(" int64: ").append(toIndentedString(int64)).append("\n");
+ sb.append(" number: ").append(toIndentedString(number)).append("\n");
+ sb.append(" _float: ").append(toIndentedString(_float)).append("\n");
+ sb.append(" _double: ").append(toIndentedString(_double)).append("\n");
+ sb.append(" decimal: ").append(toIndentedString(decimal)).append("\n");
+ sb.append(" string: ").append(toIndentedString(string)).append("\n");
+ sb.append(" _byte: ").append(toIndentedString(_byte)).append("\n");
+ sb.append(" binary: ").append(toIndentedString(binary)).append("\n");
+ sb.append(" date: ").append(toIndentedString(date)).append("\n");
+ sb.append(" dateTime: ").append(toIndentedString(dateTime)).append("\n");
+ sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n");
+ sb.append(" password: ").append("*").append("\n");
+ sb.append(" patternWithDigits: ").append(toIndentedString(patternWithDigits)).append("\n");
+ sb.append(" patternWithDigitsAndDelimiter: ").append(toIndentedString(patternWithDigitsAndDelimiter)).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 ");
+ }
+
+
+ public static FormatTestBuilder, ?> builder() {
+ return new FormatTestBuilderImpl();
+ }
+
+ private static final class FormatTestBuilderImpl extends FormatTestBuilder {
+
+ @Override
+ protected FormatTestBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public FormatTest build() {
+ return new FormatTest(this);
+ }
+ }
+
+ public static abstract class FormatTestBuilder> {
+ private Integer integer;
+ private Integer int32;
+ private Long int64;
+ private BigDecimal number;
+ private Float _float;
+ private Double _double;
+ private BigDecimal decimal;
+ private String string;
+ private byte[] _byte;
+ private File binary;
+ private LocalDate date;
+ private LocalDateTime dateTime;
+ private UUID uuid;
+ private String password;
+ private String patternWithDigits;
+ private String patternWithDigitsAndDelimiter;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B integer(Integer integer) {
+ this.integer = integer;
+ return self();
+ }
+ public B int32(Integer int32) {
+ this.int32 = int32;
+ return self();
+ }
+ public B int64(Long int64) {
+ this.int64 = int64;
+ return self();
+ }
+ public B number(BigDecimal number) {
+ this.number = number;
+ return self();
+ }
+ public B _float(Float _float) {
+ this._float = _float;
+ return self();
+ }
+ public B _double(Double _double) {
+ this._double = _double;
+ return self();
+ }
+ public B decimal(BigDecimal decimal) {
+ this.decimal = decimal;
+ return self();
+ }
+ public B string(String string) {
+ this.string = string;
+ return self();
+ }
+ public B _byte(byte[] _byte) {
+ this._byte = _byte;
+ return self();
+ }
+ public B binary(File binary) {
+ this.binary = binary;
+ return self();
+ }
+ public B date(LocalDate date) {
+ this.date = date;
+ return self();
+ }
+ public B dateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ return self();
+ }
+ public B uuid(UUID uuid) {
+ this.uuid = uuid;
+ return self();
+ }
+ public B password(String password) {
+ this.password = password;
+ return self();
+ }
+ public B patternWithDigits(String patternWithDigits) {
+ this.patternWithDigits = patternWithDigits;
+ return self();
+ }
+ public B patternWithDigitsAndDelimiter(String patternWithDigitsAndDelimiter) {
+ this.patternWithDigitsAndDelimiter = patternWithDigitsAndDelimiter;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HasOnlyReadOnly.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HasOnlyReadOnly.java
new file mode 100644
index 000000000000..1e1d6e6a9f85
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HasOnlyReadOnly.java
@@ -0,0 +1,145 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("hasOnlyReadOnly")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class HasOnlyReadOnly implements Serializable {
+ private String bar;
+ private String foo;
+
+ protected HasOnlyReadOnly(HasOnlyReadOnlyBuilder, ?> b) {
+ this.bar = b.bar;
+ this.foo = b.foo;
+ }
+
+ public HasOnlyReadOnly() {
+ }
+
+ /**
+ **/
+ public HasOnlyReadOnly bar(String bar) {
+ this.bar = bar;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("bar")
+ public String getBar() {
+ return bar;
+ }
+
+ @JsonProperty("bar")
+ public void setBar(String bar) {
+ this.bar = bar;
+ }
+
+ /**
+ **/
+ public HasOnlyReadOnly foo(String foo) {
+ this.foo = foo;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("foo")
+ public String getFoo() {
+ return foo;
+ }
+
+ @JsonProperty("foo")
+ public void setFoo(String foo) {
+ this.foo = foo;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ HasOnlyReadOnly hasOnlyReadOnly = (HasOnlyReadOnly) o;
+ return Objects.equals(this.bar, hasOnlyReadOnly.bar) &&
+ Objects.equals(this.foo, hasOnlyReadOnly.foo);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(bar, foo);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class HasOnlyReadOnly {\n");
+
+ sb.append(" bar: ").append(toIndentedString(bar)).append("\n");
+ sb.append(" foo: ").append(toIndentedString(foo)).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 ");
+ }
+
+
+ public static HasOnlyReadOnlyBuilder, ?> builder() {
+ return new HasOnlyReadOnlyBuilderImpl();
+ }
+
+ private static final class HasOnlyReadOnlyBuilderImpl extends HasOnlyReadOnlyBuilder {
+
+ @Override
+ protected HasOnlyReadOnlyBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public HasOnlyReadOnly build() {
+ return new HasOnlyReadOnly(this);
+ }
+ }
+
+ public static abstract class HasOnlyReadOnlyBuilder> {
+ private String bar;
+ private String foo;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B bar(String bar) {
+ this.bar = bar;
+ return self();
+ }
+ public B foo(String foo) {
+ this.foo = foo;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HealthCheckResult.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HealthCheckResult.java
new file mode 100644
index 000000000000..e01d09b995ae
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/HealthCheckResult.java
@@ -0,0 +1,119 @@
+package org.openapitools.model;
+
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Just a string to inform instance is up and running. Make it nullable in hope to get it as pointer in generated model.
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Just a string to inform instance is up and running. Make it nullable in hope to get it as pointer in generated model.")
+@JsonTypeName("HealthCheckResult")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class HealthCheckResult implements Serializable {
+ private String nullableMessage;
+
+ protected HealthCheckResult(HealthCheckResultBuilder, ?> b) {
+ this.nullableMessage = b.nullableMessage;
+ }
+
+ public HealthCheckResult() {
+ }
+
+ /**
+ **/
+ public HealthCheckResult nullableMessage(String nullableMessage) {
+ this.nullableMessage = nullableMessage;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("NullableMessage")
+ public String getNullableMessage() {
+ return nullableMessage;
+ }
+
+ @JsonProperty("NullableMessage")
+ public void setNullableMessage(String nullableMessage) {
+ this.nullableMessage = nullableMessage;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ HealthCheckResult healthCheckResult = (HealthCheckResult) o;
+ return Objects.equals(this.nullableMessage, healthCheckResult.nullableMessage);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(nullableMessage);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class HealthCheckResult {\n");
+
+ sb.append(" nullableMessage: ").append(toIndentedString(nullableMessage)).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 ");
+ }
+
+
+ public static HealthCheckResultBuilder, ?> builder() {
+ return new HealthCheckResultBuilderImpl();
+ }
+
+ private static final class HealthCheckResultBuilderImpl extends HealthCheckResultBuilder {
+
+ @Override
+ protected HealthCheckResultBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public HealthCheckResult build() {
+ return new HealthCheckResult(this);
+ }
+ }
+
+ public static abstract class HealthCheckResultBuilder> {
+ private String nullableMessage;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B nullableMessage(String nullableMessage) {
+ this.nullableMessage = nullableMessage;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MapTest.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MapTest.java
new file mode 100644
index 000000000000..8edf5b5e886c
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MapTest.java
@@ -0,0 +1,313 @@
+package org.openapitools.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("MapTest")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class MapTest implements Serializable {
+ private @Valid Map> mapMapOfString = new HashMap<>();
+ public enum InnerEnum {
+
+ UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower"));
+
+
+ private String value;
+
+ InnerEnum (String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ @Override
+ @JsonValue
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ /**
+ * Convert a String into String, as specified in the
+ * See JAX RS 2.0 Specification, section 3.2, p. 12
+ */
+ public static InnerEnum fromString(String s) {
+ for (InnerEnum b : InnerEnum.values()) {
+ // using Objects.toString() to be safe if value type non-object type
+ // because types like 'int' etc. will be auto-boxed
+ if (java.util.Objects.toString(b.value).equals(s)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected string value '" + s + "'");
+ }
+
+ @JsonCreator
+ public static InnerEnum fromValue(String value) {
+ for (InnerEnum b : InnerEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+}
+
+ private @Valid Map mapOfEnumString = new HashMap<>();
+ private @Valid Map directMap = new HashMap<>();
+ private @Valid Map indirectMap = new HashMap<>();
+
+ protected MapTest(MapTestBuilder, ?> b) {
+ this.mapMapOfString = b.mapMapOfString;
+ this.mapOfEnumString = b.mapOfEnumString;
+ this.directMap = b.directMap;
+ this.indirectMap = b.indirectMap;
+ }
+
+ public MapTest() {
+ }
+
+ /**
+ **/
+ public MapTest mapMapOfString(Map> mapMapOfString) {
+ this.mapMapOfString = mapMapOfString;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("map_map_of_string")
+ @Valid public Map> getMapMapOfString() {
+ return mapMapOfString;
+ }
+
+ @JsonProperty("map_map_of_string")
+ public void setMapMapOfString(Map> mapMapOfString) {
+ this.mapMapOfString = mapMapOfString;
+ }
+
+ public MapTest putMapMapOfStringItem(String key, Map mapMapOfStringItem) {
+ if (this.mapMapOfString == null) {
+ this.mapMapOfString = new HashMap<>();
+ }
+
+ this.mapMapOfString.put(key, mapMapOfStringItem);
+ return this;
+ }
+
+ public MapTest removeMapMapOfStringItem(Map mapMapOfStringItem) {
+ if (mapMapOfStringItem != null && this.mapMapOfString != null) {
+ this.mapMapOfString.remove(mapMapOfStringItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public MapTest mapOfEnumString(Map mapOfEnumString) {
+ this.mapOfEnumString = mapOfEnumString;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("map_of_enum_string")
+ public Map getMapOfEnumString() {
+ return mapOfEnumString;
+ }
+
+ @JsonProperty("map_of_enum_string")
+ public void setMapOfEnumString(Map mapOfEnumString) {
+ this.mapOfEnumString = mapOfEnumString;
+ }
+
+ public MapTest putMapOfEnumStringItem(String key, InnerEnum mapOfEnumStringItem) {
+ if (this.mapOfEnumString == null) {
+ this.mapOfEnumString = new HashMap<>();
+ }
+
+ this.mapOfEnumString.put(key, mapOfEnumStringItem);
+ return this;
+ }
+
+ public MapTest removeMapOfEnumStringItem(InnerEnum mapOfEnumStringItem) {
+ if (mapOfEnumStringItem != null && this.mapOfEnumString != null) {
+ this.mapOfEnumString.remove(mapOfEnumStringItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public MapTest directMap(Map directMap) {
+ this.directMap = directMap;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("direct_map")
+ public Map getDirectMap() {
+ return directMap;
+ }
+
+ @JsonProperty("direct_map")
+ public void setDirectMap(Map directMap) {
+ this.directMap = directMap;
+ }
+
+ public MapTest putDirectMapItem(String key, Boolean directMapItem) {
+ if (this.directMap == null) {
+ this.directMap = new HashMap<>();
+ }
+
+ this.directMap.put(key, directMapItem);
+ return this;
+ }
+
+ public MapTest removeDirectMapItem(Boolean directMapItem) {
+ if (directMapItem != null && this.directMap != null) {
+ this.directMap.remove(directMapItem);
+ }
+
+ return this;
+ }
+ /**
+ **/
+ public MapTest indirectMap(Map indirectMap) {
+ this.indirectMap = indirectMap;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("indirect_map")
+ public Map getIndirectMap() {
+ return indirectMap;
+ }
+
+ @JsonProperty("indirect_map")
+ public void setIndirectMap(Map indirectMap) {
+ this.indirectMap = indirectMap;
+ }
+
+ public MapTest putIndirectMapItem(String key, Boolean indirectMapItem) {
+ if (this.indirectMap == null) {
+ this.indirectMap = new HashMap<>();
+ }
+
+ this.indirectMap.put(key, indirectMapItem);
+ return this;
+ }
+
+ public MapTest removeIndirectMapItem(Boolean indirectMapItem) {
+ if (indirectMapItem != null && this.indirectMap != null) {
+ this.indirectMap.remove(indirectMapItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ MapTest mapTest = (MapTest) o;
+ return Objects.equals(this.mapMapOfString, mapTest.mapMapOfString) &&
+ Objects.equals(this.mapOfEnumString, mapTest.mapOfEnumString) &&
+ Objects.equals(this.directMap, mapTest.directMap) &&
+ Objects.equals(this.indirectMap, mapTest.indirectMap);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mapMapOfString, mapOfEnumString, directMap, indirectMap);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class MapTest {\n");
+
+ sb.append(" mapMapOfString: ").append(toIndentedString(mapMapOfString)).append("\n");
+ sb.append(" mapOfEnumString: ").append(toIndentedString(mapOfEnumString)).append("\n");
+ sb.append(" directMap: ").append(toIndentedString(directMap)).append("\n");
+ sb.append(" indirectMap: ").append(toIndentedString(indirectMap)).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 ");
+ }
+
+
+ public static MapTestBuilder, ?> builder() {
+ return new MapTestBuilderImpl();
+ }
+
+ private static final class MapTestBuilderImpl extends MapTestBuilder {
+
+ @Override
+ protected MapTestBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public MapTest build() {
+ return new MapTest(this);
+ }
+ }
+
+ public static abstract class MapTestBuilder> {
+ private Map> mapMapOfString = new HashMap<>();
+ private Map mapOfEnumString = new HashMap<>();
+ private Map directMap = new HashMap<>();
+ private Map indirectMap = new HashMap<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B mapMapOfString(Map> mapMapOfString) {
+ this.mapMapOfString = mapMapOfString;
+ return self();
+ }
+ public B mapOfEnumString(Map mapOfEnumString) {
+ this.mapOfEnumString = mapOfEnumString;
+ return self();
+ }
+ public B directMap(Map directMap) {
+ this.directMap = directMap;
+ return self();
+ }
+ public B indirectMap(Map indirectMap) {
+ this.indirectMap = indirectMap;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
new file mode 100644
index 000000000000..be71565f10ca
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/MixedPropertiesAndAdditionalPropertiesClass.java
@@ -0,0 +1,193 @@
+package org.openapitools.model;
+
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import org.openapitools.model.Animal;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("MixedPropertiesAndAdditionalPropertiesClass")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class MixedPropertiesAndAdditionalPropertiesClass implements Serializable {
+ private UUID uuid;
+ private LocalDateTime dateTime;
+ private @Valid Map map = new HashMap<>();
+
+ protected MixedPropertiesAndAdditionalPropertiesClass(MixedPropertiesAndAdditionalPropertiesClassBuilder, ?> b) {
+ this.uuid = b.uuid;
+ this.dateTime = b.dateTime;
+ this.map = b.map;
+ }
+
+ public MixedPropertiesAndAdditionalPropertiesClass() {
+ }
+
+ /**
+ **/
+ public MixedPropertiesAndAdditionalPropertiesClass uuid(UUID uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("uuid")
+ @Valid public UUID getUuid() {
+ return uuid;
+ }
+
+ @JsonProperty("uuid")
+ public void setUuid(UUID uuid) {
+ this.uuid = uuid;
+ }
+
+ /**
+ **/
+ public MixedPropertiesAndAdditionalPropertiesClass dateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("dateTime")
+ @Valid public LocalDateTime getDateTime() {
+ return dateTime;
+ }
+
+ @JsonProperty("dateTime")
+ public void setDateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ }
+
+ /**
+ **/
+ public MixedPropertiesAndAdditionalPropertiesClass map(Map map) {
+ this.map = map;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("map")
+ @Valid public Map getMap() {
+ return map;
+ }
+
+ @JsonProperty("map")
+ public void setMap(Map map) {
+ this.map = map;
+ }
+
+ public MixedPropertiesAndAdditionalPropertiesClass putMapItem(String key, Animal mapItem) {
+ if (this.map == null) {
+ this.map = new HashMap<>();
+ }
+
+ this.map.put(key, mapItem);
+ return this;
+ }
+
+ public MixedPropertiesAndAdditionalPropertiesClass removeMapItem(Animal mapItem) {
+ if (mapItem != null && this.map != null) {
+ this.map.remove(mapItem);
+ }
+
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ MixedPropertiesAndAdditionalPropertiesClass mixedPropertiesAndAdditionalPropertiesClass = (MixedPropertiesAndAdditionalPropertiesClass) o;
+ return Objects.equals(this.uuid, mixedPropertiesAndAdditionalPropertiesClass.uuid) &&
+ Objects.equals(this.dateTime, mixedPropertiesAndAdditionalPropertiesClass.dateTime) &&
+ Objects.equals(this.map, mixedPropertiesAndAdditionalPropertiesClass.map);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(uuid, dateTime, map);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class MixedPropertiesAndAdditionalPropertiesClass {\n");
+
+ sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n");
+ sb.append(" dateTime: ").append(toIndentedString(dateTime)).append("\n");
+ sb.append(" map: ").append(toIndentedString(map)).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 ");
+ }
+
+
+ public static MixedPropertiesAndAdditionalPropertiesClassBuilder, ?> builder() {
+ return new MixedPropertiesAndAdditionalPropertiesClassBuilderImpl();
+ }
+
+ private static final class MixedPropertiesAndAdditionalPropertiesClassBuilderImpl extends MixedPropertiesAndAdditionalPropertiesClassBuilder {
+
+ @Override
+ protected MixedPropertiesAndAdditionalPropertiesClassBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public MixedPropertiesAndAdditionalPropertiesClass build() {
+ return new MixedPropertiesAndAdditionalPropertiesClass(this);
+ }
+ }
+
+ public static abstract class MixedPropertiesAndAdditionalPropertiesClassBuilder> {
+ private UUID uuid;
+ private LocalDateTime dateTime;
+ private Map map = new HashMap<>();
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B uuid(UUID uuid) {
+ this.uuid = uuid;
+ return self();
+ }
+ public B dateTime(LocalDateTime dateTime) {
+ this.dateTime = dateTime;
+ return self();
+ }
+ public B map(Map map) {
+ this.map = map;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Model200Response.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Model200Response.java
new file mode 100644
index 000000000000..451723509f86
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Model200Response.java
@@ -0,0 +1,147 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model for testing model name starting with number
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Model for testing model name starting with number")
+@JsonTypeName("200_response")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Model200Response implements Serializable {
+ private Integer name;
+ private String propertyClass;
+
+ protected Model200Response(Model200ResponseBuilder, ?> b) {
+ this.name = b.name;
+ this.propertyClass = b.propertyClass;
+ }
+
+ public Model200Response() {
+ }
+
+ /**
+ **/
+ public Model200Response name(Integer name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("name")
+ public Integer getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(Integer name) {
+ this.name = name;
+ }
+
+ /**
+ **/
+ public Model200Response propertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("class")
+ public String getPropertyClass() {
+ return propertyClass;
+ }
+
+ @JsonProperty("class")
+ public void setPropertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Model200Response _200response = (Model200Response) o;
+ return Objects.equals(this.name, _200response.name) &&
+ Objects.equals(this.propertyClass, _200response.propertyClass);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, propertyClass);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Model200Response {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" propertyClass: ").append(toIndentedString(propertyClass)).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 ");
+ }
+
+
+ public static Model200ResponseBuilder, ?> builder() {
+ return new Model200ResponseBuilderImpl();
+ }
+
+ private static final class Model200ResponseBuilderImpl extends Model200ResponseBuilder {
+
+ @Override
+ protected Model200ResponseBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Model200Response build() {
+ return new Model200Response(this);
+ }
+ }
+
+ public static abstract class Model200ResponseBuilder> {
+ private Integer name;
+ private String propertyClass;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B name(Integer name) {
+ this.name = name;
+ return self();
+ }
+ public B propertyClass(String propertyClass) {
+ this.propertyClass = propertyClass;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelApiResponse.java
new file mode 100644
index 000000000000..fb7c7ea9cb8e
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelApiResponse.java
@@ -0,0 +1,173 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("ApiResponse")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ModelApiResponse implements Serializable {
+ private Integer code;
+ private String type;
+ private String message;
+
+ protected ModelApiResponse(ModelApiResponseBuilder, ?> b) {
+ this.code = b.code;
+ this.type = b.type;
+ this.message = b.message;
+ }
+
+ public ModelApiResponse() {
+ }
+
+ /**
+ **/
+ public ModelApiResponse code(Integer code) {
+ this.code = code;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("code")
+ public Integer getCode() {
+ return code;
+ }
+
+ @JsonProperty("code")
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ /**
+ **/
+ public ModelApiResponse type(String type) {
+ this.type = type;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("type")
+ public String getType() {
+ return type;
+ }
+
+ @JsonProperty("type")
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ **/
+ public ModelApiResponse message(String message) {
+ this.message = message;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("message")
+ public String getMessage() {
+ return message;
+ }
+
+ @JsonProperty("message")
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModelApiResponse _apiResponse = (ModelApiResponse) o;
+ return Objects.equals(this.code, _apiResponse.code) &&
+ Objects.equals(this.type, _apiResponse.type) &&
+ Objects.equals(this.message, _apiResponse.message);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(code, type, message);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModelApiResponse {\n");
+
+ sb.append(" code: ").append(toIndentedString(code)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" message: ").append(toIndentedString(message)).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 ");
+ }
+
+
+ public static ModelApiResponseBuilder, ?> builder() {
+ return new ModelApiResponseBuilderImpl();
+ }
+
+ private static final class ModelApiResponseBuilderImpl extends ModelApiResponseBuilder {
+
+ @Override
+ protected ModelApiResponseBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ModelApiResponse build() {
+ return new ModelApiResponse(this);
+ }
+ }
+
+ public static abstract class ModelApiResponseBuilder> {
+ private Integer code;
+ private String type;
+ private String message;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B code(Integer code) {
+ this.code = code;
+ return self();
+ }
+ public B type(String type) {
+ this.type = type;
+ return self();
+ }
+ public B message(String message) {
+ this.message = message;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelFile.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelFile.java
new file mode 100644
index 000000000000..c7ab36d19968
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelFile.java
@@ -0,0 +1,120 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Must be named `File` for test.
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Must be named `File` for test.")
+@JsonTypeName("File")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ModelFile implements Serializable {
+ private String sourceURI;
+
+ protected ModelFile(ModelFileBuilder, ?> b) {
+ this.sourceURI = b.sourceURI;
+ }
+
+ public ModelFile() {
+ }
+
+ /**
+ * Test capitalization
+ **/
+ public ModelFile sourceURI(String sourceURI) {
+ this.sourceURI = sourceURI;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "Test capitalization")
+ @JsonProperty("sourceURI")
+ public String getSourceURI() {
+ return sourceURI;
+ }
+
+ @JsonProperty("sourceURI")
+ public void setSourceURI(String sourceURI) {
+ this.sourceURI = sourceURI;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModelFile _file = (ModelFile) o;
+ return Objects.equals(this.sourceURI, _file.sourceURI);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(sourceURI);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModelFile {\n");
+
+ sb.append(" sourceURI: ").append(toIndentedString(sourceURI)).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 ");
+ }
+
+
+ public static ModelFileBuilder, ?> builder() {
+ return new ModelFileBuilderImpl();
+ }
+
+ private static final class ModelFileBuilderImpl extends ModelFileBuilder {
+
+ @Override
+ protected ModelFileBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ModelFile build() {
+ return new ModelFile(this);
+ }
+ }
+
+ public static abstract class ModelFileBuilder> {
+ private String sourceURI;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B sourceURI(String sourceURI) {
+ this.sourceURI = sourceURI;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelList.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelList.java
new file mode 100644
index 000000000000..e7afdefe1128
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelList.java
@@ -0,0 +1,117 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("List")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ModelList implements Serializable {
+ private String _123list;
+
+ protected ModelList(ModelListBuilder, ?> b) {
+ this._123list = b._123list;
+ }
+
+ public ModelList() {
+ }
+
+ /**
+ **/
+ public ModelList _123list(String _123list) {
+ this._123list = _123list;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("123-list")
+ public String get123list() {
+ return _123list;
+ }
+
+ @JsonProperty("123-list")
+ public void set123list(String _123list) {
+ this._123list = _123list;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModelList _list = (ModelList) o;
+ return Objects.equals(this._123list, _list._123list);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(_123list);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModelList {\n");
+
+ sb.append(" _123list: ").append(toIndentedString(_123list)).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 ");
+ }
+
+
+ public static ModelListBuilder, ?> builder() {
+ return new ModelListBuilderImpl();
+ }
+
+ private static final class ModelListBuilderImpl extends ModelListBuilder {
+
+ @Override
+ protected ModelListBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ModelList build() {
+ return new ModelList(this);
+ }
+ }
+
+ public static abstract class ModelListBuilder> {
+ private String _123list;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B _123list(String _123list) {
+ this._123list = _123list;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelReturn.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelReturn.java
new file mode 100644
index 000000000000..a19c63ba168d
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/ModelReturn.java
@@ -0,0 +1,119 @@
+package org.openapitools.model;
+
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model for testing reserved words
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Model for testing reserved words")
+@JsonTypeName("Return")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class ModelReturn implements Serializable {
+ private Integer _return;
+
+ protected ModelReturn(ModelReturnBuilder, ?> b) {
+ this._return = b._return;
+ }
+
+ public ModelReturn() {
+ }
+
+ /**
+ **/
+ public ModelReturn _return(Integer _return) {
+ this._return = _return;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("return")
+ public Integer getReturn() {
+ return _return;
+ }
+
+ @JsonProperty("return")
+ public void setReturn(Integer _return) {
+ this._return = _return;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModelReturn _return = (ModelReturn) o;
+ return Objects.equals(this._return, _return._return);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(_return);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModelReturn {\n");
+
+ sb.append(" _return: ").append(toIndentedString(_return)).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 ");
+ }
+
+
+ public static ModelReturnBuilder, ?> builder() {
+ return new ModelReturnBuilderImpl();
+ }
+
+ private static final class ModelReturnBuilderImpl extends ModelReturnBuilder {
+
+ @Override
+ protected ModelReturnBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public ModelReturn build() {
+ return new ModelReturn(this);
+ }
+ }
+
+ public static abstract class ModelReturnBuilder> {
+ private Integer _return;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B _return(Integer _return) {
+ this._return = _return;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Name.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Name.java
new file mode 100644
index 000000000000..b275b372e104
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/Name.java
@@ -0,0 +1,202 @@
+package org.openapitools.model;
+
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model for testing model name same as property name
+ **/
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="Model for testing model name same as property name")
+@JsonTypeName("Name")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class Name implements Serializable {
+ private Integer name;
+ private Integer snakeCase;
+ private String property;
+ private Integer _123number;
+
+ protected Name(NameBuilder, ?> b) {
+ this.name = b.name;
+ this.snakeCase = b.snakeCase;
+ this.property = b.property;
+ this._123number = b._123number;
+ }
+
+ public Name() {
+ }
+
+ /**
+ **/
+ public Name name(Integer name) {
+ this.name = name;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(required = true, description = "")
+ @JsonProperty("name")
+ @NotNull public Integer getName() {
+ return name;
+ }
+
+ @JsonProperty("name")
+ public void setName(Integer name) {
+ this.name = name;
+ }
+
+ /**
+ **/
+ public Name snakeCase(Integer snakeCase) {
+ this.snakeCase = snakeCase;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("snake_case")
+ public Integer getSnakeCase() {
+ return snakeCase;
+ }
+
+ @JsonProperty("snake_case")
+ public void setSnakeCase(Integer snakeCase) {
+ this.snakeCase = snakeCase;
+ }
+
+ /**
+ **/
+ public Name property(String property) {
+ this.property = property;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("property")
+ public String getProperty() {
+ return property;
+ }
+
+ @JsonProperty("property")
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ /**
+ **/
+ public Name _123number(Integer _123number) {
+ this._123number = _123number;
+ return this;
+ }
+
+
+ @org.eclipse.microprofile.openapi.annotations.media.Schema(description = "")
+ @JsonProperty("123Number")
+ public Integer get123number() {
+ return _123number;
+ }
+
+ @JsonProperty("123Number")
+ public void set123number(Integer _123number) {
+ this._123number = _123number;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ Name name = (Name) o;
+ return Objects.equals(this.name, name.name) &&
+ Objects.equals(this.snakeCase, name.snakeCase) &&
+ Objects.equals(this.property, name.property) &&
+ Objects.equals(this._123number, name._123number);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, snakeCase, property, _123number);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class Name {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" snakeCase: ").append(toIndentedString(snakeCase)).append("\n");
+ sb.append(" property: ").append(toIndentedString(property)).append("\n");
+ sb.append(" _123number: ").append(toIndentedString(_123number)).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 ");
+ }
+
+
+ public static NameBuilder, ?> builder() {
+ return new NameBuilderImpl();
+ }
+
+ private static final class NameBuilderImpl extends NameBuilder {
+
+ @Override
+ protected NameBuilderImpl self() {
+ return this;
+ }
+
+ @Override
+ public Name build() {
+ return new Name(this);
+ }
+ }
+
+ public static abstract class NameBuilder> {
+ private Integer name;
+ private Integer snakeCase;
+ private String property;
+ private Integer _123number;
+ protected abstract B self();
+
+ public abstract C build();
+
+ public B name(Integer name) {
+ this.name = name;
+ return self();
+ }
+ public B snakeCase(Integer snakeCase) {
+ this.snakeCase = snakeCase;
+ return self();
+ }
+ public B property(String property) {
+ this.property = property;
+ return self();
+ }
+ public B _123number(Integer _123number) {
+ this._123number = _123number;
+ return self();
+ }
+ }
+}
+
diff --git a/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/NullableClass.java b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/NullableClass.java
new file mode 100644
index 000000000000..19b851074371
--- /dev/null
+++ b/samples/server/petstore/jaxrs-spec-quarkus-mutiny/src/gen/java/org/openapitools/model/NullableClass.java
@@ -0,0 +1,429 @@
+package org.openapitools.model;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.openapitools.jackson.nullable.JsonNullable;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+import javax.validation.Valid;
+
+import java.util.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+
+
+@org.eclipse.microprofile.openapi.annotations.media.Schema(description="")
+@JsonTypeName("NullableClass")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
+public class NullableClass extends HashMap implements Serializable {
+ private Integer integerProp;
+ private BigDecimal numberProp;
+ private Boolean booleanProp;
+ private String stringProp;
+ private LocalDate dateProp;
+ private LocalDateTime datetimeProp;
+ private @Valid List