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 fa9a016d1d3..a849c957f5a 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 @@ -1473,6 +1473,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code if ("array".equals(property.containerType)) { model.imports.add("ArrayList"); + model.imports.add("Arrays"); } else if ("set".equals(property.containerType)) { model.imports.add("LinkedHashSet"); boolean canNotBeWrappedToNullable = !openApiNullable || !property.isNullable; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java index abf39ccdf39..4e312c8164e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java @@ -251,6 +251,33 @@ public class JavaJAXRSSpecServerCodegenTest extends JavaJaxrsBaseTest { output.deleteOnExit(); } + @Test + public void testGeneratePingDefaultArrayValue() throws Exception { + Map properties = new HashMap<>(); + + File output = Files.createTempDirectory("test").toFile(); + + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName("jaxrs-spec") + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/ping-array-default.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + + final ClientOptInput clientOptInput = configurator.toClientOptInput(); + DefaultGenerator generator = new DefaultGenerator(); + List files = generator.opts(clientOptInput).generate(); + + validateJavaSourceFiles(files); + + TestUtils.ensureContainsFile(files, output, "src/main/openapi/openapi.yaml"); + + Path path = Paths.get(output.toPath() + "/src/gen/java/org/openapitools/model/AnArrayOfString.java"); + + assertFileContains(path , "\nimport java.util.Arrays;\n"); + + output.deleteOnExit(); + } + @Test public void testGeneratePingNoSpecFile() throws Exception { Map properties = new HashMap<>(); diff --git a/modules/openapi-generator/src/test/resources/3_0/ping-array-default.yaml b/modules/openapi-generator/src/test/resources/3_0/ping-array-default.yaml new file mode 100644 index 00000000000..4296285cb1c --- /dev/null +++ b/modules/openapi-generator/src/test/resources/3_0/ping-array-default.yaml @@ -0,0 +1,28 @@ +openapi: 3.0.1 +info: + title: ping test + version: '1.0' +servers: + - url: 'http://localhost:8000/' +paths: + /ping: + get: + operationId: pingGet + responses: + '201': + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AnArrayOfString" +components: + schemas: + AnArrayOfString: + type: object + properties: + arrayWithADefaultValue: + default: + - aString + items: + type: string + type: array