Skip to content

Commit 07e2b7f

Browse files
committed
Merge remote-tracking branch 'origin/3.0.0' into generator-issue-334
2 parents 3967e6d + 305924c commit 07e2b7f

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/v3/maven/plugin/CodeGenMojo.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.List;
3535
import java.util.Map;
3636

37+
import io.swagger.codegen.v3.CodegenArgument;
3738
import org.apache.maven.plugin.AbstractMojo;
3839
import org.apache.maven.plugin.MojoExecutionException;
3940
import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -423,10 +424,12 @@ public void execute() throws MojoExecutionException {
423424
System.clearProperty(CodegenConstants.SUPPORTING_FILES);
424425
}
425426

426-
System.setProperty(CodegenConstants.MODEL_TESTS, generateModelTests.toString());
427-
System.setProperty(CodegenConstants.MODEL_DOCS, generateModelDocumentation.toString());
428-
System.setProperty(CodegenConstants.API_TESTS, generateApiTests.toString());
429-
System.setProperty(CodegenConstants.API_DOCS, generateApiDocumentation.toString());
427+
// do not override config if already present (e.g. config read from file)
428+
addCodegenArgumentIfAbsent(CodegenConstants.MODEL_TESTS_OPTION, "boolean", generateModelTests.toString(), configurator);
429+
addCodegenArgumentIfAbsent(CodegenConstants.API_TESTS_OPTION , "boolean", generateApiTests.toString(), configurator);
430+
addCodegenArgumentIfAbsent(CodegenConstants.MODEL_DOCS_OPTION, "boolean", generateModelDocumentation.toString(), configurator);
431+
addCodegenArgumentIfAbsent(CodegenConstants.API_DOCS_OPTION, "boolean", generateApiDocumentation.toString(), configurator);
432+
430433
System.setProperty(CodegenConstants.WITH_XML, withXml.toString());
431434

432435
if (configOptions != null) {
@@ -519,7 +522,6 @@ public void execute() throws MojoExecutionException {
519522
configurator.addSystemProperty(key, value);
520523
}
521524
}
522-
523525
final ClientOptInput input = configurator.toClientOptInput();
524526
final CodegenConfig config = input.getConfig();
525527

@@ -578,4 +580,12 @@ private void addCompileSourceRootIfConfigured() {
578580
}
579581
}
580582
}
583+
584+
585+
private void addCodegenArgumentIfAbsent(String option, String type, String value, CodegenConfigurator configurator) {
586+
if (configurator.getCodegenArguments().stream()
587+
.noneMatch(codegenArgument -> option.equals(codegenArgument.getOption()))) {
588+
configurator.getCodegenArguments().add(new CodegenArgument().option(option).type(type).value(value));
589+
}
590+
}
581591
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/config/CodegenConfigurator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.nio.file.Files;
3232
import java.nio.file.Path;
3333
import java.nio.file.Paths;
34+
import java.util.ArrayList;
3435
import java.util.HashMap;
3536
import java.util.HashSet;
3637
import java.util.List;
@@ -70,7 +71,7 @@ public class CodegenConfigurator implements Serializable {
7071
private String artifactVersion;
7172
private String library;
7273
private String ignoreFileOverride;
73-
private List<CodegenArgument> codegenArguments;
74+
private List<CodegenArgument> codegenArguments = new ArrayList<>();
7475
private Map<String, String> systemProperties = new HashMap<String, String>();
7576
private Map<String, String> instantiationTypes = new HashMap<String, String>();
7677
private Map<String, String> typeMappings = new HashMap<String, String>();
@@ -581,6 +582,10 @@ public void setCodegenArguments(List<CodegenArgument> codegenArguments) {
581582
this.codegenArguments = codegenArguments;
582583
}
583584

585+
public List<CodegenArgument> getCodegenArguments() {
586+
return this.codegenArguments;
587+
}
588+
584589
private void setSystemProperties() {
585590
for (Map.Entry<String, String> entry : systemProperties.entrySet()) {
586591
System.setProperty(entry.getKey(), entry.getValue());

0 commit comments

Comments
 (0)