From 968f32b55e2c9d71a0f7cd25b40f7054e2ade90f Mon Sep 17 00:00:00 2001 From: Sebastien Rosset Date: Sat, 18 Jul 2020 06:56:41 -0700 Subject: [PATCH] [Java][Jersey2] Add JsonTypeName annotation (#6551) * Mustache template should use invokerPackage tag to generate import * add JsonSubTypes annotation to handle scenario when OAS name has special characters * add JsonSubTypes annotation to handle scenario when OAS name has special characters. Add unit test * run sample scripts * fix unit test * run sample scripts * add minimal openapi document to show issue with special characters and discriminators * Add 'isClassnameSanitized' tag * Add 'isClassnameSanitized' tag * Add 'isClassnameSanitized' tag * Add 'isClassnameSanitized' tag * Add 'isClassnameSanitized' tag * Add 'isClassnameSanitized' tag * Add unit tests for unmarshaling of discriminators with special characters * Add unit tests for unmarshaling of discriminators with special characters * use JsonTypeName Co-authored-by: Vikrant Balyan (vvb) Co-authored-by: William Cheng --- .../java-jersey2-special-characters.yaml | 15 + .../openapitools/codegen/CodegenModel.java | 13 + .../languages/AbstractJavaCodegen.java | 1 + .../codegen/languages/JavaClientCodegen.java | 1 + .../Java/typeInfoAnnotation.mustache | 14 +- .../3_0/schema-with-special-characters.yaml | 71 ++ .../model/AdditionalPropertiesAnyType.java | 1 + .../model/AdditionalPropertiesArray.java | 1 + .../model/AdditionalPropertiesBoolean.java | 1 + .../model/AdditionalPropertiesClass.java | 1 + .../model/AdditionalPropertiesInteger.java | 1 + .../model/AdditionalPropertiesNumber.java | 1 + .../model/AdditionalPropertiesObject.java | 1 + .../model/AdditionalPropertiesString.java | 1 + .../org/openapitools/client/model/Animal.java | 1 + .../model/ArrayOfArrayOfNumberOnly.java | 1 + .../client/model/ArrayOfNumberOnly.java | 1 + .../openapitools/client/model/ArrayTest.java | 1 + .../org/openapitools/client/model/BigCat.java | 3 +- .../client/model/BigCatAllOf.java | 1 + .../client/model/Capitalization.java | 1 + .../org/openapitools/client/model/Cat.java | 1 + .../openapitools/client/model/CatAllOf.java | 1 + .../openapitools/client/model/Category.java | 1 + .../openapitools/client/model/ClassModel.java | 1 + .../org/openapitools/client/model/Client.java | 1 + .../org/openapitools/client/model/Dog.java | 3 +- .../openapitools/client/model/DogAllOf.java | 1 + .../openapitools/client/model/EnumArrays.java | 1 + .../openapitools/client/model/EnumTest.java | 1 + .../client/model/FileSchemaTestClass.java | 1 + .../openapitools/client/model/FormatTest.java | 1 + .../client/model/HasOnlyReadOnly.java | 1 + .../openapitools/client/model/MapTest.java | 1 + ...ropertiesAndAdditionalPropertiesClass.java | 1 + .../client/model/Model200Response.java | 1 + .../client/model/ModelApiResponse.java | 1 + .../client/model/ModelReturn.java | 1 + .../org/openapitools/client/model/Name.java | 1 + .../openapitools/client/model/NumberOnly.java | 1 + .../org/openapitools/client/model/Order.java | 1 + .../client/model/OuterComposite.java | 1 + .../org/openapitools/client/model/Pet.java | 1 + .../client/model/ReadOnlyFirst.java | 1 + .../client/model/SpecialModelName.java | 1 + .../org/openapitools/client/model/Tag.java | 1 + .../client/model/TypeHolderDefault.java | 1 + .../client/model/TypeHolderExample.java | 1 + .../org/openapitools/client/model/User.java | 1 + .../openapitools/client/model/XmlItem.java | 1 + .../org/openapitools/client/JSONTest.java | 16 + .../.gitignore | 21 + .../.openapi-generator-ignore | 23 + .../.openapi-generator/FILES | 42 + .../.openapi-generator/VERSION | 1 + .../.travis.yml | 22 + .../README.md | 133 ++ .../api/openapi.yaml | 53 + .../build.gradle | 122 ++ .../build.sbt | 24 + .../docs/ChildSchema.md | 13 + .../docs/ChildSchemaAllOf.md | 12 + .../docs/DefaultApi.md | 72 ++ .../docs/MySchemaNameCharacters.md | 13 + .../docs/MySchemaNameCharactersAllOf.md | 12 + .../docs/Parent.md | 12 + .../git_push.sh | 58 + .../gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 99814 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + .../jersey2-java8-special-characters/gradlew | 183 +++ .../gradlew.bat | 100 ++ .../jersey2-java8-special-characters/pom.xml | 302 +++++ .../settings.gradle | 1 + .../src/main/AndroidManifest.xml | 3 + .../org/openapitools/client/ApiClient.java | 1086 +++++++++++++++++ .../org/openapitools/client/ApiException.java | 94 ++ .../org/openapitools/client/ApiResponse.java | 74 ++ .../openapitools/client/Configuration.java | 39 + .../java/org/openapitools/client/JSON.java | 247 ++++ .../java/org/openapitools/client/Pair.java | 61 + .../client/RFC3339DateFormat.java | 32 + .../client/ServerConfiguration.java | 58 + .../openapitools/client/ServerVariable.java | 23 + .../org/openapitools/client/StringUtil.java | 83 ++ .../openapitools/client/api/DefaultApi.java | 110 ++ .../openapitools/client/auth/ApiKeyAuth.java | 79 ++ .../client/auth/Authentication.java | 33 + .../client/auth/HttpBasicAuth.java | 56 + .../client/auth/HttpBearerAuth.java | 62 + .../client/model/AbstractOpenApiSchema.java | 149 +++ .../client/model/ChildSchema.java | 167 +++ .../client/model/ChildSchemaAllOf.java | 109 ++ .../client/model/MySchemaNameCharacters.java | 168 +++ .../model/MySchemaNameCharactersAllOf.java | 109 ++ .../org/openapitools/client/model/Parent.java | 127 ++ .../client/api/DefaultApiTest.java | 51 + .../client/model/ChildSchemaAllOfTest.java | 49 + .../client/model/ChildSchemaTest.java | 70 ++ .../MySchemaNameCharactersAllOfTest.java | 49 + .../model/MySchemaNameCharactersTest.java | 70 ++ .../openapitools/client/model/ParentTest.java | 51 + .../model/AdditionalPropertiesClass.java | 1 + .../org/openapitools/client/model/Animal.java | 1 + .../org/openapitools/client/model/Apple.java | 1 + .../openapitools/client/model/AppleReq.java | 1 + .../model/ArrayOfArrayOfNumberOnly.java | 1 + .../client/model/ArrayOfNumberOnly.java | 1 + .../openapitools/client/model/ArrayTest.java | 1 + .../org/openapitools/client/model/Banana.java | 1 + .../openapitools/client/model/BananaReq.java | 1 + .../openapitools/client/model/BasquePig.java | 1 + .../client/model/Capitalization.java | 1 + .../org/openapitools/client/model/Cat.java | 3 +- .../openapitools/client/model/CatAllOf.java | 1 + .../openapitools/client/model/Category.java | 1 + .../openapitools/client/model/ChildCat.java | 3 +- .../client/model/ChildCatAllOf.java | 1 + .../openapitools/client/model/ClassModel.java | 1 + .../org/openapitools/client/model/Client.java | 1 + .../client/model/ComplexQuadrilateral.java | 1 + .../openapitools/client/model/DanishPig.java | 1 + .../org/openapitools/client/model/Dog.java | 3 +- .../openapitools/client/model/DogAllOf.java | 1 + .../openapitools/client/model/Drawing.java | 1 + .../openapitools/client/model/EnumArrays.java | 1 + .../openapitools/client/model/EnumTest.java | 1 + .../client/model/EquilateralTriangle.java | 1 + .../client/model/FileSchemaTestClass.java | 1 + .../org/openapitools/client/model/Foo.java | 1 + .../openapitools/client/model/FormatTest.java | 1 + .../org/openapitools/client/model/Fruit.java | 1 + .../openapitools/client/model/FruitReq.java | 1 + .../openapitools/client/model/GmFruit.java | 1 + .../client/model/GrandparentAnimal.java | 1 + .../client/model/HasOnlyReadOnly.java | 1 + .../client/model/HealthCheckResult.java | 1 + .../client/model/InlineObject.java | 1 + .../client/model/InlineObject1.java | 1 + .../client/model/InlineObject2.java | 1 + .../client/model/InlineObject3.java | 1 + .../client/model/InlineObject4.java | 1 + .../client/model/InlineObject5.java | 1 + .../client/model/InlineResponseDefault.java | 1 + .../client/model/IsoscelesTriangle.java | 1 + .../org/openapitools/client/model/Mammal.java | 1 + .../openapitools/client/model/MapTest.java | 1 + ...ropertiesAndAdditionalPropertiesClass.java | 1 + .../client/model/Model200Response.java | 1 + .../client/model/ModelApiResponse.java | 1 + .../client/model/ModelReturn.java | 1 + .../org/openapitools/client/model/Name.java | 1 + .../client/model/NullableClass.java | 1 + .../client/model/NullableShape.java | 1 + .../openapitools/client/model/NumberOnly.java | 1 + .../org/openapitools/client/model/Order.java | 1 + .../client/model/OuterComposite.java | 1 + .../openapitools/client/model/ParentPet.java | 1 + .../org/openapitools/client/model/Pet.java | 1 + .../org/openapitools/client/model/Pig.java | 1 + .../client/model/Quadrilateral.java | 1 + .../client/model/QuadrilateralInterface.java | 1 + .../client/model/ReadOnlyFirst.java | 1 + .../client/model/ScaleneTriangle.java | 1 + .../org/openapitools/client/model/Shape.java | 1 + .../client/model/ShapeInterface.java | 1 + .../client/model/ShapeOrNull.java | 1 + .../client/model/SimpleQuadrilateral.java | 1 + .../client/model/SpecialModelName.java | 1 + .../org/openapitools/client/model/Tag.java | 1 + .../openapitools/client/model/Triangle.java | 1 + .../client/model/TriangleInterface.java | 1 + .../org/openapitools/client/model/User.java | 1 + .../org/openapitools/client/model/Whale.java | 1 + .../org/openapitools/client/model/Zebra.java | 1 + .../org/openapitools/client/JSONTest.java | 16 + 176 files changed, 4796 insertions(+), 13 deletions(-) create mode 100644 bin/configs/java-jersey2-special-characters.yaml create mode 100644 modules/openapi-generator/src/test/resources/3_0/schema-with-special-characters.yaml create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.gitignore create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator-ignore create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/FILES create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/VERSION create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.travis.yml create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/README.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/api/openapi.yaml create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.gradle create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.sbt create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchema.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchemaAllOf.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/DefaultApi.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharacters.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharactersAllOf.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/Parent.md create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/git_push.sh create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle.properties create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.jar create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.properties create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew.bat create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/pom.xml create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/settings.gradle create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/AndroidManifest.xml create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiException.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiResponse.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Configuration.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/JSON.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Pair.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/RFC3339DateFormat.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerConfiguration.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerVariable.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/StringUtil.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/api/DefaultApi.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/Authentication.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchemaAllOf.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharactersAllOf.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/Parent.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/api/DefaultApiTest.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaAllOfTest.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaTest.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersAllOfTest.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersTest.java create mode 100644 samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ParentTest.java diff --git a/bin/configs/java-jersey2-special-characters.yaml b/bin/configs/java-jersey2-special-characters.yaml new file mode 100644 index 00000000000..c73b70cc36c --- /dev/null +++ b/bin/configs/java-jersey2-special-characters.yaml @@ -0,0 +1,15 @@ +generatorName: java +outputDir: samples/openapi3/client/petstore/java/jersey2-java8-special-characters +library: jersey2 +inputSpec: modules/openapi-generator/src/test/resources/3_0/schema-with-special-characters.yaml +templateDir: modules/openapi-generator/src/main/resources/Java +additionalProperties: + artifactId: petstore-openapi3-jersey2-java8-special-characters + hideGenerationTimestamp: true + serverPort: "8082" + dateLibrary: java8 + useOneOfDiscriminatorLookup: true + disallowAdditionalPropertiesIfNotPresent: false +systemProperties: + skipValidateSpec: "false" + diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java index 1617a10e13d..2d34b0c581d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java @@ -49,9 +49,11 @@ public class CodegenModel implements IJsonSchemaValidationProperties { public Set oneOf = new TreeSet(); public Set allOf = new TreeSet(); + // The schema name as written in the OpenAPI document. public String name; // The language-specific name of the class that implements this schema. // The name of the class is derived from the OpenAPI schema name with formatting rules applied. + // The classname is derived from the OpenAPI schema name, with sanitization and escaping rules applied. public String classname; // The value of the 'title' attribute in the OpenAPI document. public String title; @@ -220,6 +222,17 @@ public class CodegenModel implements IJsonSchemaValidationProperties { this.classVarName = classVarName; } + /** + * Return true if the classname property is sanitized, false if it is the same as the OpenAPI schema name. + * The OpenAPI schema name may be any valid JSON schema name, including non-ASCII characters. + * The name of the class may have to be sanitized with character escaping. + * + * @return true if the classname property is sanitized + */ + public boolean getIsClassnameSanitized() { + return !classname.equals(name); + } + public String getClassname() { return classname; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index 9430b4e7f4b..49823e19f8f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -469,6 +469,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code importMapping.put("JsonProperty", "com.fasterxml.jackson.annotation.JsonProperty"); importMapping.put("JsonSubTypes", "com.fasterxml.jackson.annotation.JsonSubTypes"); importMapping.put("JsonTypeInfo", "com.fasterxml.jackson.annotation.JsonTypeInfo"); + importMapping.put("JsonTypeName", "com.fasterxml.jackson.annotation.JsonTypeName"); importMapping.put("JsonCreator", "com.fasterxml.jackson.annotation.JsonCreator"); importMapping.put("JsonValue", "com.fasterxml.jackson.annotation.JsonValue"); importMapping.put("JsonIgnore", "com.fasterxml.jackson.annotation.JsonIgnore"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java index 47d80cf10bb..fa818567284 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java @@ -680,6 +680,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen model.imports.add("JsonProperty"); model.imports.add("JsonValue"); model.imports.add("JsonInclude"); + model.imports.add("JsonTypeName"); } if (additionalProperties.containsKey(SERIALIZATION_LIBRARY_GSON)) { model.imports.add("SerializedName"); diff --git a/modules/openapi-generator/src/main/resources/Java/typeInfoAnnotation.mustache b/modules/openapi-generator/src/main/resources/Java/typeInfoAnnotation.mustache index 81c2ba05f90..63eb42ea500 100644 --- a/modules/openapi-generator/src/main/resources/Java/typeInfoAnnotation.mustache +++ b/modules/openapi-generator/src/main/resources/Java/typeInfoAnnotation.mustache @@ -1,8 +1,16 @@ {{#jackson}} @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true) +{{#discriminator.mappedModels}} +{{#-first}} @JsonSubTypes({ - {{#discriminator.mappedModels}} +{{/-first}} @JsonSubTypes.Type(value = {{modelName}}.class, name = "{{^vendorExtensions.x-discriminator-value}}{{mappingName}}{{/vendorExtensions.x-discriminator-value}}{{#vendorExtensions.x-discriminator-value}}{{{vendorExtensions.x-discriminator-value}}}{{/vendorExtensions.x-discriminator-value}}"), - {{/discriminator.mappedModels}} -}){{/jackson}} +{{#-last}} +}) +{{/-last}} +{{/discriminator.mappedModels}} +{{#isClassnameSanitized}} +@JsonTypeName("{{name}}") +{{/isClassnameSanitized}} +{{/jackson}} diff --git a/modules/openapi-generator/src/test/resources/3_0/schema-with-special-characters.yaml b/modules/openapi-generator/src/test/resources/3_0/schema-with-special-characters.yaml new file mode 100644 index 00000000000..19edd9a510d --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/schema-with-special-characters.yaml @@ -0,0 +1,71 @@ +openapi: 3.0.3 +info: + description: test + version: 1.0.0 + title: test +paths: + /test: + post: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MySchemaName._-Characters' + responses: + '200': + description: the response + content: + application/json: + schema: + $ref: '#/components/schemas/MySchemaName._-Characters' +components: + schemas: + Parent: + properties: + objectType: + type: string + discriminator: + propertyName: objectType + ChildSchema: + description: A schema that does not have any special character. + allOf: + - $ref: '#/components/schemas/Parent' + - type: object + properties: + prop1: + type: string + # Note: the name below with non-ASCII characters is a valid JSON schema name, + # however currently OpenAPI generator does not allow special characters beyond [.-_] + # + # The set of allowed characters for OpenAPI schema names is specified in RFC 8259 + # at https://tools.ietf.org/html/rfc8259. + # The OpenAPI schema uses the JSON schema specification, which references RFC 8259. + # A string is a sequence of zero or more Unicode characters [UNICODE]. + # Note that this citation references the latest version of Unicode + # rather than a specific release. Any character may be escaped. + # MySchemaNameWithUnusual#$12.3!@#%๐Ÿ‡๐Ÿ…๐Ÿ˜€๐Ÿ„๐Ÿพโ€โ™‚๏ธCharacters: + MySchemaName._-Characters: + description: + A schema name that has letters, numbers, punctuation and non-ASCII characters. + The sanitization rules should make it possible to generate a language-specific + classname with allowed characters in that programming language. + allOf: + - $ref: '#/components/schemas/Parent' + - type: object + properties: + prop2: + type: string + # Below is a schema with the same name, except special characters have been removed. + # This causes a codegen issue because the generated code will have exactly the same class name + # as the above 'MySchemaName._-Characters'. + # Hence the schema is commented out for now. + # + #MySchemaNameCharacters: + # description: + # A schema with same name as above, without the special characters. + # allOf: + # - $ref: '#/components/schemas/Parent' + # - type: object + # properties: + # prop2: + # type: string diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java index da926c598b0..6f666f892fc 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java index a154f367ec5..f0af84741d7 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java index c2669176254..cc3b5e8ed99 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java index a057a169cfd..028ba7f486d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java index caf7134fcf8..06faf0d59df 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesInteger.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java index a213d51e413..a5c1d503a3a 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesNumber.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java index 83a6c2cd55f..498a38d7423 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesObject.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java index 5a52da796a5..e3b1b38dcc6 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesString.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java index a53105de326..e48f24f96ee 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java index ae6c3866e08..df98f6d9a00 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java index 5197dda9bc4..f84a1042728 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java index 0d125019fe6..a6160fc1d7d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java index ebe7aa71ecb..421d3e43dde 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCat.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -39,8 +40,6 @@ import org.openapitools.client.JSON; }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "className", visible = true) -@JsonSubTypes({ -}) public class BigCat extends Cat { /** diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCatAllOf.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCatAllOf.java index 704cc5dd588..b9a0fceee82 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCatAllOf.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BigCatAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java index c87ca1ea948..3c578c6c08f 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java index 23331093f20..702684c7f0f 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java index f3060f5d0e3..05cf8311696 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java index de082b6e900..6dc51b7de42 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java index ebaa8336783..b826f450f35 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java index 1bc59615dae..5b04df57894 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java index 8815d87acaa..2622e9d17e3 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -39,8 +40,6 @@ import org.openapitools.client.JSON; }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "className", visible = true) -@JsonSubTypes({ -}) public class Dog extends Animal { public static final String JSON_PROPERTY_BREED = "breed"; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java index c8e362e0e9d..80f35628c1d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java index 7916b8a9cd7..a3b60565d4a 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java index 9449a2c904f..ac4bc88f908 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java index 4680680d6d7..a27fe8ae92f 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java index 30eb6a65fde..65299285357 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java index b802d5acf61..66a488b96cd 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java index d2f49b5bb63..37b6718ed9d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java index 3d3037cfb68..06a59d6d57d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java index 7775d5835ca..555aafad610 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java index da4182452b5..cb1b831fb06 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java index ba4143056b7..48c6d79d161 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java index 0dd87332e67..57e7c94cfba 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java index 751777ec56f..fe4cc261f6d 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java index 5c780beef5d..0d35a85b605 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java index 93630fda594..a41bcf1bd49 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java index 8df16028a8e..78d30890ed3 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java index ba58c8cb29f..1f2bbfaaa69 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java index a69740babcd..53be31cf69b 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java index 78b29486f2e..0c61cd71e54 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderDefault.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderDefault.java index 7376f175249..d6da81b399e 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderDefault.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderDefault.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderExample.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderExample.java index 2c90730bca2..60868e16177 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderExample.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TypeHolderExample.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java index 0e4ed3e5662..856a992460a 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java index ce110f1144c..796901ae52c 100644 --- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java +++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/XmlItem.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java index dda1ef9c1ef..2ce38ae2f69 100644 --- a/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java +++ b/samples/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java @@ -1,6 +1,7 @@ package org.openapitools.client; import org.openapitools.client.model.Order; +import org.openapitools.client.model.SpecialModelName; import java.lang.Exception; import java.util.Date; @@ -71,4 +72,19 @@ public class JSONTest { Order o = json.getContext(null).readValue(str, Order.class); assertEquals(dateStr, dateFormat.format(o.getShipDate())); } + + /** + * Validate a schema with special characters can be deserialized. + */ + @Test + public void testSchemaWithSpecialCharacters() throws Exception { + String str = "{ \"$special[property.name]\": 12345 }"; + // The name of the OpenAPI schema is '_special_model.name_'. + // After sanitization rules are applied the name of the class is 'SpecialModelName'. + // The class deserialization should be successful because + // of the @JsonSubTypes annotation. + SpecialModelName o = json.getContext(null).readValue(str, SpecialModelName.class); + assertNotNull(o); + assertEquals((long)12345, (long)o.get$SpecialPropertyName()); + } } \ No newline at end of file diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.gitignore b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.gitignore new file mode 100644 index 00000000000..a530464afa1 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.gitignore @@ -0,0 +1,21 @@ +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# exclude jar for gradle wrapper +!gradle/wrapper/*.jar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# build files +**/target +target +.gradle +build diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator-ignore b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator-ignore new file mode 100644 index 00000000000..7484ee590a3 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.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/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/FILES b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/FILES new file mode 100644 index 00000000000..e1fd40df0ca --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/FILES @@ -0,0 +1,42 @@ +.gitignore +.travis.yml +README.md +api/openapi.yaml +build.gradle +build.sbt +docs/ChildSchema.md +docs/ChildSchemaAllOf.md +docs/DefaultApi.md +docs/MySchemaNameCharacters.md +docs/MySchemaNameCharactersAllOf.md +docs/Parent.md +git_push.sh +gradle.properties +gradle/wrapper/gradle-wrapper.jar +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat +pom.xml +settings.gradle +src/main/AndroidManifest.xml +src/main/java/org/openapitools/client/ApiClient.java +src/main/java/org/openapitools/client/ApiException.java +src/main/java/org/openapitools/client/ApiResponse.java +src/main/java/org/openapitools/client/Configuration.java +src/main/java/org/openapitools/client/JSON.java +src/main/java/org/openapitools/client/Pair.java +src/main/java/org/openapitools/client/RFC3339DateFormat.java +src/main/java/org/openapitools/client/ServerConfiguration.java +src/main/java/org/openapitools/client/ServerVariable.java +src/main/java/org/openapitools/client/StringUtil.java +src/main/java/org/openapitools/client/api/DefaultApi.java +src/main/java/org/openapitools/client/auth/ApiKeyAuth.java +src/main/java/org/openapitools/client/auth/Authentication.java +src/main/java/org/openapitools/client/auth/HttpBasicAuth.java +src/main/java/org/openapitools/client/auth/HttpBearerAuth.java +src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java +src/main/java/org/openapitools/client/model/ChildSchema.java +src/main/java/org/openapitools/client/model/ChildSchemaAllOf.java +src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java +src/main/java/org/openapitools/client/model/MySchemaNameCharactersAllOf.java +src/main/java/org/openapitools/client/model/Parent.java diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/VERSION b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/VERSION new file mode 100644 index 00000000000..d99e7162d01 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.openapi-generator/VERSION @@ -0,0 +1 @@ +5.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.travis.yml b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.travis.yml new file mode 100644 index 00000000000..e3bdf2af1be --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/.travis.yml @@ -0,0 +1,22 @@ +# +# Generated by OpenAPI Generator: https://openapi-generator.tech +# +# Ref: https://docs.travis-ci.com/user/languages/java/ +# +language: java +jdk: + - openjdk12 + - openjdk11 + - openjdk10 + - openjdk9 + - openjdk8 +before_install: + # ensure gradlew has proper permission + - chmod a+x ./gradlew +script: + # test using maven + #- mvn test + # test using gradle + - gradle test + # test using sbt + # - sbt test diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/README.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/README.md new file mode 100644 index 00000000000..d0c38901254 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/README.md @@ -0,0 +1,133 @@ +# petstore-openapi3-jersey2-java8-special-characters + +test + +- API version: 1.0.0 + +test + + +*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)* + +## Requirements + +Building the API client library requires: + +1. Java 1.8+ +2. Maven/Gradle + +## Installation + +To install the API client library to your local Maven repository, simply execute: + +```shell +mvn clean install +``` + +To deploy it to a remote Maven repository instead, configure the settings of the repository and execute: + +```shell +mvn clean deploy +``` + +Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information. + +### Maven users + +Add this dependency to your project's POM: + +```xml + + org.openapitools + petstore-openapi3-jersey2-java8-special-characters + 1.0.0 + compile + +``` + +### Gradle users + +Add this dependency to your project's build file: + +```groovy +compile "org.openapitools:petstore-openapi3-jersey2-java8-special-characters:1.0.0" +``` + +### Others + +At first generate the JAR by executing: + +```shell +mvn clean package +``` + +Then manually install the following JARs: + +- `target/petstore-openapi3-jersey2-java8-special-characters-1.0.0.jar` +- `target/lib/*.jar` + +## Getting Started + +Please follow the [installation](#installation) instruction and execute the following Java code: + +```java + +import org.openapitools.client.*; +import org.openapitools.client.auth.*; +import org.openapitools.client.model.*; +import org.openapitools.client.api.DefaultApi; + +public class DefaultApiExample { + + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + MySchemaNameCharacters mySchemaNameCharacters = new MySchemaNameCharacters(); // MySchemaNameCharacters | + try { + MySchemaNameCharacters result = apiInstance.testPost(mySchemaNameCharacters); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#testPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} + +``` + +## Documentation for API Endpoints + +All URIs are relative to *http://localhost* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**testPost**](docs/DefaultApi.md#testPost) | **POST** /test | + + +## Documentation for Models + + - [ChildSchema](docs/ChildSchema.md) + - [ChildSchemaAllOf](docs/ChildSchemaAllOf.md) + - [MySchemaNameCharacters](docs/MySchemaNameCharacters.md) + - [MySchemaNameCharactersAllOf](docs/MySchemaNameCharactersAllOf.md) + - [Parent](docs/Parent.md) + + +## Documentation for Authorization + +All endpoints do not require authorization. +Authentication schemes defined for the API: + +## Recommendation + +It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues. + +## Author + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/api/openapi.yaml b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/api/openapi.yaml new file mode 100644 index 00000000000..44c6a2aa3c4 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/api/openapi.yaml @@ -0,0 +1,53 @@ +openapi: 3.0.3 +info: + description: test + title: test + version: 1.0.0 +servers: +- url: / +paths: + /test: + post: + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MySchemaName._-Characters' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MySchemaName._-Characters' + description: the response + x-contentType: application/json + x-accepts: application/json +components: + schemas: + Parent: + discriminator: + propertyName: objectType + properties: + objectType: + type: string + ChildSchema: + allOf: + - $ref: '#/components/schemas/Parent' + - $ref: '#/components/schemas/ChildSchema_allOf' + description: A schema that does not have any special character. + MySchemaName._-Characters: + allOf: + - $ref: '#/components/schemas/Parent' + - $ref: '#/components/schemas/MySchemaName___Characters_allOf' + description: A schema name that has letters, numbers, punctuation and non-ASCII + characters. The sanitization rules should make it possible to generate a language-specific + classname with allowed characters in that programming language. + ChildSchema_allOf: + properties: + prop1: + type: string + MySchemaName___Characters_allOf: + properties: + prop2: + type: string + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.gradle b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.gradle new file mode 100644 index 00000000000..5fddd46d9be --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.gradle @@ -0,0 +1,122 @@ +apply plugin: 'idea' +apply plugin: 'eclipse' + +group = 'org.openapitools' +version = '1.0.0' + +buildscript { + repositories { + maven { url "https://repo1.maven.org/maven2" } + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.3.+' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + } +} + +repositories { + jcenter() +} + + +if(hasProperty('target') && target == 'android') { + + apply plugin: 'com.android.library' + apply plugin: 'com.github.dcendents.android-maven' + + android { + compileSdkVersion 25 + buildToolsVersion '25.0.2' + defaultConfig { + minSdkVersion 14 + targetSdkVersion 25 + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + // Rename the aar correctly + libraryVariants.all { variant -> + variant.outputs.each { output -> + def outputFile = output.outputFile + if (outputFile != null && outputFile.name.endsWith('.aar')) { + def fileName = "${project.name}-${variant.baseName}-${version}.aar" + output.outputFile = new File(outputFile.parent, fileName) + } + } + } + + dependencies { + provided 'javax.annotation:jsr250-api:1.0' + } + } + + afterEvaluate { + android.libraryVariants.all { variant -> + def task = project.tasks.create "jar${variant.name.capitalize()}", Jar + task.description = "Create jar artifact for ${variant.name}" + task.dependsOn variant.javaCompile + task.from variant.javaCompile.destinationDir + task.destinationDir = project.file("${project.buildDir}/outputs/jar") + task.archiveName = "${project.name}-${variant.baseName}-${version}.jar" + artifacts.add('archives', task); + } + } + + task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' + } + + artifacts { + archives sourcesJar + } + +} else { + + apply plugin: 'java' + apply plugin: 'maven' + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + + install { + repositories.mavenInstaller { + pom.artifactId = 'petstore-openapi3-jersey2-java8-special-characters' + } + } + + task execute(type:JavaExec) { + main = System.getProperty('mainClass') + classpath = sourceSets.main.runtimeClasspath + } +} + +ext { + swagger_annotations_version = "1.5.22" + jackson_version = "2.10.3" + jackson_databind_version = "2.10.4" + jackson_databind_nullable_version = "0.2.1" + jersey_version = "2.27" + junit_version = "4.13" +} + +dependencies { + compile "io.swagger:swagger-annotations:$swagger_annotations_version" + compile "com.google.code.findbugs:jsr305:3.0.2" + compile "org.glassfish.jersey.core:jersey-client:$jersey_version" + compile "org.glassfish.jersey.media:jersey-media-multipart:$jersey_version" + compile "org.glassfish.jersey.media:jersey-media-json-jackson:$jersey_version" + compile "com.fasterxml.jackson.core:jackson-core:$jackson_version" + compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version" + compile "com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version" + compile "org.openapitools:jackson-databind-nullable:$jackson_databind_nullable_version" + compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version" + compile 'javax.annotation:javax.annotation-api:1.3.2' + testCompile "junit:junit:$junit_version" +} + +javadoc { + options.tags = [ "http.response.details:a:Http Response Details" ] +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.sbt b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.sbt new file mode 100644 index 00000000000..c0c6806cf3a --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/build.sbt @@ -0,0 +1,24 @@ +lazy val root = (project in file(".")). + settings( + organization := "org.openapitools", + name := "petstore-openapi3-jersey2-java8-special-characters", + version := "1.0.0", + scalaVersion := "2.11.4", + scalacOptions ++= Seq("-feature"), + javacOptions in compile ++= Seq("-Xlint:deprecation"), + publishArtifact in (Compile, packageDoc) := false, + resolvers += Resolver.mavenLocal, + libraryDependencies ++= Seq( + "io.swagger" % "swagger-annotations" % "1.5.22", + "org.glassfish.jersey.core" % "jersey-client" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-multipart" % "2.25.1", + "org.glassfish.jersey.media" % "jersey-media-json-jackson" % "2.25.1", + "com.fasterxml.jackson.core" % "jackson-core" % "2.10.4" % "compile", + "com.fasterxml.jackson.core" % "jackson-annotations" % "2.10.4" % "compile", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.4" % "compile", + "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % "2.9.10" % "compile", + "javax.annotation" % "javax.annotation-api" % "1.3.2" % "compile", + "junit" % "junit" % "4.13" % "test", + "com.novocode" % "junit-interface" % "0.10" % "test" + ) + ) diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchema.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchema.md new file mode 100644 index 00000000000..94bc205bd0e --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchema.md @@ -0,0 +1,13 @@ + + +# ChildSchema + +A schema that does not have any special character. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prop1** | **String** | | [optional] + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchemaAllOf.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchemaAllOf.md new file mode 100644 index 00000000000..8cbdc808bd8 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/ChildSchemaAllOf.md @@ -0,0 +1,12 @@ + + +# ChildSchemaAllOf + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prop1** | **String** | | [optional] + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/DefaultApi.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/DefaultApi.md new file mode 100644 index 00000000000..1e954678bbd --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/DefaultApi.md @@ -0,0 +1,72 @@ +# DefaultApi + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**testPost**](DefaultApi.md#testPost) | **POST** /test | + + + +## testPost + +> MySchemaNameCharacters testPost(mySchemaNameCharacters) + + + +### Example + +```java +// Import classes: +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiException; +import org.openapitools.client.Configuration; +import org.openapitools.client.model.*; +import org.openapitools.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + MySchemaNameCharacters mySchemaNameCharacters = new MySchemaNameCharacters(); // MySchemaNameCharacters | + try { + MySchemaNameCharacters result = apiInstance.testPost(mySchemaNameCharacters); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#testPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **mySchemaNameCharacters** | [**MySchemaNameCharacters**](MySchemaNameCharacters.md)| | [optional] + +### Return type + +[**MySchemaNameCharacters**](MySchemaNameCharacters.md) + +### Authorization + +No authorization required + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | the response | - | + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharacters.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharacters.md new file mode 100644 index 00000000000..c62cafef27d --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharacters.md @@ -0,0 +1,13 @@ + + +# MySchemaNameCharacters + +A schema name that has letters, numbers, punctuation and non-ASCII characters. The sanitization rules should make it possible to generate a language-specific classname with allowed characters in that programming language. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prop2** | **String** | | [optional] + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharactersAllOf.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharactersAllOf.md new file mode 100644 index 00000000000..a5d3c39b435 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/MySchemaNameCharactersAllOf.md @@ -0,0 +1,12 @@ + + +# MySchemaNameCharactersAllOf + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prop2** | **String** | | [optional] + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/Parent.md b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/Parent.md new file mode 100644 index 00000000000..2a71a187a1c --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/docs/Parent.md @@ -0,0 +1,12 @@ + + +# Parent + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**objectType** | **String** | | [optional] + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/git_push.sh b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/git_push.sh new file mode 100644 index 00000000000..ced3be2b0c7 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/git_push.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" "gitlab.com" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 +git_host=$4 + +if [ "$git_host" = "" ]; then + git_host="github.com" + echo "[INFO] No command line input provided. Set \$git_host to $git_host" +fi + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle.properties b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle.properties new file mode 100644 index 00000000000..05644f0754a --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle.properties @@ -0,0 +1,2 @@ +# Uncomment to build for Android +#target = android \ No newline at end of file diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.jar b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e35d600ab118c93d7e23084511e366fb638b1225 GIT binary patch literal 99814 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 literal 0 HcmV?d00001 diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.properties b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..94920145f34 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew new file mode 100644 index 00000000000..2fe81a7d95e --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew @@ -0,0 +1,183 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew.bat b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew.bat new file mode 100644 index 00000000000..9618d8d9607 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/gradlew.bat @@ -0,0 +1,100 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/pom.xml b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/pom.xml new file mode 100644 index 00000000000..cf079d9b9cc --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/pom.xml @@ -0,0 +1,302 @@ + + 4.0.0 + org.openapitools + petstore-openapi3-jersey2-java8-special-characters + jar + petstore-openapi3-jersey2-java8-special-characters + 1.0.0 + https://github.com/openapitools/openapi-generator + OpenAPI Java + + scm:git:git@github.com:openapitools/openapi-generator.git + scm:git:git@github.com:openapitools/openapi-generator.git + https://github.com/openapitools/openapi-generator + + + + + Unlicense + http://unlicense.org + repo + + + + + + OpenAPI-Generator Contributors + team@openapitools.org + OpenAPITools.org + http://openapitools.org + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M1 + + + enforce-maven + + enforce + + + + + 2.2.0 + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M4 + + + + loggerPath + conf/log4j.properties + + + -Xms512m -Xmx1500m + methods + 10 + false + + + + maven-dependency-plugin + + + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.6 + + + + jar + test-jar + + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.10 + + + add_sources + generate-sources + + add-source + + + + src/main/java + + + + + add_test_sources + generate-test-sources + + add-test-source + + + + src/test/java + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + true + 128m + 512m + + -Xlint:all + -J-Xss4m + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + + attach-javadocs + + jar + + + + + none + 1.8 + + + http.response.details + a + Http Response Details: + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + + + + + sign-artifacts + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + + + + + + + io.swagger + swagger-annotations + ${swagger-annotations-version} + + + + + com.google.code.findbugs + jsr305 + 3.0.2 + + + + + org.glassfish.jersey.core + jersey-client + ${jersey-version} + + + org.glassfish.jersey.inject + jersey-hk2 + ${jersey-version} + + + org.glassfish.jersey.media + jersey-media-multipart + ${jersey-version} + + + org.glassfish.jersey.media + jersey-media-json-jackson + ${jersey-version} + + + + + com.fasterxml.jackson.core + jackson-core + ${jackson-version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson-version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson-databind-version} + + + org.openapitools + jackson-databind-nullable + ${jackson-databind-nullable-version} + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson-version} + + + javax.annotation + javax.annotation-api + ${javax-annotation-version} + provided + + + + junit + junit + ${junit-version} + test + + + + UTF-8 + 1.6.1 + 2.30.1 + 2.10.4 + 2.10.4 + 0.2.1 + 1.3.2 + 4.13 + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/settings.gradle b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/settings.gradle new file mode 100644 index 00000000000..322be050f70 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/settings.gradle @@ -0,0 +1 @@ +rootProject.name = "petstore-openapi3-jersey2-java8-special-characters" \ No newline at end of file diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/AndroidManifest.xml b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/AndroidManifest.xml new file mode 100644 index 00000000000..54fbcb3da1e --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java new file mode 100644 index 00000000000..ed31d4f37de --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java @@ -0,0 +1,1086 @@ +package org.openapitools.client; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.Form; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; +import org.glassfish.jersey.client.HttpUrlConnectorProvider; +import org.glassfish.jersey.jackson.JacksonFeature; +import org.glassfish.jersey.media.multipart.FormDataBodyPart; +import org.glassfish.jersey.media.multipart.FormDataContentDisposition; +import org.glassfish.jersey.media.multipart.MultiPart; +import org.glassfish.jersey.media.multipart.MultiPartFeature; + +import java.io.IOException; +import java.io.InputStream; + +import java.net.URI; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.security.cert.X509Certificate; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import org.glassfish.jersey.logging.LoggingFeature; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.Map.Entry; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Date; + +import java.net.URLEncoder; + +import java.io.File; +import java.io.UnsupportedEncodingException; + +import java.text.DateFormat; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.openapitools.client.auth.Authentication; +import org.openapitools.client.auth.HttpBasicAuth; +import org.openapitools.client.auth.HttpBearerAuth; +import org.openapitools.client.auth.ApiKeyAuth; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ApiClient { + protected Map defaultHeaderMap = new HashMap(); + protected Map defaultCookieMap = new HashMap(); + protected String basePath = "http://localhost"; + protected String userAgent; + private static final Logger log = Logger.getLogger(ApiClient.class.getName()); + + protected List servers = new ArrayList(Arrays.asList( + new ServerConfiguration( + "/", + "No description provided", + new HashMap() + ) + )); + protected Integer serverIndex = 0; + protected Map serverVariables = null; + protected Map> operationServers = new HashMap>() {{ + }}; + protected Map operationServerIndex = new HashMap(); + protected Map> operationServerVariables = new HashMap>(); + protected boolean debugging = false; + protected int connectionTimeout = 0; + private int readTimeout = 0; + + protected Client httpClient; + protected JSON json; + protected String tempFolderPath = null; + + protected Map authentications; + protected Map authenticationLookup; + + protected DateFormat dateFormat; + + /** + * Constructs a new ApiClient with default parameters. + */ + public ApiClient() { + this(null); + } + + /** + * Constructs a new ApiClient with the specified authentication parameters. + * + * @param authMap A hash map containing authentication parameters. + */ + public ApiClient(Map authMap) { + json = new JSON(); + httpClient = buildHttpClient(debugging); + + this.dateFormat = new RFC3339DateFormat(); + + // Set default User-Agent. + setUserAgent("OpenAPI-Generator/1.0.0/java"); + + // Setup authentications (key: authentication name, value: authentication). + authentications = new HashMap(); + Authentication auth = null; + // Prevent the authentications from being modified. + authentications = Collections.unmodifiableMap(authentications); + + // Setup authentication lookup (key: authentication alias, value: authentication name) + authenticationLookup = new HashMap(); + } + + /** + * Gets the JSON instance to do JSON serialization and deserialization. + * + * @return JSON + */ + public JSON getJSON() { + return json; + } + + public Client getHttpClient() { + return httpClient; + } + + public ApiClient setHttpClient(Client httpClient) { + this.httpClient = httpClient; + return this; + } + + /** + * Returns the base URL to the location where the OpenAPI document is being served. + * + * @return The base URL to the target host. + */ + public String getBasePath() { + return basePath; + } + + /** + * Sets the base URL to the location where the OpenAPI document is being served. + * + * @param basePath The base URL to the target host. + */ + public ApiClient setBasePath(String basePath) { + this.basePath = basePath; + return this; + } + + public List getServers() { + return servers; + } + + public ApiClient setServers(List servers) { + this.servers = servers; + updateBasePath(); + return this; + } + + public Integer getServerIndex() { + return serverIndex; + } + + public ApiClient setServerIndex(Integer serverIndex) { + this.serverIndex = serverIndex; + updateBasePath(); + return this; + } + + public Map getServerVariables() { + return serverVariables; + } + + public ApiClient setServerVariables(Map serverVariables) { + this.serverVariables = serverVariables; + updateBasePath(); + return this; + } + + private void updateBasePath() { + if (serverIndex != null) { + setBasePath(servers.get(serverIndex).URL(serverVariables)); + } + } + + /** + * Get authentications (key: authentication name, value: authentication). + * + * @return Map of authentication object + */ + public Map getAuthentications() { + return authentications; + } + + /** + * Get authentication for the given name. + * + * @param authName The authentication name + * @return The authentication, null if not found + */ + public Authentication getAuthentication(String authName) { + return authentications.get(authName); + } + + /** + * Helper method to set username for the first HTTP basic authentication. + * + * @param username Username + */ + public ApiClient setUsername(String username) { + for (Authentication auth : authentications.values()) { + if (auth instanceof HttpBasicAuth) { + ((HttpBasicAuth) auth).setUsername(username); + return this; + } + } + throw new RuntimeException("No HTTP basic authentication configured!"); + } + + /** + * Helper method to set password for the first HTTP basic authentication. + * + * @param password Password + */ + public ApiClient setPassword(String password) { + for (Authentication auth : authentications.values()) { + if (auth instanceof HttpBasicAuth) { + ((HttpBasicAuth) auth).setPassword(password); + return this; + } + } + throw new RuntimeException("No HTTP basic authentication configured!"); + } + + /** + * Helper method to set API key value for the first API key authentication. + * + * @param apiKey API key + */ + public ApiClient setApiKey(String apiKey) { + for (Authentication auth : authentications.values()) { + if (auth instanceof ApiKeyAuth) { + ((ApiKeyAuth) auth).setApiKey(apiKey); + return this; + } + } + throw new RuntimeException("No API key authentication configured!"); + } + + /** + * Helper method to configure authentications which respects aliases of API keys. + * + * @param secrets Hash map from authentication name to its secret. + */ + public ApiClient configureApiKeys(HashMap secrets) { + for (Map.Entry authEntry : authentications.entrySet()) { + Authentication auth = authEntry.getValue(); + if (auth instanceof ApiKeyAuth) { + String name = authEntry.getKey(); + // respect x-auth-id-alias property + name = authenticationLookup.containsKey(name) ? authenticationLookup.get(name) : name; + if (secrets.containsKey(name)) { + ((ApiKeyAuth) auth).setApiKey(secrets.get(name)); + } + } + } + return this; + } + + /** + * Helper method to set API key prefix for the first API key authentication. + * + * @param apiKeyPrefix API key prefix + */ + public ApiClient setApiKeyPrefix(String apiKeyPrefix) { + for (Authentication auth : authentications.values()) { + if (auth instanceof ApiKeyAuth) { + ((ApiKeyAuth) auth).setApiKeyPrefix(apiKeyPrefix); + return this; + } + } + throw new RuntimeException("No API key authentication configured!"); + } + + /** + * Helper method to set bearer token for the first Bearer authentication. + * + * @param bearerToken Bearer token + */ + public ApiClient setBearerToken(String bearerToken) { + for (Authentication auth : authentications.values()) { + if (auth instanceof HttpBearerAuth) { + ((HttpBearerAuth) auth).setBearerToken(bearerToken); + return this; + } + } + throw new RuntimeException("No Bearer authentication configured!"); + } + + + /** + * Set the User-Agent header's value (by adding to the default header map). + * @param userAgent Http user agent + * @return API client + */ + public ApiClient setUserAgent(String userAgent) { + userAgent = userAgent; + addDefaultHeader("User-Agent", userAgent); + return this; + } + + /** + * Get the User-Agent header's value. + * @return User-Agent string + */ + public String getUserAgent(){ + return userAgent; + } + + /** + * Add a default header. + * + * @param key The header's key + * @param value The header's value + * @return API client + */ + public ApiClient addDefaultHeader(String key, String value) { + defaultHeaderMap.put(key, value); + return this; + } + + /** + * Add a default cookie. + * + * @param key The cookie's key + * @param value The cookie's value + * @return API client + */ + public ApiClient addDefaultCookie(String key, String value) { + defaultCookieMap.put(key, value); + return this; + } + + /** + * Check that whether debugging is enabled for this API client. + * @return True if debugging is switched on + */ + public boolean isDebugging() { + return debugging; + } + + /** + * Enable/disable debugging for this API client. + * + * @param debugging To enable (true) or disable (false) debugging + * @return API client + */ + public ApiClient setDebugging(boolean debugging) { + this.debugging = debugging; + // Rebuild HTTP Client according to the new "debugging" value. + this.httpClient = buildHttpClient(debugging); + return this; + } + + /** + * The path of temporary folder used to store downloaded files from endpoints + * with file response. The default value is null, i.e. using + * the system's default tempopary folder. + * + * @return Temp folder path + */ + public String getTempFolderPath() { + return tempFolderPath; + } + + /** + * Set temp folder path + * @param tempFolderPath Temp folder path + * @return API client + */ + public ApiClient setTempFolderPath(String tempFolderPath) { + this.tempFolderPath = tempFolderPath; + return this; + } + + /** + * Connect timeout (in milliseconds). + * @return Connection timeout + */ + public int getConnectTimeout() { + return connectionTimeout; + } + + /** + * Set the connect timeout (in milliseconds). + * A value of 0 means no timeout, otherwise values must be between 1 and + * {@link Integer#MAX_VALUE}. + * @param connectionTimeout Connection timeout in milliseconds + * @return API client + */ + public ApiClient setConnectTimeout(int connectionTimeout) { + this.connectionTimeout = connectionTimeout; + httpClient.property(ClientProperties.CONNECT_TIMEOUT, connectionTimeout); + return this; + } + + /** + * read timeout (in milliseconds). + * @return Read timeout + */ + public int getReadTimeout() { + return readTimeout; + } + + /** + * Set the read timeout (in milliseconds). + * A value of 0 means no timeout, otherwise values must be between 1 and + * {@link Integer#MAX_VALUE}. + * @param readTimeout Read timeout in milliseconds + * @return API client + */ + public ApiClient setReadTimeout(int readTimeout) { + this.readTimeout = readTimeout; + httpClient.property(ClientProperties.READ_TIMEOUT, readTimeout); + return this; + } + + /** + * Get the date format used to parse/format date parameters. + * @return Date format + */ + public DateFormat getDateFormat() { + return dateFormat; + } + + /** + * Set the date format used to parse/format date parameters. + * @param dateFormat Date format + * @return API client + */ + public ApiClient setDateFormat(DateFormat dateFormat) { + this.dateFormat = dateFormat; + // also set the date format for model (de)serialization with Date properties + this.json.setDateFormat((DateFormat) dateFormat.clone()); + return this; + } + + /** + * Parse the given string into Date object. + * @param str String + * @return Date + */ + public Date parseDate(String str) { + try { + return dateFormat.parse(str); + } catch (java.text.ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * Format the given Date object into string. + * @param date Date + * @return Date in string format + */ + public String formatDate(Date date) { + return dateFormat.format(date); + } + + /** + * Format the given parameter object into string. + * @param param Object + * @return Object in string format + */ + public String parameterToString(Object param) { + if (param == null) { + return ""; + } else if (param instanceof Date) { + return formatDate((Date) param); + } else if (param instanceof Collection) { + StringBuilder b = new StringBuilder(); + for(Object o : (Collection)param) { + if(b.length() > 0) { + b.append(','); + } + b.append(String.valueOf(o)); + } + return b.toString(); + } else { + return String.valueOf(param); + } + } + + /* + * Format to {@code Pair} objects. + * @param collectionFormat Collection format + * @param name Name + * @param value Value + * @return List of pairs + */ + public List parameterToPairs(String collectionFormat, String name, Object value){ + List params = new ArrayList(); + + // preconditions + if (name == null || name.isEmpty() || value == null) return params; + + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + params.add(new Pair(name, parameterToString(value))); + return params; + } + + if (valueCollection.isEmpty()){ + return params; + } + + // get the collection format (default: csv) + String format = (collectionFormat == null || collectionFormat.isEmpty() ? "csv" : collectionFormat); + + // create the params based on the collection format + if ("multi".equals(format)) { + for (Object item : valueCollection) { + params.add(new Pair(name, parameterToString(item))); + } + + return params; + } + + String delimiter = ","; + + if ("csv".equals(format)) { + delimiter = ","; + } else if ("ssv".equals(format)) { + delimiter = " "; + } else if ("tsv".equals(format)) { + delimiter = "\t"; + } else if ("pipes".equals(format)) { + delimiter = "|"; + } + + StringBuilder sb = new StringBuilder() ; + for (Object item : valueCollection) { + sb.append(delimiter); + sb.append(parameterToString(item)); + } + + params.add(new Pair(name, sb.substring(1))); + + return params; + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * "* / *" is also default to JSON + * @param mime MIME + * @return True if the MIME type is JSON + */ + public boolean isJsonMime(String mime) { + String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; + return mime != null && (mime.matches(jsonMime) || mime.equals("*/*")); + } + + /** + * Select the Accept header's value from the given accepts array: + * if JSON exists in the given array, use it; + * otherwise use all of them (joining into a string) + * + * @param accepts The accepts array to select from + * @return The Accept header to use. If the given array is empty, + * null will be returned (not to set the Accept header explicitly). + */ + public String selectHeaderAccept(String[] accepts) { + if (accepts.length == 0) { + return null; + } + for (String accept : accepts) { + if (isJsonMime(accept)) { + return accept; + } + } + return StringUtil.join(accepts, ","); + } + + /** + * Select the Content-Type header's value from the given array: + * if JSON exists in the given array, use it; + * otherwise use the first one of the array. + * + * @param contentTypes The Content-Type array to select from + * @return The Content-Type header to use. If the given array is empty, + * JSON will be used. + */ + public String selectHeaderContentType(String[] contentTypes) { + if (contentTypes.length == 0) { + return "application/json"; + } + for (String contentType : contentTypes) { + if (isJsonMime(contentType)) { + return contentType; + } + } + return contentTypes[0]; + } + + /** + * Escape the given string to be used as URL query value. + * @param str String + * @return Escaped string + */ + public String escapeString(String str) { + try { + return URLEncoder.encode(str, "utf8").replaceAll("\\+", "%20"); + } catch (UnsupportedEncodingException e) { + return str; + } + } + + /** + * Serialize the given Java object into string entity according the given + * Content-Type (only JSON is supported for now). + * @param obj Object + * @param formParams Form parameters + * @param contentType Context type + * @return Entity + * @throws ApiException API exception + */ + public Entity serialize(Object obj, Map formParams, String contentType, boolean isBodyNullable) throws ApiException { + Entity entity; + if (contentType.startsWith("multipart/form-data")) { + MultiPart multiPart = new MultiPart(); + for (Entry param: formParams.entrySet()) { + if (param.getValue() instanceof File) { + File file = (File) param.getValue(); + FormDataContentDisposition contentDisp = FormDataContentDisposition.name(param.getKey()) + .fileName(file.getName()).size(file.length()).build(); + multiPart.bodyPart(new FormDataBodyPart(contentDisp, file, MediaType.APPLICATION_OCTET_STREAM_TYPE)); + } else { + FormDataContentDisposition contentDisp = FormDataContentDisposition.name(param.getKey()).build(); + multiPart.bodyPart(new FormDataBodyPart(contentDisp, parameterToString(param.getValue()))); + } + } + entity = Entity.entity(multiPart, MediaType.MULTIPART_FORM_DATA_TYPE); + } else if (contentType.startsWith("application/x-www-form-urlencoded")) { + Form form = new Form(); + for (Entry param: formParams.entrySet()) { + form.param(param.getKey(), parameterToString(param.getValue())); + } + entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE); + } else { + // We let jersey handle the serialization + if (isBodyNullable) { // payload is nullable + entity = Entity.entity(obj == null ? "null" : obj, contentType); + } else { + entity = Entity.entity(obj == null ? "" : obj, contentType); + } + } + return entity; + } + + /** + * Serialize the given Java object into string according the given + * Content-Type (only JSON, HTTP form is supported for now). + * @param obj Object + * @param formParams Form parameters + * @param contentType Context type + * @param isBodyNullable True if the body is nullable + * @return String + * @throws ApiException API exception + */ + public String serializeToString(Object obj, Map formParams, String contentType, boolean isBodyNullable) throws ApiException { + try { + if (contentType.startsWith("multipart/form-data")) { + throw new ApiException("multipart/form-data not yet supported for serializeToString (http signature authentication)"); + } else if (contentType.startsWith("application/x-www-form-urlencoded")) { + String formString = ""; + for (Entry param : formParams.entrySet()) { + formString = param.getKey() + "=" + URLEncoder.encode(parameterToString(param.getValue()), "UTF-8") + "&"; + } + + if (formString.length() == 0) { // empty string + return formString; + } else { + return formString.substring(0, formString.length() - 1); + } + } else { + if (isBodyNullable) { + return obj == null ? "null" : json.getMapper().writeValueAsString(obj); + } else { + return json.getMapper().writeValueAsString(obj); + } + } + } catch (Exception ex) { + throw new ApiException("Failed to perform serializeToString: " + ex.toString()); + } + } + + /** + * Deserialize response body to Java object according to the Content-Type. + * @param Type + * @param response Response + * @param returnType Return type + * @return Deserialize object + * @throws ApiException API exception + */ + @SuppressWarnings("unchecked") + public T deserialize(Response response, GenericType returnType) throws ApiException { + if (response == null || returnType == null) { + return null; + } + + if ("byte[]".equals(returnType.toString())) { + // Handle binary response (byte array). + return (T) response.readEntity(byte[].class); + } else if (returnType.getRawType() == File.class) { + // Handle file downloading. + T file = (T) downloadFileFromResponse(response); + return file; + } + + String contentType = null; + List contentTypes = response.getHeaders().get("Content-Type"); + if (contentTypes != null && !contentTypes.isEmpty()) + contentType = String.valueOf(contentTypes.get(0)); + + // read the entity stream multiple times + response.bufferEntity(); + + return response.readEntity(returnType); + } + + /** + * Download file from the given response. + * @param response Response + * @return File + * @throws ApiException If fail to read file content from response and write to disk + */ + public File downloadFileFromResponse(Response response) throws ApiException { + try { + File file = prepareDownloadFile(response); + Files.copy(response.readEntity(InputStream.class), file.toPath(), StandardCopyOption.REPLACE_EXISTING); + return file; + } catch (IOException e) { + throw new ApiException(e); + } + } + + public File prepareDownloadFile(Response response) throws IOException { + String filename = null; + String contentDisposition = (String) response.getHeaders().getFirst("Content-Disposition"); + if (contentDisposition != null && !"".equals(contentDisposition)) { + // Get filename from the Content-Disposition header. + Pattern pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?"); + Matcher matcher = pattern.matcher(contentDisposition); + if (matcher.find()) + filename = matcher.group(1); + } + + String prefix; + String suffix = null; + if (filename == null) { + prefix = "download-"; + suffix = ""; + } else { + int pos = filename.lastIndexOf('.'); + if (pos == -1) { + prefix = filename + "-"; + } else { + prefix = filename.substring(0, pos) + "-"; + suffix = filename.substring(pos); + } + // File.createTempFile requires the prefix to be at least three characters long + if (prefix.length() < 3) + prefix = "download-"; + } + + if (tempFolderPath == null) + return File.createTempFile(prefix, suffix); + else + return File.createTempFile(prefix, suffix, new File(tempFolderPath)); + } + + /** + * Invoke API by sending HTTP request with the given options. + * + * @param Type + * @param operation The qualified name of the operation + * @param path The sub-path of the HTTP URL + * @param method The request method, one of "GET", "POST", "PUT", "HEAD" and "DELETE" + * @param queryParams The query parameters + * @param body The request body object + * @param headerParams The header parameters + * @param cookieParams The cookie parameters + * @param formParams The form parameters + * @param accept The request's Accept header + * @param contentType The request's Content-Type header + * @param authNames The authentications to apply + * @param returnType The return type into which to deserialize the response + * @param isBodyNullable True if the body is nullable + * @return The response body in type of string + * @throws ApiException API exception + */ + public ApiResponse invokeAPI( + String operation, + String path, + String method, + List queryParams, + Object body, + Map headerParams, + Map cookieParams, + Map formParams, + String accept, + String contentType, + String[] authNames, + GenericType returnType, + boolean isBodyNullable) + throws ApiException { + + // Not using `.target(targetURL).path(path)` below, + // to support (constant) query string in `path`, e.g. "/posts?draft=1" + String targetURL; + if (serverIndex != null && operationServers.containsKey(operation)) { + Integer index = operationServerIndex.containsKey(operation) ? operationServerIndex.get(operation) : serverIndex; + Map variables = operationServerVariables.containsKey(operation) ? + operationServerVariables.get(operation) : serverVariables; + List serverConfigurations = operationServers.get(operation); + if (index < 0 || index >= serverConfigurations.size()) { + throw new ArrayIndexOutOfBoundsException( + String.format( + "Invalid index %d when selecting the host settings. Must be less than %d", + index, serverConfigurations.size())); + } + targetURL = serverConfigurations.get(index).URL(variables) + path; + } else { + targetURL = this.basePath + path; + } + WebTarget target = httpClient.target(targetURL); + + if (queryParams != null) { + for (Pair queryParam : queryParams) { + if (queryParam.getValue() != null) { + target = target.queryParam(queryParam.getName(), escapeString(queryParam.getValue())); + } + } + } + + Invocation.Builder invocationBuilder = target.request().accept(accept); + + for (Entry entry : cookieParams.entrySet()) { + String value = entry.getValue(); + if (value != null) { + invocationBuilder = invocationBuilder.cookie(entry.getKey(), value); + } + } + + for (Entry entry : defaultCookieMap.entrySet()) { + String value = entry.getValue(); + if (value != null) { + invocationBuilder = invocationBuilder.cookie(entry.getKey(), value); + } + } + + Entity entity = serialize(body, formParams, contentType, isBodyNullable); + + // put all headers in one place + Map allHeaderParams = new HashMap<>(defaultHeaderMap); + allHeaderParams.putAll(headerParams); + + // update different parameters (e.g. headers) for authentication + updateParamsForAuth( + authNames, + queryParams, + allHeaderParams, + cookieParams, + serializeToString(body, formParams, contentType, isBodyNullable), + method, + target.getUri()); + + for (Entry entry : allHeaderParams.entrySet()) { + String value = entry.getValue(); + if (value != null) { + invocationBuilder = invocationBuilder.header(entry.getKey(), value); + } + } + + Response response = null; + + try { + response = sendRequest(method, invocationBuilder, entity); + + int statusCode = response.getStatusInfo().getStatusCode(); + Map> responseHeaders = buildResponseHeaders(response); + + if (response.getStatusInfo() == Status.NO_CONTENT) { + return new ApiResponse(statusCode, responseHeaders); + } else if (response.getStatusInfo().getFamily() == Status.Family.SUCCESSFUL) { + if (returnType == null) { + return new ApiResponse(statusCode, responseHeaders); + } else { + return new ApiResponse(statusCode, responseHeaders, deserialize(response, returnType)); + } + } else { + String message = "error"; + String respBody = null; + if (response.hasEntity()) { + try { + respBody = String.valueOf(response.readEntity(String.class)); + message = respBody; + } catch (RuntimeException e) { + // e.printStackTrace(); + } + } + throw new ApiException( + response.getStatus(), message, buildResponseHeaders(response), respBody); + } + } finally { + try { + response.close(); + } catch (Exception e) { + // it's not critical, since the response object is local in method invokeAPI; that's fine, + // just continue + } + } + } + + private Response sendRequest(String method, Invocation.Builder invocationBuilder, Entity entity) { + Response response; + if ("POST".equals(method)) { + response = invocationBuilder.post(entity); + } else if ("PUT".equals(method)) { + response = invocationBuilder.put(entity); + } else if ("DELETE".equals(method)) { + response = invocationBuilder.method("DELETE", entity); + } else if ("PATCH".equals(method)) { + response = invocationBuilder.method("PATCH", entity); + } else { + response = invocationBuilder.method(method); + } + return response; + } + + /** + * @deprecated Add qualified name of the operation as a first parameter. + */ + @Deprecated + public ApiResponse invokeAPI(String path, String method, List queryParams, Object body, Map headerParams, Map cookieParams, Map formParams, String accept, String contentType, String[] authNames, GenericType returnType, boolean isBodyNullable) throws ApiException { + return invokeAPI(null, path, method, queryParams, body, headerParams, cookieParams, formParams, accept, contentType, authNames, returnType, isBodyNullable); + } + + /** + * Build the Client used to make HTTP requests. + * @param debugging Debug setting + * @return Client + */ + protected Client buildHttpClient(boolean debugging) { + final ClientConfig clientConfig = new ClientConfig(); + clientConfig.register(MultiPartFeature.class); + clientConfig.register(json); + clientConfig.register(JacksonFeature.class); + clientConfig.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true); + // turn off compliance validation to be able to send payloads with DELETE calls + clientConfig.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); + if (debugging) { + clientConfig.register(new LoggingFeature(java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), java.util.logging.Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, 1024*50 /* Log payloads up to 50K */)); + clientConfig.property(LoggingFeature.LOGGING_FEATURE_VERBOSITY, LoggingFeature.Verbosity.PAYLOAD_ANY); + // Set logger to ALL + java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME).setLevel(java.util.logging.Level.ALL); + } else { + // suppress warnings for payloads with DELETE calls: + java.util.logging.Logger.getLogger("org.glassfish.jersey.client").setLevel(java.util.logging.Level.SEVERE); + } + performAdditionalClientConfiguration(clientConfig); + ClientBuilder clientBuilder = ClientBuilder.newBuilder(); + customizeClientBuilder(clientBuilder); + clientBuilder = clientBuilder.withConfig(clientConfig); + return clientBuilder.build(); + } + + /** + * Perform additional configuration of the API client. + * This method can be overriden to customize the API client. + */ + protected void performAdditionalClientConfiguration(ClientConfig clientConfig) { + // No-op extension point + } + + /** + * Customize the client builder. + * + * This method can be overriden to customize the API client. For example, this can be used to: + * 1. Set the hostname verifier to be used by the client to verify the endpoint's hostname + * against its identification information. + * 2. Set the client-side key store. + * 3. Set the SSL context that will be used when creating secured transport connections to + * server endpoints from web targets created by the client instance that is using this SSL context. + * 4. Set the client-side trust store. + * + * To completely disable certificate validation (at your own risk), you can + * override this method and invoke disableCertificateValidation(clientBuilder). + */ + protected void customizeClientBuilder(ClientBuilder clientBuilder) { + // No-op extension point + } + + /** + * Disable X.509 certificate validation in TLS connections. + * + * Please note that trusting all certificates is extremely risky. + * This may be useful in a development environment with self-signed certificates. + */ + protected void disableCertificateValidation(ClientBuilder clientBuilder) throws KeyManagementException, NoSuchAlgorithmException { + TrustManager[] trustAllCerts = new X509TrustManager[] { + new X509TrustManager() { + @Override + public X509Certificate[] getAcceptedIssuers() { + return null; + } + @Override + public void checkClientTrusted(X509Certificate[] certs, String authType) { + } + @Override + public void checkServerTrusted(X509Certificate[] certs, String authType) { + } + } + }; + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, trustAllCerts, new SecureRandom()); + clientBuilder.sslContext(sslContext); + } + + protected Map> buildResponseHeaders(Response response) { + Map> responseHeaders = new HashMap>(); + for (Entry> entry: response.getHeaders().entrySet()) { + List values = entry.getValue(); + List headers = new ArrayList(); + for (Object o : values) { + headers.add(String.valueOf(o)); + } + responseHeaders.put(entry.getKey(), headers); + } + return responseHeaders; + } + + /** + * Update query and header parameters based on authentication settings. + * + * @param authNames The authentications to apply + * @param queryParams List of query parameters + * @param headerParams Map of header parameters + * @param cookieParams Map of cookie parameters + * @param method HTTP method (e.g. POST) + * @param uri HTTP URI + */ + protected void updateParamsForAuth(String[] authNames, List queryParams, Map headerParams, + Map cookieParams, String payload, String method, URI uri) throws ApiException { + for (String authName : authNames) { + Authentication auth = authentications.get(authName); + if (auth == null) { + continue; + } + auth.applyToParams(queryParams, headerParams, cookieParams, payload, method, uri); + } + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiException.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiException.java new file mode 100644 index 00000000000..b7060042a5d --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiException.java @@ -0,0 +1,94 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client; + +import java.util.Map; +import java.util.List; + +/** + * API Exception + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ApiException extends Exception { + private int code = 0; + private Map> responseHeaders = null; + private String responseBody = null; + + public ApiException() {} + + public ApiException(Throwable throwable) { + super(throwable); + } + + public ApiException(String message) { + super(message); + } + + public ApiException(String message, Throwable throwable, int code, Map> responseHeaders, String responseBody) { + super(message, throwable); + this.code = code; + this.responseHeaders = responseHeaders; + this.responseBody = responseBody; + } + + public ApiException(String message, int code, Map> responseHeaders, String responseBody) { + this(message, (Throwable) null, code, responseHeaders, responseBody); + } + + public ApiException(String message, Throwable throwable, int code, Map> responseHeaders) { + this(message, throwable, code, responseHeaders, null); + } + + public ApiException(int code, Map> responseHeaders, String responseBody) { + this((String) null, (Throwable) null, code, responseHeaders, responseBody); + } + + public ApiException(int code, String message) { + super(message); + this.code = code; + } + + public ApiException(int code, String message, Map> responseHeaders, String responseBody) { + this(code, message); + this.responseHeaders = responseHeaders; + this.responseBody = responseBody; + } + + /** + * Get the HTTP status code. + * + * @return HTTP status code + */ + public int getCode() { + return code; + } + + /** + * Get the HTTP response headers. + * + * @return A map of list of string + */ + public Map> getResponseHeaders() { + return responseHeaders; + } + + /** + * Get the HTTP response body. + * + * @return Response body in the form of string + */ + public String getResponseBody() { + return responseBody; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiResponse.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiResponse.java new file mode 100644 index 00000000000..8f2168bf3a1 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiResponse.java @@ -0,0 +1,74 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client; + +import java.util.List; +import java.util.Map; + +/** + * API response returned by API call. + * + * @param The type of data that is deserialized from response body + */ +public class ApiResponse { + private final int statusCode; + private final Map> headers; + private final T data; + + /** + * @param statusCode The status code of HTTP response + * @param headers The headers of HTTP response + */ + public ApiResponse(int statusCode, Map> headers) { + this(statusCode, headers, null); + } + + /** + * @param statusCode The status code of HTTP response + * @param headers The headers of HTTP response + * @param data The object deserialized from response bod + */ + public ApiResponse(int statusCode, Map> headers, T data) { + this.statusCode = statusCode; + this.headers = headers; + this.data = data; + } + + /** + * Get the status code + * + * @return status code + */ + public int getStatusCode() { + return statusCode; + } + + /** + * Get the headers + * + * @return map of headers + */ + public Map> getHeaders() { + return headers; + } + + /** + * Get the data + * + * @return data + */ + public T getData() { + return data; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Configuration.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Configuration.java new file mode 100644 index 00000000000..cae6f51594d --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Configuration.java @@ -0,0 +1,39 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class Configuration { + private static ApiClient defaultApiClient = new ApiClient(); + + /** + * Get the default API client, which would be used when creating API + * instances without providing an API client. + * + * @return Default API client + */ + public static ApiClient getDefaultApiClient() { + return defaultApiClient; + } + + /** + * Set the default API client, which would be used when creating API + * instances without providing an API client. + * + * @param apiClient API client + */ + public static void setDefaultApiClient(ApiClient apiClient) { + defaultApiClient = apiClient; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/JSON.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/JSON.java new file mode 100644 index 00000000000..9d748f6e7c2 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/JSON.java @@ -0,0 +1,247 @@ +package org.openapitools.client; + +import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.databind.*; +import org.openapitools.jackson.nullable.JsonNullableModule; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.openapitools.client.model.*; + +import java.text.DateFormat; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.ext.ContextResolver; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class JSON implements ContextResolver { + private ObjectMapper mapper; + + public JSON() { + mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); + mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, true); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); + mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); + mapper.setDateFormat(new RFC3339DateFormat()); + mapper.registerModule(new JavaTimeModule()); + JsonNullableModule jnm = new JsonNullableModule(); + mapper.registerModule(jnm); + } + + /** + * Set the date format for JSON (de)serialization with Date properties. + * @param dateFormat Date format + */ + public void setDateFormat(DateFormat dateFormat) { + mapper.setDateFormat(dateFormat); + } + + @Override + public ObjectMapper getContext(Class type) { + return mapper; + } + + /** + * Get the object mapper + * + * @return object mapper + */ + public ObjectMapper getMapper() { return mapper; } + + /** + * Returns the target model class that should be used to deserialize the input data. + * The discriminator mappings are used to determine the target model class. + * + * @param node The input data. + * @param modelClass The class that contains the discriminator mappings. + */ + public static Class getClassForElement(JsonNode node, Class modelClass) { + ClassDiscriminatorMapping cdm = modelDiscriminators.get(modelClass); + if (cdm != null) { + return cdm.getClassForElement(node, new HashSet>()); + } + return null; + } + + /** + * Helper class to register the discriminator mappings. + */ + private static class ClassDiscriminatorMapping { + // The model class name. + Class modelClass; + // The name of the discriminator property. + String discriminatorName; + // The discriminator mappings for a model class. + Map> discriminatorMappings; + + // Constructs a new class discriminator. + ClassDiscriminatorMapping(Class cls, String propertyName, Map> mappings) { + modelClass = cls; + discriminatorName = propertyName; + discriminatorMappings = new HashMap>(); + if (mappings != null) { + discriminatorMappings.putAll(mappings); + } + } + + // Return the name of the discriminator property for this model class. + String getDiscriminatorPropertyName() { + return discriminatorName; + } + + // Return the discriminator value or null if the discriminator is not + // present in the payload. + String getDiscriminatorValue(JsonNode node) { + // Determine the value of the discriminator property in the input data. + if (discriminatorName != null) { + // Get the value of the discriminator property, if present in the input payload. + node = node.get(discriminatorName); + if (node != null && node.isValueNode()) { + String discrValue = node.asText(); + if (discrValue != null) { + return discrValue; + } + } + } + return null; + } + + /** + * Returns the target model class that should be used to deserialize the input data. + * This function can be invoked for anyOf/oneOf composed models with discriminator mappings. + * The discriminator mappings are used to determine the target model class. + * + * @param node The input data. + * @param visitedClasses The set of classes that have already been visited. + */ + Class getClassForElement(JsonNode node, Set> visitedClasses) { + if (visitedClasses.contains(modelClass)) { + // Class has already been visited. + return null; + } + // Determine the value of the discriminator property in the input data. + String discrValue = getDiscriminatorValue(node); + if (discrValue == null) { + return null; + } + Class cls = discriminatorMappings.get(discrValue); + // It may not be sufficient to return this cls directly because that target class + // may itself be a composed schema, possibly with its own discriminator. + visitedClasses.add(modelClass); + for (Class childClass : discriminatorMappings.values()) { + ClassDiscriminatorMapping childCdm = modelDiscriminators.get(childClass); + if (childCdm == null) { + continue; + } + if (!discriminatorName.equals(childCdm.discriminatorName)) { + discrValue = getDiscriminatorValue(node); + if (discrValue == null) { + continue; + } + } + if (childCdm != null) { + // Recursively traverse the discriminator mappings. + Class childDiscr = childCdm.getClassForElement(node, visitedClasses); + if (childDiscr != null) { + return childDiscr; + } + } + } + return cls; + } + } + + /** + * Returns true if inst is an instance of modelClass in the OpenAPI model hierarchy. + * + * The Java class hierarchy is not implemented the same way as the OpenAPI model hierarchy, + * so it's not possible to use the instanceof keyword. + * + * @param modelClass A OpenAPI model class. + * @param inst The instance object. + */ + public static boolean isInstanceOf(Class modelClass, Object inst, Set> visitedClasses) { + if (modelClass.isInstance(inst)) { + // This handles the 'allOf' use case with single parent inheritance. + return true; + } + if (visitedClasses.contains(modelClass)) { + // This is to prevent infinite recursion when the composed schemas have + // a circular dependency. + return false; + } + visitedClasses.add(modelClass); + + // Traverse the oneOf/anyOf composed schemas. + Map descendants = modelDescendants.get(modelClass); + if (descendants != null) { + for (GenericType childType : descendants.values()) { + if (isInstanceOf(childType.getRawType(), inst, visitedClasses)) { + return true; + } + } + } + return false; + } + + /** + * A map of discriminators for all model classes. + */ + private static Map, ClassDiscriminatorMapping> modelDiscriminators = new HashMap, ClassDiscriminatorMapping>(); + + /** + * A map of oneOf/anyOf descendants for each model class. + */ + private static Map, Map> modelDescendants = new HashMap, Map>(); + + /** + * Register a model class discriminator. + * + * @param modelClass the model class + * @param discriminatorPropertyName the name of the discriminator property + * @param mappings a map with the discriminator mappings. + */ + public static void registerDiscriminator(Class modelClass, String discriminatorPropertyName, Map> mappings) { + ClassDiscriminatorMapping m = new ClassDiscriminatorMapping(modelClass, discriminatorPropertyName, mappings); + modelDiscriminators.put(modelClass, m); + } + + /** + * Register the oneOf/anyOf descendants of the modelClass. + * + * @param modelClass the model class + * @param descendants a map of oneOf/anyOf descendants. + */ + public static void registerDescendants(Class modelClass, Map descendants) { + modelDescendants.put(modelClass, descendants); + } + + private static JSON json; + + static + { + json = new JSON(); + } + + /** + * Get the default JSON instance. + * + * @return the default JSON instance + */ + public static JSON getDefault() { + return json; + } + + /** + * Set the default JSON instance. + * + * @param json JSON instance to be used + */ + public static void setDefault(JSON json) { + JSON.json = json; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Pair.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Pair.java new file mode 100644 index 00000000000..6ee3b9c95a8 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/Pair.java @@ -0,0 +1,61 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class Pair { + private String name = ""; + private String value = ""; + + public Pair (String name, String value) { + setName(name); + setValue(value); + } + + private void setName(String name) { + if (!isValidString(name)) { + return; + } + + this.name = name; + } + + private void setValue(String value) { + if (!isValidString(value)) { + return; + } + + this.value = value; + } + + public String getName() { + return this.name; + } + + public String getValue() { + return this.value; + } + + private boolean isValidString(String arg) { + if (arg == null) { + return false; + } + + if (arg.trim().isEmpty()) { + return false; + } + + return true; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/RFC3339DateFormat.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/RFC3339DateFormat.java new file mode 100644 index 00000000000..82a86b83afc --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/RFC3339DateFormat.java @@ -0,0 +1,32 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package org.openapitools.client; + +import com.fasterxml.jackson.databind.util.ISO8601DateFormat; +import com.fasterxml.jackson.databind.util.ISO8601Utils; + +import java.text.FieldPosition; +import java.util.Date; + + +public class RFC3339DateFormat extends ISO8601DateFormat { + + // Same as ISO8601DateFormat but serializing milliseconds. + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + String value = ISO8601Utils.format(date, true); + toAppendTo.append(value); + return toAppendTo; + } + +} \ No newline at end of file diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerConfiguration.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerConfiguration.java new file mode 100644 index 00000000000..a1107a8690e --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerConfiguration.java @@ -0,0 +1,58 @@ +package org.openapitools.client; + +import java.util.Map; + +/** + * Representing a Server configuration. + */ +public class ServerConfiguration { + public String URL; + public String description; + public Map variables; + + /** + * @param URL A URL to the target host. + * @param description A describtion of the host designated by the URL. + * @param variables A map between a variable name and its value. The value is used for substitution in the server's URL template. + */ + public ServerConfiguration(String URL, String description, Map variables) { + this.URL = URL; + this.description = description; + this.variables = variables; + } + + /** + * Format URL template using given variables. + * + * @param variables A map between a variable name and its value. + * @return Formatted URL. + */ + public String URL(Map variables) { + String url = this.URL; + + // go through variables and replace placeholders + for (Map.Entry variable: this.variables.entrySet()) { + String name = variable.getKey(); + ServerVariable serverVariable = variable.getValue(); + String value = serverVariable.defaultValue; + + if (variables != null && variables.containsKey(name)) { + value = variables.get(name); + if (serverVariable.enumValues.size() > 0 && !serverVariable.enumValues.contains(value)) { + throw new RuntimeException("The variable " + name + " in the server URL has invalid value " + value + "."); + } + } + url = url.replaceAll("\\{" + name + "\\}", value); + } + return url; + } + + /** + * Format URL template using default server variables. + * + * @return Formatted URL. + */ + public String URL() { + return URL(null); + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerVariable.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerVariable.java new file mode 100644 index 00000000000..c2f13e21666 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ServerVariable.java @@ -0,0 +1,23 @@ +package org.openapitools.client; + +import java.util.HashSet; + +/** + * Representing a Server Variable for server URL template substitution. + */ +public class ServerVariable { + public String description; + public String defaultValue; + public HashSet enumValues = null; + + /** + * @param description A description for the server variable. + * @param defaultValue The default value to use for substitution. + * @param enumValues An enumeration of string values to be used if the substitution options are from a limited set. + */ + public ServerVariable(String description, String defaultValue, HashSet enumValues) { + this.description = description; + this.defaultValue = defaultValue; + this.enumValues = enumValues; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/StringUtil.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/StringUtil.java new file mode 100644 index 00000000000..2349496800f --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/StringUtil.java @@ -0,0 +1,83 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client; + +import java.util.Collection; +import java.util.Iterator; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class StringUtil { + /** + * Check if the given array contains the given value (with case-insensitive comparison). + * + * @param array The array + * @param value The value to search + * @return true if the array contains the value + */ + public static boolean containsIgnoreCase(String[] array, String value) { + for (String str : array) { + if (value == null && str == null) { + return true; + } + if (value != null && value.equalsIgnoreCase(str)) { + return true; + } + } + return false; + } + + /** + * Join an array of strings with the given separator. + *

+ * Note: This might be replaced by utility method from commons-lang or guava someday + * if one of those libraries is added as dependency. + *

+ * + * @param array The array of strings + * @param separator The separator + * @return the resulting string + */ + public static String join(String[] array, String separator) { + int len = array.length; + if (len == 0) { + return ""; + } + + StringBuilder out = new StringBuilder(); + out.append(array[0]); + for (int i = 1; i < len; i++) { + out.append(separator).append(array[i]); + } + return out.toString(); + } + + /** + * Join a list of strings with the given separator. + * + * @param list The list of strings + * @param separator The separator + * @return the resulting string + */ + public static String join(Collection list, String separator) { + Iterator iterator = list.iterator(); + StringBuilder out = new StringBuilder(); + if (iterator.hasNext()) { + out.append(iterator.next()); + } + while (iterator.hasNext()) { + out.append(separator).append(iterator.next()); + } + return out.toString(); + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/api/DefaultApi.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/api/DefaultApi.java new file mode 100644 index 00000000000..0aa6d3c871d --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/api/DefaultApi.java @@ -0,0 +1,110 @@ +package org.openapitools.client.api; + +import org.openapitools.client.ApiException; +import org.openapitools.client.ApiClient; +import org.openapitools.client.ApiResponse; +import org.openapitools.client.Configuration; +import org.openapitools.client.Pair; + +import javax.ws.rs.core.GenericType; + +import org.openapitools.client.model.MySchemaNameCharacters; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class DefaultApi { + private ApiClient apiClient; + + public DefaultApi() { + this(Configuration.getDefaultApiClient()); + } + + public DefaultApi(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Get the API cilent + * + * @return API client + */ + public ApiClient getApiClient() { + return apiClient; + } + + /** + * Set the API cilent + * + * @param apiClient an instance of API client + */ + public void setApiClient(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * + * + * @param mySchemaNameCharacters (optional) + * @return MySchemaNameCharacters + * @throws ApiException if fails to make API call + * @http.response.details + + + +
Status Code Description Response Headers
200 the response -
+ */ + public MySchemaNameCharacters testPost(MySchemaNameCharacters mySchemaNameCharacters) throws ApiException { + return testPostWithHttpInfo(mySchemaNameCharacters).getData(); + } + + /** + * + * + * @param mySchemaNameCharacters (optional) + * @return ApiResponse<MySchemaNameCharacters> + * @throws ApiException if fails to make API call + * @http.response.details + + + +
Status Code Description Response Headers
200 the response -
+ */ + public ApiResponse testPostWithHttpInfo(MySchemaNameCharacters mySchemaNameCharacters) throws ApiException { + Object localVarPostBody = mySchemaNameCharacters; + + // create path and map variables + String localVarPath = "/test"; + + // query params + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + + + + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + + String[] localVarAuthNames = new String[] { }; + + GenericType localVarReturnType = new GenericType() {}; + + return apiClient.invokeAPI("DefaultApi.testPost", localVarPath, "POST", localVarQueryParams, localVarPostBody, + localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType, + localVarAuthNames, localVarReturnType, false); + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java new file mode 100644 index 00000000000..36e6b69cf44 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java @@ -0,0 +1,79 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.auth; + +import org.openapitools.client.Pair; +import org.openapitools.client.ApiException; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ApiKeyAuth implements Authentication { + private final String location; + private final String paramName; + + private String apiKey; + private String apiKeyPrefix; + + public ApiKeyAuth(String location, String paramName) { + this.location = location; + this.paramName = paramName; + } + + public String getLocation() { + return location; + } + + public String getParamName() { + return paramName; + } + + public String getApiKey() { + return apiKey; + } + + public void setApiKey(String apiKey) { + this.apiKey = apiKey; + } + + public String getApiKeyPrefix() { + return apiKeyPrefix; + } + + public void setApiKeyPrefix(String apiKeyPrefix) { + this.apiKeyPrefix = apiKeyPrefix; + } + + @Override + public void applyToParams(List queryParams, Map headerParams, Map cookieParams, String payload, String method, URI uri) throws ApiException { + if (apiKey == null) { + return; + } + String value; + if (apiKeyPrefix != null) { + value = apiKeyPrefix + " " + apiKey; + } else { + value = apiKey; + } + if ("query".equals(location)) { + queryParams.add(new Pair(paramName, value)); + } else if ("header".equals(location)) { + headerParams.put(paramName, value); + } else if ("cookie".equals(location)) { + cookieParams.put(paramName, value); + } + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/Authentication.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/Authentication.java new file mode 100644 index 00000000000..accc79798b7 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/Authentication.java @@ -0,0 +1,33 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.auth; + +import org.openapitools.client.Pair; +import org.openapitools.client.ApiException; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +public interface Authentication { + /** + * Apply authentication settings to header and query params. + * + * @param queryParams List of query parameters + * @param headerParams Map of header parameters + * @param cookieParams Map of cookie parameters + */ + void applyToParams(List queryParams, Map headerParams, Map cookieParams, String payload, String method, URI uri) throws ApiException; + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java new file mode 100644 index 00000000000..7baabf8242a --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java @@ -0,0 +1,56 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.auth; + +import org.openapitools.client.Pair; +import org.openapitools.client.ApiException; + +import java.util.Base64; +import java.nio.charset.StandardCharsets; + +import java.net.URI; +import java.util.Map; +import java.util.List; + + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class HttpBasicAuth implements Authentication { + private String username; + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + @Override + public void applyToParams(List queryParams, Map headerParams, Map cookieParams, String payload, String method, URI uri) throws ApiException { + if (username == null && password == null) { + return; + } + String str = (username == null ? "" : username) + ":" + (password == null ? "" : password); + headerParams.put("Authorization", "Basic " + Base64.getEncoder().encodeToString(str.getBytes(StandardCharsets.UTF_8))); + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java new file mode 100644 index 00000000000..0b8953a74bd --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java @@ -0,0 +1,62 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.auth; + +import org.openapitools.client.Pair; +import org.openapitools.client.ApiException; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class HttpBearerAuth implements Authentication { + private final String scheme; + private String bearerToken; + + public HttpBearerAuth(String scheme) { + this.scheme = scheme; + } + + /** + * Gets the token, which together with the scheme, will be sent as the value of the Authorization header. + * + * @return The bearer token + */ + public String getBearerToken() { + return bearerToken; + } + + /** + * Sets the token, which together with the scheme, will be sent as the value of the Authorization header. + * + * @param bearerToken The bearer token to send in the Authorization header + */ + public void setBearerToken(String bearerToken) { + this.bearerToken = bearerToken; + } + + @Override + public void applyToParams(List queryParams, Map headerParams, Map cookieParams, String payload, String method, URI uri) throws ApiException { + if(bearerToken == null) { + return; + } + + headerParams.put("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken); + } + + private static String upperCaseBearer(String scheme) { + return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme; + } +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java new file mode 100644 index 00000000000..c8a0f21b8c9 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java @@ -0,0 +1,149 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import org.openapitools.client.ApiException; +import java.util.Objects; +import java.lang.reflect.Type; +import java.util.Map; +import javax.ws.rs.core.GenericType; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Abstract class for oneOf,anyOf schemas defined in OpenAPI spec + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public abstract class AbstractOpenApiSchema { + + // store the actual instance of the schema/object + private Object instance; + + // is nullable + private Boolean isNullable; + + // schema type (e.g. oneOf, anyOf) + private final String schemaType; + + public AbstractOpenApiSchema(String schemaType, Boolean isNullable) { + this.schemaType = schemaType; + this.isNullable = isNullable; + } + + /** + * Get the list of oneOf/anyOf composed schemas allowed to be stored in this object + * + * @return an instance of the actual schema/object + */ + public abstract Map getSchemas(); + + /** + * Get the actual instance + * + * @return an instance of the actual schema/object + */ + @JsonValue + public Object getActualInstance() {return instance;} + + /** + * Set the actual instance + * + * @param instance the actual instance of the schema/object + */ + public void setActualInstance(Object instance) {this.instance = instance;} + + /** + * Get the instant recursively when the schemas defined in oneOf/anyof happen to be oneOf/anyOf schema as well + * + * @return an instance of the actual schema/object + */ + public Object getActualInstanceRecursively() { + return getActualInstanceRecursively(this); + } + + private Object getActualInstanceRecursively(AbstractOpenApiSchema object) { + if (object.getActualInstance() == null) { + return null; + } else if (object.getActualInstance() instanceof AbstractOpenApiSchema) { + return getActualInstanceRecursively((AbstractOpenApiSchema)object.getActualInstance()); + } else { + return object.getActualInstance(); + } + } + + /** + * Get the schema type (e.g. anyOf, oneOf) + * + * @return the schema type + */ + public String getSchemaType() { + return schemaType; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ").append(getClass()).append(" {\n"); + sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); + sb.append(" isNullable: ").append(toIndentedString(isNullable)).append("\n"); + sb.append(" schemaType: ").append(toIndentedString(schemaType)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AbstractOpenApiSchema a = (AbstractOpenApiSchema) o; + return Objects.equals(this.instance, a.instance) && + Objects.equals(this.isNullable, a.isNullable) && + Objects.equals(this.schemaType, a.schemaType); + } + + @Override + public int hashCode() { + return Objects.hash(instance, isNullable, schemaType); + } + + /** + * Is nullalble + * + * @return true if it's nullable + */ + public Boolean isNullable() { + if (Boolean.TRUE.equals(isNullable)) { + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java new file mode 100644 index 00000000000..1eb1795db4e --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchema.java @@ -0,0 +1,167 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import java.util.Objects; +import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.model.ChildSchemaAllOf; +import org.openapitools.client.model.Parent; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.openapitools.client.JSON; + + +/** + * A schema that does not have any special character. + */ +@ApiModel(description = "A schema that does not have any special character.") +@JsonPropertyOrder({ + ChildSchema.JSON_PROPERTY_PROP1 +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "objectType", visible = true) + +public class ChildSchema extends Parent { + public static final String JSON_PROPERTY_PROP1 = "prop1"; + private String prop1; + + + public ChildSchema prop1(String prop1) { + this.prop1 = prop1; + return this; + } + + /** + * Get prop1 + * @return prop1 + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + @JsonProperty(JSON_PROPERTY_PROP1) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getProp1() { + return prop1; + } + + + public void setProp1(String prop1) { + this.prop1 = prop1; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + */ + @JsonAnySetter + public ChildSchema putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this ChildSchema object is equal to o. + */ + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChildSchema childSchema = (ChildSchema) o; + return Objects.equals(this.prop1, childSchema.prop1)&& + Objects.equals(this.additionalProperties, childSchema.additionalProperties) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(prop1, super.hashCode(), additionalProperties); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChildSchema {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" prop1: ").append(toIndentedString(prop1)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +static { + // Initialize and register the discriminator mappings. + Map> mappings = new HashMap>(); + mappings.put("ChildSchema", ChildSchema.class); + JSON.registerDiscriminator(ChildSchema.class, "objectType", mappings); +} +} + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchemaAllOf.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchemaAllOf.java new file mode 100644 index 00000000000..25312511049 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/ChildSchemaAllOf.java @@ -0,0 +1,109 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.openapitools.client.JSON; + + +/** + * ChildSchemaAllOf + */ +@JsonPropertyOrder({ + ChildSchemaAllOf.JSON_PROPERTY_PROP1 +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class ChildSchemaAllOf { + public static final String JSON_PROPERTY_PROP1 = "prop1"; + private String prop1; + + + public ChildSchemaAllOf prop1(String prop1) { + this.prop1 = prop1; + return this; + } + + /** + * Get prop1 + * @return prop1 + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + @JsonProperty(JSON_PROPERTY_PROP1) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getProp1() { + return prop1; + } + + + public void setProp1(String prop1) { + this.prop1 = prop1; + } + + + /** + * Return true if this ChildSchema_allOf object is equal to o. + */ + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChildSchemaAllOf childSchemaAllOf = (ChildSchemaAllOf) o; + return Objects.equals(this.prop1, childSchemaAllOf.prop1); + } + + @Override + public int hashCode() { + return Objects.hash(prop1); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChildSchemaAllOf {\n"); + sb.append(" prop1: ").append(toIndentedString(prop1)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java new file mode 100644 index 00000000000..cb4da0ad0ab --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharacters.java @@ -0,0 +1,168 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import java.util.Objects; +import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.model.MySchemaNameCharactersAllOf; +import org.openapitools.client.model.Parent; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.openapitools.client.JSON; + + +/** + * A schema name that has letters, numbers, punctuation and non-ASCII characters. The sanitization rules should make it possible to generate a language-specific classname with allowed characters in that programming language. + */ +@ApiModel(description = "A schema name that has letters, numbers, punctuation and non-ASCII characters. The sanitization rules should make it possible to generate a language-specific classname with allowed characters in that programming language.") +@JsonPropertyOrder({ + MySchemaNameCharacters.JSON_PROPERTY_PROP2 +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "objectType", visible = true) +@JsonTypeName("MySchemaName._-Characters") + +public class MySchemaNameCharacters extends Parent { + public static final String JSON_PROPERTY_PROP2 = "prop2"; + private String prop2; + + + public MySchemaNameCharacters prop2(String prop2) { + this.prop2 = prop2; + return this; + } + + /** + * Get prop2 + * @return prop2 + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + @JsonProperty(JSON_PROPERTY_PROP2) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getProp2() { + return prop2; + } + + + public void setProp2(String prop2) { + this.prop2 = prop2; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + */ + @JsonAnySetter + public MySchemaNameCharacters putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this MySchemaName._-Characters object is equal to o. + */ + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MySchemaNameCharacters mySchemaNameCharacters = (MySchemaNameCharacters) o; + return Objects.equals(this.prop2, mySchemaNameCharacters.prop2)&& + Objects.equals(this.additionalProperties, mySchemaNameCharacters.additionalProperties) && + super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(prop2, super.hashCode(), additionalProperties); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MySchemaNameCharacters {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" prop2: ").append(toIndentedString(prop2)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +static { + // Initialize and register the discriminator mappings. + Map> mappings = new HashMap>(); + mappings.put("MySchemaName._-Characters", MySchemaNameCharacters.class); + JSON.registerDiscriminator(MySchemaNameCharacters.class, "objectType", mappings); +} +} + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharactersAllOf.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharactersAllOf.java new file mode 100644 index 00000000000..8a45f540ef0 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/MySchemaNameCharactersAllOf.java @@ -0,0 +1,109 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.openapitools.client.JSON; + + +/** + * MySchemaNameCharactersAllOf + */ +@JsonPropertyOrder({ + MySchemaNameCharactersAllOf.JSON_PROPERTY_PROP2 +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +public class MySchemaNameCharactersAllOf { + public static final String JSON_PROPERTY_PROP2 = "prop2"; + private String prop2; + + + public MySchemaNameCharactersAllOf prop2(String prop2) { + this.prop2 = prop2; + return this; + } + + /** + * Get prop2 + * @return prop2 + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + @JsonProperty(JSON_PROPERTY_PROP2) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getProp2() { + return prop2; + } + + + public void setProp2(String prop2) { + this.prop2 = prop2; + } + + + /** + * Return true if this MySchemaName___Characters_allOf object is equal to o. + */ + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MySchemaNameCharactersAllOf mySchemaNameCharactersAllOf = (MySchemaNameCharactersAllOf) o; + return Objects.equals(this.prop2, mySchemaNameCharactersAllOf.prop2); + } + + @Override + public int hashCode() { + return Objects.hash(prop2); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MySchemaNameCharactersAllOf {\n"); + sb.append(" prop2: ").append(toIndentedString(prop2)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/Parent.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/Parent.java new file mode 100644 index 00000000000..c7de7f7065b --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/model/Parent.java @@ -0,0 +1,127 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import java.util.Objects; +import java.util.Arrays; +import java.util.Map; +import java.util.HashMap; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.model.ChildSchema; +import org.openapitools.client.model.MySchemaNameCharacters; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.openapitools.client.JSON; + + +/** + * Parent + */ +@JsonPropertyOrder({ + Parent.JSON_PROPERTY_OBJECT_TYPE +}) +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "objectType", visible = true) +@JsonSubTypes({ + @JsonSubTypes.Type(value = ChildSchema.class, name = "ChildSchema"), + @JsonSubTypes.Type(value = MySchemaNameCharacters.class, name = "MySchemaName._-Characters"), +}) + +public class Parent { + public static final String JSON_PROPERTY_OBJECT_TYPE = "objectType"; + private String objectType; + + + public Parent objectType(String objectType) { + this.objectType = objectType; + return this; + } + + /** + * Get objectType + * @return objectType + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + @JsonProperty(JSON_PROPERTY_OBJECT_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + + public String getObjectType() { + return objectType; + } + + + public void setObjectType(String objectType) { + this.objectType = objectType; + } + + + /** + * Return true if this Parent object is equal to o. + */ + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Parent parent = (Parent) o; + return Objects.equals(this.objectType, parent.objectType); + } + + @Override + public int hashCode() { + return Objects.hash(objectType); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Parent {\n"); + sb.append(" objectType: ").append(toIndentedString(objectType)).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(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +static { + // Initialize and register the discriminator mappings. + Map> mappings = new HashMap>(); + mappings.put("ChildSchema", ChildSchema.class); + mappings.put("MySchemaName._-Characters", MySchemaNameCharacters.class); + mappings.put("Parent", Parent.class); + JSON.registerDiscriminator(Parent.class, "objectType", mappings); +} +} + diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/api/DefaultApiTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/api/DefaultApiTest.java new file mode 100644 index 00000000000..51a3dbedfb3 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/api/DefaultApiTest.java @@ -0,0 +1,51 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.api; + +import org.openapitools.client.*; +import org.openapitools.client.auth.*; +import org.openapitools.client.model.MySchemaNameCharacters; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for DefaultApi + */ +public class DefaultApiTest { + + private final DefaultApi api = new DefaultApi(); + + /** + * + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void testPostTest() throws ApiException { + //MySchemaNameCharacters mySchemaNameCharacters = null; + //MySchemaNameCharacters response = api.testPost(mySchemaNameCharacters); + // TODO: test validations + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaAllOfTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaAllOfTest.java new file mode 100644 index 00000000000..2e21267fd93 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaAllOfTest.java @@ -0,0 +1,49 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ChildSchemaAllOf + */ +public class ChildSchemaAllOfTest { + private final ChildSchemaAllOf model = new ChildSchemaAllOf(); + + /** + * Model tests for ChildSchemaAllOf + */ + @Test + public void testChildSchemaAllOf() { + // TODO: test ChildSchemaAllOf + } + + /** + * Test the property 'prop1' + */ + @Test + public void prop1Test() { + // TODO: test prop1 + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaTest.java new file mode 100644 index 00000000000..ed8952c9c5c --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ChildSchemaTest.java @@ -0,0 +1,70 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.JSON; +import org.openapitools.client.model.ChildSchemaAllOf; +import org.openapitools.client.model.Parent; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ChildSchema + */ +public class ChildSchemaTest { + private final ChildSchema model = new ChildSchema(); + + /** + * Model tests for ChildSchema + */ + @Test + public void testChildSchema() { + String objJson = "{ \"objectType\": \"ChildSchema\", \"prop1\":\"some_value\" }"; + try { + JSON j = new JSON(); + ChildSchema obj = j.getMapper().readValue(objJson, ChildSchema.class); + Assert.assertEquals(obj.getObjectType(), "ChildSchema"); + Assert.assertEquals(obj.getProp1(), "some_value"); + } catch (Exception ex) { + Assert.fail("Exception '" + ex.getMessage() + "' should not have been raised"); + } + } + + /** + * Test the property 'objectType' + */ + @Test + public void objectTypeTest() { + // TODO: test objectType + } + + /** + * Test the property 'prop1' + */ + @Test + public void prop1Test() { + // TODO: test prop1 + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersAllOfTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersAllOfTest.java new file mode 100644 index 00000000000..47b20942db1 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersAllOfTest.java @@ -0,0 +1,49 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for MySchemaNameCharactersAllOf + */ +public class MySchemaNameCharactersAllOfTest { + private final MySchemaNameCharactersAllOf model = new MySchemaNameCharactersAllOf(); + + /** + * Model tests for MySchemaNameCharactersAllOf + */ + @Test + public void testMySchemaNameCharactersAllOf() { + // TODO: test MySchemaNameCharactersAllOf + } + + /** + * Test the property 'prop2' + */ + @Test + public void prop2Test() { + // TODO: test prop2 + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersTest.java new file mode 100644 index 00000000000..481778dbfc5 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/MySchemaNameCharactersTest.java @@ -0,0 +1,70 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.JSON; +import org.openapitools.client.model.MySchemaNameCharactersAllOf; +import org.openapitools.client.model.Parent; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for MySchemaNameCharacters + */ +public class MySchemaNameCharactersTest { + private final MySchemaNameCharacters model = new MySchemaNameCharacters(); + + /** + * Model tests for MySchemaNameCharacters + */ + @Test + public void testMySchemaNameCharacters() { + String objJson = "{ \"objectType\": \"MySchemaName._-Characters\", \"prop2\":\"some_value\" }"; + try { + JSON j = new JSON(); + MySchemaNameCharacters obj = j.getMapper().readValue(objJson, MySchemaNameCharacters.class); + Assert.assertEquals(obj.getObjectType(), "MySchemaName._-Characters"); + Assert.assertEquals(obj.getProp2(), "some_value"); + } catch (Exception ex) { + Assert.fail("Exception '" + ex.getMessage() + "' should not have been raised"); + } + } + + /** + * Test the property 'prop1' + */ + @Test + public void prop1Test() { + // TODO: test prop1 + } + + /** + * Test the property 'prop2' + */ + @Test + public void prop2Test() { + // TODO: test prop2 + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ParentTest.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ParentTest.java new file mode 100644 index 00000000000..0b4ac985614 --- /dev/null +++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/test/java/org/openapitools/client/model/ParentTest.java @@ -0,0 +1,51 @@ +/* + * test + * test + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package org.openapitools.client.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonValue; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.openapitools.client.model.MySchemaNameCharacters; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for Parent + */ +public class ParentTest { + private final Parent model = new Parent(); + + /** + * Model tests for Parent + */ + @Test + public void testParent() { + // TODO: test Parent + } + + /** + * Test the property 'prop1' + */ + @Test + public void prop1Test() { + } + +} diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java index 84a9d6915ba..5708159756a 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java index 3ba4db8445f..2ead58d1a5d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Animal.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Apple.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Apple.java index f3d482ee19e..9523850019f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Apple.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Apple.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AppleReq.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AppleReq.java index 19b48f42441..8984095a9f6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AppleReq.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/AppleReq.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java index ae6c3866e08..df98f6d9a00 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java index 5197dda9bc4..f84a1042728 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java index 0d125019fe6..a6160fc1d7d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ArrayTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Banana.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Banana.java index a0327d574d9..076c4351db6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Banana.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Banana.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BananaReq.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BananaReq.java index 90ec9863602..880ca14507f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BananaReq.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BananaReq.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BasquePig.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BasquePig.java index af750595161..fce8a214e81 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BasquePig.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/BasquePig.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java index c87ca1ea948..3c578c6c08f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Capitalization.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java index 226af44187b..20c698bf2ff 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Cat.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -43,8 +44,6 @@ import org.openapitools.client.JSON; }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "className", visible = true) -@JsonSubTypes({ -}) public class Cat extends Animal { public static final String JSON_PROPERTY_DECLAWED = "declawed"; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java index f3060f5d0e3..05cf8311696 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/CatAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java index de082b6e900..6dc51b7de42 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Category.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java index 3331e50125f..e96b56a2847 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCat.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -43,8 +44,6 @@ import org.openapitools.client.JSON; }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "pet_type", visible = true) -@JsonSubTypes({ -}) public class ChildCat extends ParentPet { public static final String JSON_PROPERTY_NAME = "name"; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCatAllOf.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCatAllOf.java index 14279b43796..8ad157bf8d8 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCatAllOf.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ChildCatAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java index ebaa8336783..b826f450f35 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ClassModel.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java index 1bc59615dae..5b04df57894 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Client.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ComplexQuadrilateral.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ComplexQuadrilateral.java index 01cb6c6a837..d542235afa3 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ComplexQuadrilateral.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ComplexQuadrilateral.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DanishPig.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DanishPig.java index 289134c8f17..de057076db5 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DanishPig.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DanishPig.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java index b41fe77d7d5..057afa6cec7 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Dog.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -43,8 +44,6 @@ import org.openapitools.client.JSON; }) @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "className", visible = true) -@JsonSubTypes({ -}) public class Dog extends Animal { public static final String JSON_PROPERTY_BREED = "breed"; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java index c8e362e0e9d..80f35628c1d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/DogAllOf.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Drawing.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Drawing.java index e4b5708cb17..eea935b4bc4 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Drawing.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Drawing.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java index 7916b8a9cd7..a3b60565d4a 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumArrays.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java index 631def3aa1a..4d9cdc15014 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EnumTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EquilateralTriangle.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EquilateralTriangle.java index a396d5cfd70..ab5a0191e0d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EquilateralTriangle.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/EquilateralTriangle.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java index 4680680d6d7..a27fe8ae92f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FileSchemaTestClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Foo.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Foo.java index 5bf7d18a1f6..c48206afc53 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Foo.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Foo.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java index 4c9736ee758..50e5171211f 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FormatTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java index 913931949a4..0d482282095 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Fruit.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java index 183f0035f9e..ba0fc1a2bf7 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/FruitReq.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java index dfb38363a24..0710c3deeea 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GmFruit.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java index ded3b825b13..87dc9d15ec5 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/GrandparentAnimal.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java index b802d5acf61..66a488b96cd 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HasOnlyReadOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HealthCheckResult.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HealthCheckResult.java index 274da7a611a..4b92de2f2a0 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HealthCheckResult.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/HealthCheckResult.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject.java index d654560f8d9..d83bc3be259 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject1.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject1.java index ca065161d45..bc8faad9b00 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject1.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject1.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject2.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject2.java index eb33026ba17..07666318a2d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject2.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject2.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject3.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject3.java index 384e2ffeb7b..9b6db13b3b5 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject3.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject3.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject4.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject4.java index a48edb4f787..5d6af67b76b 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject4.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject4.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject5.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject5.java index 8e4286c430f..b2485fd03a2 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject5.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineObject5.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineResponseDefault.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineResponseDefault.java index d3ad145c119..ef9e16e6780 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineResponseDefault.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/InlineResponseDefault.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/IsoscelesTriangle.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/IsoscelesTriangle.java index 82de9e88f44..7c99885fb94 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/IsoscelesTriangle.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/IsoscelesTriangle.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java index 68016799e06..db1f6b9b5e1 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Mammal.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java index d2f49b5bb63..37b6718ed9d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MapTest.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java index 3d3037cfb68..06a59d6d57d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/MixedPropertiesAndAdditionalPropertiesClass.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java index 7775d5835ca..555aafad610 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Model200Response.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java index da4182452b5..cb1b831fb06 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelApiResponse.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java index ba4143056b7..48c6d79d161 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ModelReturn.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java index 0dd87332e67..57e7c94cfba 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Name.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableClass.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableClass.java index 982e0d5df7e..2d89741880c 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableClass.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableClass.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java index e34b9618312..bcc0fc2b1c6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NullableShape.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java index 751777ec56f..fe4cc261f6d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/NumberOnly.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java index 46263dec990..280b1cf3af7 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Order.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java index 93630fda594..a41bcf1bd49 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/OuterComposite.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java index f7df618a065..4a28d4c01e6 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ParentPet.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java index 8e78e031ea3..915359bf6a1 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pet.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java index 2e22a0cfa6a..a43bf499aac 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Pig.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java index 4f6331b8f9d..16f69333948 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Quadrilateral.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/QuadrilateralInterface.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/QuadrilateralInterface.java index de4eeadca38..85347af6779 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/QuadrilateralInterface.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/QuadrilateralInterface.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java index ba58c8cb29f..1f2bbfaaa69 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ReadOnlyFirst.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ScaleneTriangle.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ScaleneTriangle.java index 7efe8c1e967..ecb22d4d6eb 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ScaleneTriangle.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ScaleneTriangle.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java index 7e25253a122..53fb100975d 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Shape.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeInterface.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeInterface.java index e4463b62545..e06322956d9 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeInterface.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeInterface.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java index cde595039ac..1a8d3c0a076 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/ShapeOrNull.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SimpleQuadrilateral.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SimpleQuadrilateral.java index dd378b6cf9b..6963fd1f172 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SimpleQuadrilateral.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SimpleQuadrilateral.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java index 744d18f94ef..524ef8afcd3 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/SpecialModelName.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java index 78b29486f2e..0c61cd71e54 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Tag.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java index 9135fa670e4..ab7f93d1a73 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Triangle.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TriangleInterface.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TriangleInterface.java index b2e6b74311c..ae1376e1603 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TriangleInterface.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/TriangleInterface.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java index bdd939b38c2..2b74f386058 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/User.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Whale.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Whale.java index e0979080f0b..e143ed6700e 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Whale.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Whale.java @@ -20,6 +20,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Zebra.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Zebra.java index 9a062c4c729..4257aa5faa5 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Zebra.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/model/Zebra.java @@ -24,6 +24,7 @@ import java.util.HashMap; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonValue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java index dda1ef9c1ef..2ce38ae2f69 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/test/java/org/openapitools/client/JSONTest.java @@ -1,6 +1,7 @@ package org.openapitools.client; import org.openapitools.client.model.Order; +import org.openapitools.client.model.SpecialModelName; import java.lang.Exception; import java.util.Date; @@ -71,4 +72,19 @@ public class JSONTest { Order o = json.getContext(null).readValue(str, Order.class); assertEquals(dateStr, dateFormat.format(o.getShipDate())); } + + /** + * Validate a schema with special characters can be deserialized. + */ + @Test + public void testSchemaWithSpecialCharacters() throws Exception { + String str = "{ \"$special[property.name]\": 12345 }"; + // The name of the OpenAPI schema is '_special_model.name_'. + // After sanitization rules are applied the name of the class is 'SpecialModelName'. + // The class deserialization should be successful because + // of the @JsonSubTypes annotation. + SpecialModelName o = json.getContext(null).readValue(str, SpecialModelName.class); + assertNotNull(o); + assertEquals((long)12345, (long)o.get$SpecialPropertyName()); + } } \ No newline at end of file