From 436c79c12b5e01a2df32847e81554f5727c50a56 Mon Sep 17 00:00:00 2001 From: Nick Ufer Date: Fri, 4 Nov 2022 13:37:20 +0100 Subject: [PATCH 1/2] feat: adds support for required supporting files --- .../codegen/DefaultGenerator.java | 14 ++++++++----- .../openapitools/codegen/SupportingFile.java | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index 2da1e53f84e2..bf6021381748 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -703,11 +703,6 @@ void generateApis(List files, List allOperations, List files, Map bundle) { - if (!generateSupportingFiles) { - // TODO: process these anyway and report via dryRun? - LOGGER.info("Skipping generation of supporting files."); - return; - } Set supportingFilesToGenerate = null; String supportingFiles = GlobalSettings.getProperty(CodegenConstants.SUPPORTING_FILES); if (supportingFiles != null && !supportingFiles.isEmpty()) { @@ -715,6 +710,9 @@ private void generateSupportingFiles(List files, Map bundl } for (SupportingFile support : config.supportingFiles()) { + if (!generateSupportingFiles && !support.isRequired()) { + continue; + } try { String outputFolder = config.outputFolder(); if (StringUtils.isNotEmpty(support.getFolder())) { @@ -747,6 +745,12 @@ private void generateSupportingFiles(List files, Map bundl } } + if (!generateSupportingFiles) { + // TODO: process these anyway and report via dryRun? + LOGGER.info("Skipping generation of not required supporting files."); + return; + } + // Consider .openapi-generator-ignore a supporting file // Output .openapi-generator-ignore if it doesn't exist and wasn't explicitly created by a generator final String openapiGeneratorIgnore = ".openapi-generator-ignore"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java index 2d72fa2f2168..125290e37905 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/SupportingFile.java @@ -32,15 +32,28 @@ */ public class SupportingFile extends TemplateDefinition { private boolean canOverwrite = true; + /** + * Whether the {@link SupportingFile} is required for all generated code. + */ + private boolean required = false; public SupportingFile(String templateFile, String destinationFilename) { this(templateFile, "", destinationFilename); } + public SupportingFile(String templateFile, String destinationFilename, boolean required) { + this(templateFile, "", destinationFilename, required); + } + public SupportingFile(String templateFile, String folder, String destinationFilename) { super(templateFile, folder, destinationFilename); } + public SupportingFile(String templateFile, String folder, String destinationFilename, boolean required) { + super(templateFile, folder, destinationFilename); + this.required = required; + } + /** * Identifies this instance as referring to a supporting file which should not overwrite a file of the same name. * @@ -84,6 +97,13 @@ public boolean isCanOverwrite() { return canOverwrite; } + /** + * @return whether the {@link SupportingFile} is required for all generated code. + */ + public boolean isRequired() { + return required; + } + @Override public int hashCode() { return Objects.hash(super.hashCode(), isCanOverwrite()); From ff369a51bcd685f12041adfb539afd7979fa37ab Mon Sep 17 00:00:00 2001 From: Nick Ufer Date: Fri, 4 Nov 2022 13:38:33 +0100 Subject: [PATCH 2/2] [GO] fix: fixes missing utils.go file when not generating supporting files by marking it as required --- .../org/openapitools/codegen/languages/GoClientCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java index 6f3dae4915c9..e23b764f937a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoClientCodegen.java @@ -269,7 +269,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod")); supportingFiles.add(new SupportingFile("go.sum", "", "go.sum")); supportingFiles.add(new SupportingFile(".travis.yml", "", ".travis.yml")); - supportingFiles.add(new SupportingFile("utils.mustache", "", "utils.go")); + supportingFiles.add(new SupportingFile("utils.mustache", "", "utils.go", true)); } public void setUseOneOfDiscriminatorLookup(boolean useOneOfDiscriminatorLookup) {