forked from loafle/openapi-generator-original
Fix #8027 - import the auto generated supporting JSON class only when generateSupportingFiles is true
This commit is contained in:
@@ -233,6 +233,7 @@ public class DefaultGenerator implements Generator {
|
||||
|
||||
config.additionalProperties().put(CodegenConstants.GENERATE_APIS, generateApis);
|
||||
config.additionalProperties().put(CodegenConstants.GENERATE_MODELS, generateModels);
|
||||
config.additionalProperties().put("generateSupportingFiles", generateSupportingFiles);
|
||||
|
||||
if (!generateApiTests && !generateModelTests) {
|
||||
config.additionalProperties().put(CodegenConstants.EXCLUDE_TESTS, true);
|
||||
|
||||
@@ -46,7 +46,9 @@ import javax.validation.Valid;
|
||||
{{#performBeanValidation}}
|
||||
import org.hibernate.validator.constraints.*;
|
||||
{{/performBeanValidation}}
|
||||
{{#generateSupportingFiles}}
|
||||
import {{invokerPackage}}.JSON;
|
||||
{{/generateSupportingFiles}}
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
|
||||
@@ -446,6 +446,81 @@ public class JavaClientCodegenTest {
|
||||
"import java.net.http.HttpRequest;");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJdkHttpClientWithSupportingFiles() throws Exception {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api");
|
||||
properties.put(CodegenConstants.MODEL_PACKAGE, "xyz.abcdef.model");
|
||||
properties.put(CodegenConstants.INVOKER_PACKAGE, "xyz.abcdef.invoker");
|
||||
|
||||
File output = Files.createTempDirectory("test").toFile();
|
||||
output.deleteOnExit();
|
||||
|
||||
final CodegenConfigurator configurator = new CodegenConfigurator()
|
||||
.setGeneratorName("java")
|
||||
.setLibrary(JavaClientCodegen.NATIVE)
|
||||
.setAdditionalProperties(properties)
|
||||
.setInputSpec("src/test/resources/3_0/pingSomeObj.yaml")
|
||||
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
|
||||
|
||||
final ClientOptInput clientOptInput = configurator.toClientOptInput();
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "true");
|
||||
List<File> files = generator.opts(clientOptInput).generate();
|
||||
|
||||
Assert.assertEquals(files.size(), 34);
|
||||
validateJavaSourceFiles(files);
|
||||
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/xyz/abcdef/api/PingApi.java"),
|
||||
"public class PingApi",
|
||||
"import java.net.http.HttpClient;",
|
||||
"import java.net.http.HttpRequest;",
|
||||
"import java.net.http.HttpResponse;");
|
||||
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/xyz/abcdef/model/SomeObj.java"),
|
||||
"import xyz.abcdef.invoker.JSON;",
|
||||
"public class SomeObj {");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJdkHttpClientWithoutSupportingFiles() throws Exception {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api");
|
||||
properties.put(CodegenConstants.MODEL_PACKAGE, "xyz.abcdef.model");
|
||||
properties.put(CodegenConstants.INVOKER_PACKAGE, "xyz.abcdef.invoker");
|
||||
|
||||
File output = Files.createTempDirectory("test").toFile();
|
||||
output.deleteOnExit();
|
||||
|
||||
final CodegenConfigurator configurator = new CodegenConfigurator()
|
||||
.setGeneratorName("java")
|
||||
.setLibrary(JavaClientCodegen.NATIVE)
|
||||
.setAdditionalProperties(properties)
|
||||
.setInputSpec("src/test/resources/3_0/pingSomeObj.yaml")
|
||||
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
|
||||
|
||||
final ClientOptInput clientOptInput = configurator.toClientOptInput();
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true");
|
||||
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
|
||||
List<File> files = generator.opts(clientOptInput).generate();
|
||||
|
||||
Assert.assertEquals(files.size(), 6);
|
||||
validateJavaSourceFiles(files);
|
||||
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/xyz/abcdef/api/PingApi.java"),
|
||||
"public class PingApi",
|
||||
"import java.net.http.HttpClient;",
|
||||
"import java.net.http.HttpRequest;",
|
||||
"import java.net.http.HttpResponse;");
|
||||
|
||||
TestUtils.assertFileNotContains(Paths.get(output + "/src/main/java/xyz/abcdef/model/SomeObj.java"),
|
||||
"import xyz.abcdef.invoker.JSON;");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJdkHttpAsyncClient() throws Exception {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user