diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java index 69d1f1ef22e..ddec667729f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java @@ -22,11 +22,13 @@ import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETT import static org.openapitools.codegen.utils.StringUtils.camelize; import com.samskivert.mustache.Mustache; +import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; + import java.io.File; import java.net.URL; import java.util.ArrayList; @@ -41,6 +43,8 @@ import java.util.Objects; import java.util.Set; import java.util.regex.Matcher; import java.util.stream.Collectors; +import java.util.stream.Stream; + import org.apache.commons.lang3.tuple.Pair; import org.openapitools.codegen.CliOption; import org.openapitools.codegen.CodegenConstants; @@ -498,6 +502,10 @@ public class SpringCodegen extends AbstractJavaCodegen this.setUseFeignClient(true); } else { apiTemplateFiles.put("apiController.mustache", "Controller.java"); + if (containsEnums()) { + supportingFiles.add(new SupportingFile("converter.mustache", + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), "EnumConverterConfiguration.java")); + } supportingFiles.add(new SupportingFile("application.mustache", ("src.main.resources").replace(".", java.io.File.separator), "application.properties")); supportingFiles.add(new SupportingFile("homeController.mustache", @@ -595,6 +603,20 @@ public class SpringCodegen extends AbstractJavaCodegen } } + private boolean containsEnums() { + if (openAPI == null) { + return false; + } + + Components components = this.openAPI.getComponents(); + if (components == null || components.getSchemas() == null) { + return false; + } + + return components.getSchemas().values().stream() + .anyMatch(it -> it.getEnum() != null && !it.getEnum().isEmpty()); + } + @Override public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map> operations) { diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/converter.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/converter.mustache new file mode 100644 index 00000000000..a331ded633b --- /dev/null +++ b/modules/openapi-generator/src/main/resources/JavaSpring/converter.mustache @@ -0,0 +1,34 @@ +package {{configPackage}}; + +{{#models}} + {{#model}} + {{#isEnum}} +import {{modelPackage}}.{{name}}; + {{/isEnum}} + {{/model}} +{{/models}} + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + +{{#models}} +{{#model}} +{{#isEnum}} + @Bean + Converter<{{{dataType}}}, {{name}}> {{classVarName}}Converter() { + return new Converter<{{{dataType}}}, {{name}}>() { + @Override + public {{name}} convert({{{dataType}}} source) { + return {{name}}.fromValue(source); + } + }; + } +{{/isEnum}} +{{/model}} +{{/models}} + +} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index ac1f12a3eb0..0077a76bde8 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -18,6 +18,7 @@ package org.openapitools.codegen.java.spring; import static java.util.stream.Collectors.groupingBy; +import static org.assertj.core.api.Assertions.assertThat; import static org.openapitools.codegen.TestUtils.assertFileContains; import static org.openapitools.codegen.TestUtils.assertFileNotContains; import static org.openapitools.codegen.languages.SpringCodegen.RESPONSE_WRAPPER; @@ -1214,7 +1215,7 @@ public class SpringCodegenTest { generator.opts(input).generate(); File[] generatedModels = new File(outputPath + "/src/main/java/org/openapitools/model").listFiles(); - Assertions.assertThat(generatedModels).isNotEmpty(); + assertThat(generatedModels).isNotEmpty(); for (File modelPath : generatedModels) { JavaFileAssert.assertThat(modelPath) @@ -1227,22 +1228,9 @@ public class SpringCodegenTest { @Test public void testHandleDefaultValue_issue8535() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/3_0/issue_8535.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map additionalProperties = new HashMap<>(); + additionalProperties.put(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true"); + Map files = generateFromContract("src/test/resources/3_0/issue_8535.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) .assertMethod("headersTest") @@ -1329,29 +1317,15 @@ public class SpringCodegenTest { @Test public void testResponseWithArray_issue11897() throws Exception { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_11897.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary(SPRING_BOOT); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(AbstractJavaCodegen.FULL_JAVA_UTIL, "true"); - codegen.additionalProperties().put(SpringCodegen.USE_TAGS, "true"); - codegen.additionalProperties().put(SpringCodegen.INTERFACE_ONLY, "true"); - codegen.additionalProperties().put(SpringCodegen.SKIP_DEFAULT_INTERFACE, "true"); - codegen.additionalProperties().put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); - codegen.additionalProperties().put(SpringCodegen.SPRING_CONTROLLER, "true"); - codegen.additionalProperties().put(CodegenConstants.SERIALIZATION_LIBRARY, "jackson"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map additionalProperties = new HashMap<>(); + additionalProperties.put(AbstractJavaCodegen.FULL_JAVA_UTIL, "true"); + additionalProperties.put(SpringCodegen.USE_TAGS, "true"); + additionalProperties.put(SpringCodegen.INTERFACE_ONLY, "true"); + additionalProperties.put(SpringCodegen.SKIP_DEFAULT_INTERFACE, "true"); + additionalProperties.put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); + additionalProperties.put(SpringCodegen.SPRING_CONTROLLER, "true"); + additionalProperties.put(CodegenConstants.SERIALIZATION_LIBRARY, "jackson"); + Map files = generateFromContract("src/test/resources/bugs/issue_11897.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("MetadataApi.java")) .assertMethod("getWithArrayOfObjects").hasReturnType("ResponseEntity>") @@ -1369,29 +1343,16 @@ public class SpringCodegenTest { @Test public void shouldSetDefaultValueForMultipleArrayItems() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); + Map additionalProperties = new HashMap<>(); + additionalProperties.put(AbstractJavaCodegen.FULL_JAVA_UTIL, "true"); + additionalProperties.put(SpringCodegen.USE_TAGS, "true"); + additionalProperties.put(SpringCodegen.INTERFACE_ONLY, "true"); + additionalProperties.put(SpringCodegen.SKIP_DEFAULT_INTERFACE, "true"); + additionalProperties.put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); + additionalProperties.put(SpringCodegen.SPRING_CONTROLLER, "true"); + additionalProperties.put(CodegenConstants.SERIALIZATION_LIBRARY, "jackson"); - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_11957.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary(SPRING_BOOT); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(AbstractJavaCodegen.FULL_JAVA_UTIL, "true"); - codegen.additionalProperties().put(SpringCodegen.USE_TAGS, "true"); - codegen.additionalProperties().put(SpringCodegen.INTERFACE_ONLY, "true"); - codegen.additionalProperties().put(SpringCodegen.SKIP_DEFAULT_INTERFACE, "true"); - codegen.additionalProperties().put(SpringCodegen.PERFORM_BEANVALIDATION, "true"); - codegen.additionalProperties().put(SpringCodegen.SPRING_CONTROLLER, "true"); - codegen.additionalProperties().put(CodegenConstants.SERIALIZATION_LIBRARY, "jackson"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map files = generateFromContract("src/test/resources/bugs/issue_11957.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("SearchApi.java")) .assertMethod("defaultList") @@ -1417,21 +1378,7 @@ public class SpringCodegenTest { @Test public void testPutItemsMethodContainsKeyInSuperClassMethodCall_issue12494() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_12494.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setOutputDir(output.getAbsolutePath()); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map files = generateFromContract("src/test/resources/bugs/issue_12494.yaml", null); JavaFileAssert.assertThat(files.get("ChildClass.java")) .assertMethod("putSomeMapItem") @@ -1440,22 +1387,7 @@ public class SpringCodegenTest { @Test public void shouldHandleCustomResponseType_issue11731() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_11731.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary(SPRING_BOOT); - codegen.setOutputDir(output.getAbsolutePath()); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map files = generateFromContract("src/test/resources/bugs/issue_11731.yaml", SPRING_BOOT); JavaFileAssert.assertThat(files.get("CustomersApi.java")) .assertMethod("getAllUsingGET1") @@ -1464,23 +1396,9 @@ public class SpringCodegenTest { @Test public void shouldHandleContentTypeWithSecondWildcardSubtype_issue12457() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_12457.yaml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary(SPRING_BOOT); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(SpringCodegen.USE_TAGS, "true"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + Map additionalProperties = new HashMap<>(); + additionalProperties.put(SpringCodegen.USE_TAGS, "true"); + Map files = generateFromContract("src/test/resources/bugs/issue_12457.yaml", SPRING_BOOT, additionalProperties); JavaFileAssert.assertThat(files.get("UsersApi.java")) .assertMethod("wildcardSubTypeForContentType") @@ -1493,28 +1411,15 @@ public class SpringCodegenTest { @Test public void shouldGenerateDiscriminatorFromAllOfWhenUsingLegacyDiscriminatorBehaviour_issue12692() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - OpenAPI openAPI = new OpenAPIParser() - .readLocation("src/test/resources/bugs/issue_12692.yml", null, new ParseOptions()).getOpenAPI(); - SpringCodegen codegen = new SpringCodegen(); - codegen.setLibrary(SPRING_BOOT); - codegen.setOutputDir(output.getAbsolutePath()); - codegen.additionalProperties().put(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "true"); - - ClientOptInput input = new ClientOptInput() - .openAPI(openAPI) - .config(codegen); - - DefaultGenerator generator = new DefaultGenerator(); - generator.opts(input).generate(); + Map additionalProperties = new HashMap<>(); + additionalProperties.put(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "true"); + Map output = generateFromContract("src/test/resources/bugs/issue_12692.yml", SPRING_BOOT, additionalProperties); String jsonTypeInfo = "@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = \"type\", visible = true)"; String jsonSubType = "@JsonSubTypes({\n" + " @JsonSubTypes.Type(value = Cat.class, name = \"cat\")" + "})"; - assertFileContains(Paths.get(output.getAbsolutePath() + "/src/main/java/org/openapitools/model/Pet.java"), jsonTypeInfo, jsonSubType); + assertFileContains(output.get("Pet.java").toPath(), jsonTypeInfo, jsonSubType); } @Test @@ -1696,4 +1601,46 @@ public class SpringCodegenTest { .assertMethod("equals") .bodyContainsLines("return Arrays.equals(this.picture, testObject.picture);"); } + + @Test + public void contractWithoutEnumDoesNotContainsEnumConverter() throws IOException { + Map output = generateFromContract("src/test/resources/3_0/generic.yaml", SPRING_BOOT); + + assertThat(output).doesNotContainKey("EnumConverterConfiguration.java"); + } + + @Test + public void contractWithEnumContainsEnumConverter() throws IOException { + Map output = generateFromContract("src/test/resources/3_0/enum.yaml", SPRING_BOOT); + + JavaFileAssert.assertThat(output.get("EnumConverterConfiguration.java")) + .assertMethod("typeConverter"); + } + + private Map generateFromContract(String url, String library) throws IOException { + return generateFromContract(url, library, new HashMap<>()); + } + private Map generateFromContract(String url, String library, Map additionalProperties) throws IOException { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + + OpenAPI openAPI = new OpenAPIParser() + .readLocation(url, null, new ParseOptions()).getOpenAPI(); + + SpringCodegen codegen = new SpringCodegen(); + if (null != library) { + codegen.setLibrary(library); + } + codegen.setOutputDir(output.getAbsolutePath()); + codegen.additionalProperties().putAll(additionalProperties); + + ClientOptInput input = new ClientOptInput() + .openAPI(openAPI) + .config(codegen); + + DefaultGenerator generator = new DefaultGenerator(); + + return generator.opts(input).generate().stream() + .collect(Collectors.toMap(File::getName, Function.identity())); + } } diff --git a/modules/openapi-generator/src/test/resources/3_0/enum.yaml b/modules/openapi-generator/src/test/resources/3_0/enum.yaml new file mode 100644 index 00000000000..e0cb0f881a8 --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/enum.yaml @@ -0,0 +1,32 @@ +openapi: 3.0.0 +info: + title: Sample API + description: API description in Markdown. + version: 1.0.0 +paths: + /ponies: + get: + summary: Returns all animals. + description: Optional extended description in Markdown. + responses: + 200: + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Pony' +components: + schemas: + Pony: + type: object + properties: + type: + $ref: '#/components/schemas/Type' + Type: + type: string + enum: + - Earth + - Pegasi + - Unicorn \ No newline at end of file diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES index cf9ab80cce1..5d716a83385 100644 --- a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES +++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringDocConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/openapi3/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/openapi3/server/petstore/springboot-delegate/.openapi-generator/FILES b/samples/openapi3/server/petstore/springboot-delegate/.openapi-generator/FILES index 813eb7c338f..3299b46a7b2 100644 --- a/samples/openapi3/server/petstore/springboot-delegate/.openapi-generator/FILES +++ b/samples/openapi3/server/petstore/springboot-delegate/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringDocConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/openapi3/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES b/samples/openapi3/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES index cf9ab80cce1..5d716a83385 100644 --- a/samples/openapi3/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES +++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringDocConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/openapi3/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/openapi3/server/petstore/springboot-reactive/.openapi-generator/FILES b/samples/openapi3/server/petstore/springboot-reactive/.openapi-generator/FILES index 0ed351e7bda..1fc07e54e68 100644 --- a/samples/openapi3/server/petstore/springboot-reactive/.openapi-generator/FILES +++ b/samples/openapi3/server/petstore/springboot-reactive/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java src/main/java/org/openapitools/model/AdditionalPropertiesArray.java diff --git a/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/openapi3/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/openapi3/server/petstore/springboot-useoptional/.openapi-generator/FILES b/samples/openapi3/server/petstore/springboot-useoptional/.openapi-generator/FILES index cf9ab80cce1..5d716a83385 100644 --- a/samples/openapi3/server/petstore/springboot-useoptional/.openapi-generator/FILES +++ b/samples/openapi3/server/petstore/springboot-useoptional/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringDocConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/openapi3/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES b/samples/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES index 32fdc6a9409..3c2e959bec0 100644 --- a/samples/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-beanvalidation-no-nullable/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-beanvalidation-no-nullable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-beanvalidation/.openapi-generator/FILES b/samples/server/petstore/springboot-beanvalidation/.openapi-generator/FILES index ff6da0b88a7..d61b6cf83bf 100644 --- a/samples/server/petstore/springboot-beanvalidation/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-beanvalidation/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-beanvalidation/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-delegate-j8/.openapi-generator/FILES b/samples/server/petstore/springboot-delegate-j8/.openapi-generator/FILES index 84b7f1df792..07f63a0e8be 100644 --- a/samples/server/petstore/springboot-delegate-j8/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-delegate-j8/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-delegate-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-delegate/.openapi-generator/FILES b/samples/server/petstore/springboot-delegate/.openapi-generator/FILES index 84b7f1df792..07f63a0e8be 100644 --- a/samples/server/petstore/springboot-delegate/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-delegate/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-delegate/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES b/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES index 32fdc6a9409..3c2e959bec0 100644 --- a/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-implicitHeaders/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-implicitHeaders/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-reactive/.openapi-generator/FILES b/samples/server/petstore/springboot-reactive/.openapi-generator/FILES index b552438ed41..bf09bb15ac7 100644 --- a/samples/server/petstore/springboot-reactive/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-reactive/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java src/main/java/org/openapitools/model/AdditionalPropertiesArray.java diff --git a/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-reactive/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/.openapi-generator/FILES b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/.openapi-generator/FILES index cfad6877d8e..7a4d79c7e10 100644 --- a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern/.openapi-generator/FILES b/samples/server/petstore/springboot-spring-pageable-delegatePattern/.openapi-generator/FILES index cfad6877d8e..7a4d79c7e10 100644 --- a/samples/server/petstore/springboot-spring-pageable-delegatePattern/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern/.openapi-generator/FILES @@ -21,6 +21,7 @@ src/main/java/org/openapitools/api/StoreApiDelegate.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java src/main/java/org/openapitools/api/UserApiDelegate.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-spring-pageable-delegatePattern/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-spring-pageable-without-j8/.openapi-generator/FILES b/samples/server/petstore/springboot-spring-pageable-without-j8/.openapi-generator/FILES index 2696c0211eb..82b3e0b0d8f 100644 --- a/samples/server/petstore/springboot-spring-pageable-without-j8/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-spring-pageable-without-j8/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-spring-pageable-without-j8/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-spring-pageable/.openapi-generator/FILES b/samples/server/petstore/springboot-spring-pageable/.openapi-generator/FILES index 2696c0211eb..82b3e0b0d8f 100644 --- a/samples/server/petstore/springboot-spring-pageable/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-spring-pageable/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-spring-pageable/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-useoptional/.openapi-generator/FILES b/samples/server/petstore/springboot-useoptional/.openapi-generator/FILES index 32fdc6a9409..3c2e959bec0 100644 --- a/samples/server/petstore/springboot-useoptional/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-useoptional/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot-useoptional/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot-virtualan/.openapi-generator/FILES b/samples/server/petstore/springboot-virtualan/.openapi-generator/FILES index 242b5258470..408f3973f3e 100644 --- a/samples/server/petstore/springboot-virtualan/.openapi-generator/FILES +++ b/samples/server/petstore/springboot-virtualan/.openapi-generator/FILES @@ -2,6 +2,7 @@ README.md pom.xml src/main/java/org/openapitools/OpenApiGeneratorApplication.java src/main/java/org/openapitools/RFC3339DateFormat.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringDocConfiguration.java src/main/java/org/openapitools/virtualan/api/AnotherFakeApi.java diff --git a/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..1af17cc2ace --- /dev/null +++ b/samples/server/petstore/springboot-virtualan/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.virtualan.model.EnumClass; +import org.openapitools.virtualan.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +} diff --git a/samples/server/petstore/springboot/.openapi-generator/FILES b/samples/server/petstore/springboot/.openapi-generator/FILES index 32fdc6a9409..3c2e959bec0 100644 --- a/samples/server/petstore/springboot/.openapi-generator/FILES +++ b/samples/server/petstore/springboot/.openapi-generator/FILES @@ -15,6 +15,7 @@ src/main/java/org/openapitools/api/StoreApi.java src/main/java/org/openapitools/api/StoreApiController.java src/main/java/org/openapitools/api/UserApi.java src/main/java/org/openapitools/api/UserApiController.java +src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java src/main/java/org/openapitools/configuration/HomeController.java src/main/java/org/openapitools/configuration/SpringFoxConfiguration.java src/main/java/org/openapitools/model/AdditionalPropertiesAnyType.java diff --git a/samples/server/petstore/springboot/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java b/samples/server/petstore/springboot/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java new file mode 100644 index 00000000000..a9db83785d2 --- /dev/null +++ b/samples/server/petstore/springboot/src/main/java/org/openapitools/configuration/EnumConverterConfiguration.java @@ -0,0 +1,32 @@ +package org.openapitools.configuration; + +import org.openapitools.model.EnumClass; +import org.openapitools.model.OuterEnum; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +@Configuration +public class EnumConverterConfiguration { + + @Bean + Converter enumClassConverter() { + return new Converter() { + @Override + public EnumClass convert(String source) { + return EnumClass.fromValue(source); + } + }; + } + @Bean + Converter outerEnumConverter() { + return new Converter() { + @Override + public OuterEnum convert(String source) { + return OuterEnum.fromValue(source); + } + }; + } + +}