From f13b4deb2ea7b39ee1a8ffbd2114cd4bf87c802e Mon Sep 17 00:00:00 2001 From: evigeant Date: Mon, 25 Jan 2016 21:22:18 -0500 Subject: [PATCH] Added warnings when the additionalProperties are not defined in the cliOptions of a language. --- .../swagger/codegen/plugin/CodeGenMojo.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index a9d29a31361..a14203e7592 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -30,7 +30,9 @@ import org.apache.maven.project.MavenProject; import java.io.File; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import static io.swagger.codegen.plugin.AdditionalParams.*; @@ -152,17 +154,20 @@ public class CodeGenMojo extends AbstractMojo { if (null != invokerPackage) { config.additionalProperties().put(INVOKER_PACKAGE_PARAM, invokerPackage); } - + + Set definedOptions = new HashSet(); + for (CliOption langCliOption : config.cliOptions()) { + definedOptions.add(langCliOption.getOpt()); + } + if (configOptions != null) { - for(Map.Entry configEntry : configOptions.entrySet()) { - config.additionalProperties().put(configEntry.getKey().toString(), configEntry.getValue()); - } + addAdditionalProperties(config, definedOptions, configOptions); } if (null != configurationFile) { Config genConfig = ConfigParser.read(configurationFile); if (null != genConfig) { - config.additionalProperties().putAll(genConfig.getOptions()); + addAdditionalProperties(config, definedOptions, genConfig.getOptions()); } else { throw new RuntimeException("Unable to read configuration file"); } @@ -193,4 +198,13 @@ public class CodeGenMojo extends AbstractMojo { project.addCompileSourceRoot(output.toString()); } } + + private void addAdditionalProperties(CodegenConfig config, Set definedOptions, Map configOptions) { + for(Map.Entry configEntry : configOptions.entrySet()) { + config.additionalProperties().put(configEntry.getKey().toString(), configEntry.getValue()); + if(!definedOptions.contains(configEntry.getKey())) { + getLog().warn("Additional property: " + configEntry.getKey() + " is not defined for this language."); + } + } + } }