Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1088,6 +1088,10 @@ public CodegenModel fromModel(String name, Schema model) {
}
}

if (!AnnotationLibrary.SWAGGER2.equals(getAnnotationLibrary())) {
codegenModel.imports.remove("Schema");
}

return codegenModel;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3481,6 +3481,64 @@ public void callNativeServiceWithEmptyResponseSync() throws IOException {
);
}

@Test
public void annotationLibraryDoesNotCauseImportConflicts() throws IOException {
Map<String, Object> properties = new HashMap<>();
properties.put("annotationLibrary", "none");

File output = Files.createTempDirectory("test").toFile();
output.deleteOnExit();

final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName(JAVA_GENERATOR)
.setLibrary(JavaClientCodegen.NATIVE)
.setAdditionalProperties(properties)
.setInputSpec("src/test/resources/3_0/java/native/issue21991.yaml")
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));

final ClientOptInput clientOptInput = configurator.toClientOptInput();
DefaultGenerator generator = new DefaultGenerator();

Map<String, File> files = generator.opts(clientOptInput).generate().stream()
.collect(Collectors.toMap(File::getName, Function.identity()));

File apiFile = files.get("Schema.java");
assertNotNull(apiFile);

JavaFileAssert.assertThat(apiFile).fileDoesNotContain(
"import io.swagger.v3.oas.annotations.media.Schema;"
);
}

@Test
public void annotationLibraryGeneratesCorrectImports() throws IOException {
Map<String, Object> properties = new HashMap<>();
properties.put("annotationLibrary", "swagger2");

File output = Files.createTempDirectory("test").toFile();
output.deleteOnExit();

final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName(JAVA_GENERATOR)
.setLibrary(JavaClientCodegen.NATIVE)
.setAdditionalProperties(properties)
.setInputSpec("src/test/resources/3_0/java/native/issue21991.yaml")
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));

final ClientOptInput clientOptInput = configurator.toClientOptInput();
DefaultGenerator generator = new DefaultGenerator();

Map<String, File> files = generator.opts(clientOptInput).generate().stream()
.collect(Collectors.toMap(File::getName, Function.identity()));

File apiFile = files.get("Schema.java");
assertNotNull(apiFile);

JavaFileAssert.assertThat(apiFile).fileContains(
"import io.swagger.v3.oas.annotations.media.Schema;"
);
}


/**
* This checks that the async client is not affected by this fix.
Expand Down Expand Up @@ -3924,4 +3982,4 @@ public void oneOfWithInnerModelTest() {
}
assertTrue(speciesSeen);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
openapi: 3.0.3
info:
title: Example Hello API
description: ''
version: v1
servers:
- url: http://localhost
description: Global Endpoint
paths:
/v1/emptyResponse:
get:
operationId: empty
description: returns an empty response
responses:
200:
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Schema'
204:
description: Empty response
components:
schemas:
Schema:
type: object
properties:
name:
type: string
Loading