From 984b645ea191ce65f65dc430bdbdfdaf54fe75ec Mon Sep 17 00:00:00 2001 From: cbornet Date: Thu, 1 Oct 2015 11:09:25 +0200 Subject: [PATCH] add options to online generator Fix #1313 --- .../swagger/generator/online/Generator.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/modules/swagger-generator/src/main/java/io/swagger/generator/online/Generator.java b/modules/swagger-generator/src/main/java/io/swagger/generator/online/Generator.java index 2faef30744b..775c96cda2e 100644 --- a/modules/swagger-generator/src/main/java/io/swagger/generator/online/Generator.java +++ b/modules/swagger-generator/src/main/java/io/swagger/generator/online/Generator.java @@ -5,6 +5,7 @@ import io.swagger.codegen.ClientOptInput; import io.swagger.codegen.ClientOpts; import io.swagger.codegen.Codegen; import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.CodegenConfigLoader; import io.swagger.generator.exception.ApiException; import io.swagger.generator.exception.BadRequestException; import io.swagger.generator.model.GeneratorInput; @@ -16,6 +17,8 @@ import io.swagger.util.Json; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; + import java.io.File; import java.util.ArrayList; import java.util.List; @@ -52,10 +55,24 @@ public class Generator { .opts(clientOpts) .swagger(swagger); - CodegenConfig codegenConfig = Codegen.getConfig(language); - if (codegenConfig == null) { + CodegenConfig codegenConfig=null; + try { + codegenConfig = CodegenConfigLoader.forName(language); + } catch(RuntimeException e) { throw new BadRequestException(400, "Unsupported target " + language + " supplied"); } + + if (opts.getOptions() != null) { + for(String key : new String[]{"apiPackage", "modelPackage", "invokerPackage", "groupId", "artifactId", "artifactVersion"}) { + if(isNotEmpty(opts.getOptions().get(key))) { + codegenConfig.additionalProperties().put(key , opts.getOptions().get(key)); + } + } + + if (isNotEmpty(opts.getOptions().get("library"))) { + codegenConfig.setLibrary(opts.getOptions().get("library")); + } + } codegenConfig.setOutputDir(outputFolder);