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 735f27aacd6f..68d6b129d0ba 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 @@ -1230,11 +1230,13 @@ public String toApiVarName(String name) { @Override public void addImportsToOneOfInterface(List> imports) { - for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) { - Map oneImport = new HashMap<>(); - oneImport.put("import", importMapping.get(i)); - if (!imports.contains(oneImport)) { - imports.add(oneImport); + if(additionalProperties.containsKey(SERIALIZATION_LIBRARY_JACKSON)) { + for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) { + Map oneImport = new HashMap<>(); + oneImport.put("import", importMapping.get(i)); + if (!imports.contains(oneImport)) { + imports.add(oneImport); + } } } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java index f4425ed1bc45..dd31eae0f183 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaHelidonClientCodegen.java @@ -479,11 +479,13 @@ public String toApiVarName(String name) { @Override public void addImportsToOneOfInterface(List> imports) { - for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) { - Map oneImport = new HashMap<>(); - oneImport.put("import", importMapping.get(i)); - if (!imports.contains(oneImport)) { - imports.add(oneImport); + if(additionalProperties.containsKey(SERIALIZATION_LIBRARY_JACKSON)) { + for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) { + Map oneImport = new HashMap<>(); + oneImport.put("import", importMapping.get(i)); + if (!imports.contains(oneImport)) { + imports.add(oneImport); + } } } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index 261812787f1c..4e86e24d7574 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -3699,4 +3699,29 @@ public void testNativeClientWithUseSingleRequestParameter() { TestUtils.assertFileNotContains(output.resolve("src/main/java/xyz/abcdef/api/PetApi.java"), "public record DeletePetRequest(Long petId, String apiKey){}"); } + + @Test(dataProvider = "librariesNotSupportingJackson") + public void givenOneOfUsesInterfacesAndLibraryNotJacksonWhenGenerateThenOneOfInterfaceDoesNotHaveJacksonImports(Library library) throws Exception { + File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); + output.deleteOnExit(); + + Map properties = new HashMap<>(); + properties.put(USE_ONE_OF_INTERFACES, true); + + Generator generator = new DefaultGenerator(); + CodegenConfigurator configurator = new CodegenConfigurator() + .setInputSpec("src/test/resources/3_0/oneOf.yaml") + .setGeneratorName("java") + .setLibrary(library.value) + .setAdditionalProperties(properties) + .setOutputDir(output.getAbsolutePath()); + ClientOptInput clientOptInput = configurator.toClientOptInput(); + generator.opts(clientOptInput) + .generate(); + String outputPath = output.getAbsolutePath() + "/src/main/java/org/openapitools"; + File testModel = new File(outputPath, "/client/model/Fruit.java"); + String fileContent = Files.readString(testModel.toPath()); + TestUtils.assertValidJavaSourceCode(fileContent); + TestUtils.assertFileNotContains(testModel.toPath(), "com.fasterxml.jackson"); + } } \ No newline at end of file