Skip to content

Commit b84321c

Browse files
authored
Merge pull request #8737 from swagger-api/generator-issue-178
added option to choose template engine.
2 parents d67e877 + ee957ef commit b84321c

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/v3/cli/cmd/Generate.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.swagger.codegen.v3.cli.cmd;
22

33
import com.fasterxml.jackson.databind.JsonNode;
4+
import io.swagger.codegen.v3.CodegenConstants;
45
import io.swagger.codegen.v3.cli.CLIHelper;
56
import io.swagger.codegen.v3.ClientOptInput;
67
import io.swagger.codegen.v3.CodegenArgument;
@@ -47,6 +48,7 @@ public class Generate implements Runnable {
4748
protected String spec;
4849
protected String templateDir;
4950
protected String templateVersion;
51+
protected String templateEngine;
5052
protected String auth;
5153
protected List<String> systemProperties = new ArrayList<>();
5254
protected String configFile;
@@ -99,6 +101,10 @@ public void setTemplateVersion(String templateVersion) {
99101
this.templateVersion = templateVersion;
100102
}
101103

104+
public void setTemplateEngine(String templateEngine) {
105+
this.templateEngine = templateEngine;
106+
}
107+
102108
public void setAuth(String auth) {
103109
this.auth = auth;
104110
}
@@ -318,6 +324,12 @@ public void run() {
318324
configurator.setCodegenArguments(codegenArguments);
319325
}
320326

327+
if (CodegenConstants.HANDLEBARS_TEMPLATE_ENGINE.equalsIgnoreCase(templateEngine)) {
328+
additionalProperties.add(String.format("%s=%s", CodegenConstants.TEMPLATE_ENGINE, CodegenConstants.HANDLEBARS_TEMPLATE_ENGINE));
329+
} else {
330+
additionalProperties.add(String.format("%s=%s", CodegenConstants.TEMPLATE_ENGINE, CodegenConstants.MUSTACHE_TEMPLATE_ENGINE));
331+
}
332+
321333
applySystemPropertiesKvpList(systemProperties, configurator);
322334
applyInstantiationTypesKvpList(instantiationTypes, configurator);
323335
applyImportMappingsKvpList(importMappings, configurator);

modules/swagger-codegen-cli/src/main/resources/oas3.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ components:
5050
title: "template version"
5151
description: "version of the template used on generation."
5252
x-option: "--template-version"
53+
templateEngine:
54+
type: "string"
55+
title: "template engine"
56+
description: "template engine to generate files, currently supported: 'mustache' and 'handlebars'."
57+
x-option: "--template-engine"
5358
auth:
5459
type: "string"
5560
title: "authorization"

modules/swagger-codegen-cli/src/test/java/io/swagger/codegen/v3/cli/cmd/GenerateTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ public void testExternalArgumentsFromFile() throws Exception {
623623

624624
Assert.assertEquals(generate.lang, "java");
625625
Assert.assertEquals(generate.library, "jersey2");
626-
Assert.assertEquals(generate.additionalProperties.size(), 2);
626+
Assert.assertEquals(generate.additionalProperties.size(), 3);
627627
Assert.assertEquals(generate.additionalProperties.get(0), "serializableModel=true");
628628
Assert.assertEquals(generate.additionalProperties.get(1), "withXml=true");
629629

@@ -636,7 +636,7 @@ public void testExternalArgumentsFromFile() throws Exception {
636636

637637
Assert.assertEquals(generate.lang, "java");
638638
Assert.assertEquals(generate.library, "jersey2");
639-
Assert.assertEquals(generate.additionalProperties.size(), 2);
639+
Assert.assertEquals(generate.additionalProperties.size(), 3);
640640
Assert.assertEquals(generate.additionalProperties.get(0), "serializableModel=true");
641641
Assert.assertEquals(generate.additionalProperties.get(1), "withXml=true");
642642
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/CodegenConstants.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ public static enum ENUM_PROPERTY_NAMING_TYPE {camelCase, PascalCase, snake_case,
230230
public static final String USE_OAS2 = "useOas2";
231231
public static final String USE_OAS2_DESC = "use OpenAPI v2.0 (Swagger 1.5.x)";
232232

233+
public static final String TEMPLATE_ENGINE = "templateEngine";
234+
233235
public static final String IS_ENUM_EXT_NAME = PREFIX_IS + "enum";
234236
public static final String IS_ALIAS_EXT_NAME = PREFIX_IS + "alias";
235237
public static final String IS_ARRAY_MODEL_EXT_NAME = PREFIX_IS + "array-model";
@@ -323,4 +325,7 @@ public static enum ENUM_PROPERTY_NAMING_TYPE {camelCase, PascalCase, snake_case,
323325
public static final String API_TESTS_OPTION = "--api-tests";
324326
public static final String USE_OAS2_OPTION = "--use-oas2";
325327

328+
public static final String HANDLEBARS_TEMPLATE_ENGINE = "handlebars";
329+
public static final String MUSTACHE_TEMPLATE_ENGINE = "mustache";
330+
326331
}

0 commit comments

Comments
 (0)