Merge pull request #1317 from cbornet/online_options

Add options to online generator
This commit is contained in:
wing328 2015-10-06 12:00:51 +08:00
commit f8485f26d3

View File

@ -5,6 +5,7 @@ import io.swagger.codegen.ClientOptInput;
import io.swagger.codegen.ClientOpts; import io.swagger.codegen.ClientOpts;
import io.swagger.codegen.Codegen; import io.swagger.codegen.Codegen;
import io.swagger.codegen.CodegenConfig; import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.CodegenConfigLoader;
import io.swagger.generator.exception.ApiException; import io.swagger.generator.exception.ApiException;
import io.swagger.generator.exception.BadRequestException; import io.swagger.generator.exception.BadRequestException;
import io.swagger.generator.model.GeneratorInput; import io.swagger.generator.model.GeneratorInput;
@ -16,6 +17,8 @@ import io.swagger.util.Json;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -52,11 +55,25 @@ public class Generator {
.opts(clientOpts) .opts(clientOpts)
.swagger(swagger); .swagger(swagger);
CodegenConfig codegenConfig = Codegen.getConfig(language); CodegenConfig codegenConfig=null;
if (codegenConfig == null) { try {
codegenConfig = CodegenConfigLoader.forName(language);
} catch(RuntimeException e) {
throw new BadRequestException(400, "Unsupported target " + language + " supplied"); 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); codegenConfig.setOutputDir(outputFolder);
Json.prettyPrint(clientOpts); Json.prettyPrint(clientOpts);