Skip to content

Commit 7efda59

Browse files
UnklePigwing328
authored andcommitted
Fix issue with useBeanValidation: 1. Default value not reflected in help (#160)
message. 2. When default is true, it can't be overridden to false.
1 parent 917b6e0 commit 7efda59

5 files changed

Lines changed: 42 additions & 34 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,27 @@ public void setEnum(Map<String, String> enumValues) {
9191
this.enumValues = enumValues;
9292
}
9393

94+
/**
95+
* Create new boolean command line option with a default of false
96+
*
97+
* @param opt Option name
98+
* @param description Option description
99+
* @return the CliOption created
100+
*/
94101
public static CliOption newBoolean(String opt, String description) {
95-
return new CliOption(opt, description, SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString());
102+
return newBoolean(opt, description, false);
103+
}
104+
105+
/**
106+
* Create new boolean command line option with the provided value as default
107+
*
108+
* @param opt Option name
109+
* @param description Option description
110+
* @param defaultValue the default value to use if option not specified
111+
* @return
112+
*/
113+
public static CliOption newBoolean(String opt, String description, boolean defaultValue) {
114+
return new CliOption(opt, description, SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(String.valueOf(defaultValue));
96115
}
97116

98117
public static CliOption newString(String opt, String description) {

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaJAXRSServerCodegen.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public AbstractJavaJAXRSServerCodegen() {
7373
cliOptions.add(new CliOption(CodegenConstants.IMPL_FOLDER, CodegenConstants.IMPL_FOLDER_DESC));
7474
cliOptions.add(new CliOption("title", "a title describing the application"));
7575

76-
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations"));
76+
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations",useBeanValidation));
7777
cliOptions.add(new CliOption(SERVER_PORT, "The port on which the server should be started"));
7878
}
7979

@@ -99,9 +99,7 @@ public void processOpts() {
9999
this.setUseBeanValidation(convertPropertyToBoolean(USE_BEANVALIDATION));
100100
}
101101

102-
if (useBeanValidation) {
103-
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
104-
}
102+
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
105103

106104
}
107105

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public JavaJAXRSCXFCDIServerCodegen() {
5151
embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME
5252
+ File.separator + "cxf-cdi";
5353

54-
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations"));
54+
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations",useBeanValidation));
5555
}
5656

5757
@Override
@@ -67,9 +67,8 @@ public void processOpts() {
6767
this.setUseBeanValidation(convertPropertyToBoolean(USE_BEANVALIDATION));
6868
}
6969

70-
if (useBeanValidation) {
71-
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
72-
}
70+
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
71+
7372

7473
supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen
7574

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaResteasyEapServerCodegen.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ public JavaResteasyEapServerCodegen() {
5959

6060
embeddedTemplateDir = templateDir = "JavaJaxRS" + File.separator + "resteasy" + File.separator + "eap";
6161

62-
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations"));
63-
cliOptions.add(CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor"));
64-
cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use dynamic Swagger generator"));
62+
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations",useBeanValidation));
63+
cliOptions.add(CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor",generateJbossDeploymentDescriptor));
64+
cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use dynamic Swagger generator",useSwaggerFeature));
6565

6666
}
6767

@@ -88,17 +88,13 @@ public void processOpts() {
8888
this.setUseBeanValidation(convertPropertyToBoolean(USE_BEANVALIDATION));
8989
}
9090

91-
if (useBeanValidation) {
92-
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
93-
}
91+
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
9492

9593
if (additionalProperties.containsKey(USE_SWAGGER_FEATURE)) {
9694
this.setUseSwaggerFeature(convertPropertyToBoolean(USE_SWAGGER_FEATURE));
9795
}
9896

99-
if (useSwaggerFeature) {
100-
writePropertyBack(USE_SWAGGER_FEATURE, useSwaggerFeature);
101-
}
97+
writePropertyBack(USE_SWAGGER_FEATURE, useSwaggerFeature);
10298

10399
writeOptional(outputFolder, new SupportingFile("pom.mustache", "", "pom.xml"));
104100
writeOptional(outputFolder, new SupportingFile("gradle.mustache", "", "build.gradle"));

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103,19 +103,18 @@ public SpringCodegen() {
103103
cliOptions.add(new CliOption(TITLE, "server title name or client service name"));
104104
cliOptions.add(new CliOption(CONFIG_PACKAGE, "configuration package for generated code"));
105105
cliOptions.add(new CliOption(BASE_PACKAGE, "base package (invokerPackage) for generated code"));
106-
cliOptions.add(CliOption.newBoolean(INTERFACE_ONLY, "Whether to generate only API interface stubs without the server files."));
107-
cliOptions.add(CliOption.newBoolean(DELEGATE_PATTERN, "Whether to generate the server files using the delegate pattern"));
108-
cliOptions.add(CliOption.newBoolean(SINGLE_CONTENT_TYPES, "Whether to select only one produces/consumes content-type by operation."));
109-
cliOptions.add(CliOption.newBoolean(JAVA_8, "use java8 default interface"));
110-
cliOptions.add(CliOption.newBoolean(ASYNC, "use async Callable controllers"));
111-
cliOptions.add(CliOption.newBoolean(REACTIVE, "wrap responses in Mono/Flux Reactor types (spring-boot only)"));
106+
cliOptions.add(CliOption.newBoolean(INTERFACE_ONLY, "Whether to generate only API interface stubs without the server files.",interfaceOnly));
107+
cliOptions.add(CliOption.newBoolean(DELEGATE_PATTERN, "Whether to generate the server files using the delegate pattern",delegatePattern));
108+
cliOptions.add(CliOption.newBoolean(SINGLE_CONTENT_TYPES, "Whether to select only one produces/consumes content-type by operation.",singleContentTypes));
109+
cliOptions.add(CliOption.newBoolean(JAVA_8, "use java8 default interface",java8));
110+
cliOptions.add(CliOption.newBoolean(ASYNC, "use async Callable controllers",async));
111+
cliOptions.add(CliOption.newBoolean(REACTIVE, "wrap responses in Mono/Flux Reactor types (spring-boot only)",reactive));
112112
cliOptions.add(new CliOption(RESPONSE_WRAPPER, "wrap the responses in given type (Future,Callable,CompletableFuture,ListenableFuture,DeferredResult,HystrixCommand,RxObservable,RxSingle or fully qualified type)"));
113-
cliOptions.add(CliOption.newBoolean(USE_TAGS, "use tags for creating interface and controller classnames"));
114-
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations"));
115-
cliOptions.add(CliOption.newBoolean(IMPLICIT_HEADERS, "Use of @ApiImplicitParams for headers."));
116-
cliOptions.add(CliOption.newBoolean(OPENAPI_DOCKET_CONFIG, "Generate Spring OpenAPI Docket configuration class."));
117-
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,
118-
"Use Optional container for optional parameters"));
113+
cliOptions.add(CliOption.newBoolean(USE_TAGS, "use tags for creating interface and controller classnames",useTags));
114+
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations",useBeanValidation));
115+
cliOptions.add(CliOption.newBoolean(IMPLICIT_HEADERS, "Use of @ApiImplicitParams for headers.",implicitHeaders));
116+
cliOptions.add(CliOption.newBoolean(OPENAPI_DOCKET_CONFIG, "Generate Spring OpenAPI Docket configuration class.",openapiDocketConfig));
117+
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,"Use Optional container for optional parameters",useOptional));
119118

120119
supportedLibraries.put(SPRING_BOOT, "Spring-boot Server application using the SpringFox integration.");
121120
supportedLibraries.put(SPRING_MVC_LIBRARY, "Spring-MVC Server application using the SpringFox integration.");
@@ -219,15 +218,12 @@ public void processOpts() {
219218
if (additionalProperties.containsKey(USE_BEANVALIDATION)) {
220219
this.setUseBeanValidation(convertPropertyToBoolean(USE_BEANVALIDATION));
221220
}
221+
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
222222

223223
if (additionalProperties.containsKey(USE_OPTIONAL)) {
224224
this.setUseOptional(convertPropertyToBoolean(USE_OPTIONAL));
225225
}
226226

227-
if (useBeanValidation) {
228-
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
229-
}
230-
231227
if (additionalProperties.containsKey(IMPLICIT_HEADERS)) {
232228
this.setImplicitHeaders(Boolean.valueOf(additionalProperties.get(IMPLICIT_HEADERS).toString()));
233229
}

0 commit comments

Comments
 (0)