mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-08 16:40:56 +00:00
* Fixed issue #21404 - Restricted Java oneOf imports to Jackson when needed * Fix TODOs
This commit is contained in:
parent
cfe476f32d
commit
b05604dab7
@ -1230,11 +1230,13 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
||||
|
||||
@Override
|
||||
public void addImportsToOneOfInterface(List<Map<String, String>> imports) {
|
||||
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
|
||||
Map<String, String> 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<String, String> oneImport = new HashMap<>();
|
||||
oneImport.put("import", importMapping.get(i));
|
||||
if (!imports.contains(oneImport)) {
|
||||
imports.add(oneImport);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -479,11 +479,13 @@ public class JavaHelidonClientCodegen extends JavaHelidonCommonCodegen {
|
||||
|
||||
@Override
|
||||
public void addImportsToOneOfInterface(List<Map<String, String>> imports) {
|
||||
for (String i : Arrays.asList("JsonSubTypes", "JsonTypeInfo", "JsonIgnoreProperties")) {
|
||||
Map<String, String> 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<String, String> oneImport = new HashMap<>();
|
||||
oneImport.put("import", importMapping.get(i));
|
||||
if (!imports.contains(oneImport)) {
|
||||
imports.add(oneImport);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3699,4 +3699,29 @@ public class JavaClientCodegenTest {
|
||||
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<String, Object> 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");
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user