Skip to content

Commit 1c5d5f0

Browse files
committed
tweaked micronaut templates to fix build errors
1 parent f4cd265 commit 1c5d5f0

File tree

10 files changed

+60
-64
lines changed

10 files changed

+60
-64
lines changed

src/main/java/io/swagger/codegen/v3/generators/java/MicronautCodegen.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@
3131
public class MicronautCodegen extends AbstractJavaCodegen implements BeanValidationFeatures, OptionalFeatures {
3232

3333
private static Logger LOGGER = LoggerFactory.getLogger(MicronautCodegen.class);
34-
private static final String DEFAULT_LIBRARY = "rxjava2";
34+
private static final String DEFAULT_LIBRARY = "rxjava3";
3535
private static final String RXJAVA3_LIBRARY = "rxjava3";
36+
private static final String RXJAVA2_LIBRARY = "rxjava2";
3637
private static final String REACTOR_LIBRARY = "reactor";
3738
private static final String TITLE = "title";
3839
private static final String CONFIG_PACKAGE = "configPackage";
@@ -86,13 +87,12 @@ private void init() {
8687
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,
8788
"Use Optional container for optional parameters"));
8889

89-
supportedLibraries.put(DEFAULT_LIBRARY, "Java Micronaut Server application with RxJava2 reactive streams implementation");
90-
supportedLibraries.put(RXJAVA3_LIBRARY, "Java Micronaut Server application with RxJava3 reactive streams implementation");
90+
supportedLibraries.put(DEFAULT_LIBRARY, "Java Micronaut Server application with RxJava3 reactive streams implementation");
91+
supportedLibraries.put(USE_RXJAVA2, "Java Micronaut Server application with RxJava2 reactive streams implementation");
9192
supportedLibraries.put(REACTOR_LIBRARY, "Java Micronaut Server application with Project Reactor reactive streams implementation");
9293
setLibrary(DEFAULT_LIBRARY);
9394

9495
CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
95-
library.setDefault(DEFAULT_LIBRARY);
9696
library.setEnum(supportedLibraries);
9797
library.setDefault(DEFAULT_LIBRARY);
9898
cliOptions.add(library);
@@ -152,8 +152,8 @@ public void processOpts() {
152152
this.setBasePackage((String) additionalProperties.get(BASE_PACKAGE));
153153
}
154154

155-
if (additionalProperties.containsKey(USE_TAGS)) {
156-
this.setUseTags(Boolean.valueOf(additionalProperties.get(USE_TAGS).toString()));
155+
if (additionalProperties.get(USE_TAGS) != null) {
156+
this.setUseTags(Boolean.parseBoolean(additionalProperties.get(USE_TAGS).toString()));
157157
}
158158

159159
if (additionalProperties.containsKey(USE_BEANVALIDATION)) {
@@ -165,21 +165,22 @@ public void processOpts() {
165165
}
166166

167167
boolean skipSupportFiles = false;
168-
if (additionalProperties.containsKey(SKIP_SUPPORT_FILES)) {
169-
skipSupportFiles = Boolean.valueOf(additionalProperties.get(SKIP_SUPPORT_FILES).toString());
168+
if (additionalProperties.get(SKIP_SUPPORT_FILES) != null) {
169+
skipSupportFiles = Boolean.parseBoolean(additionalProperties.get(SKIP_SUPPORT_FILES).toString());
170170
}
171171

172172
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
173173

174-
if (additionalProperties.containsKey(IMPLICIT_HEADERS)) {
175-
this.setImplicitHeaders(Boolean.valueOf(additionalProperties.get(IMPLICIT_HEADERS).toString()));
174+
if (additionalProperties.get(IMPLICIT_HEADERS) != null) {
175+
this.setImplicitHeaders(Boolean.parseBoolean(additionalProperties.get(IMPLICIT_HEADERS).toString()));
176176
}
177177

178178
writePropertyBack(USE_OPTIONAL, useOptional);
179-
180-
additionalProperties.put(USE_RXJAVA, isRxJava2Library() || isRxJava3Library());
181-
additionalProperties.put(USE_RXJAVA2, isRxJava2Library());
182-
additionalProperties.put(USE_RXJAVA3, isRxJava3Library());
179+
if (isRxJava2Library()) {
180+
additionalProperties.put(USE_RXJAVA2, true);
181+
} else {
182+
additionalProperties.put(USE_RXJAVA3, isRxJava3Library());
183+
}
183184
additionalProperties.put(USE_REACTOR, isReactorLibrary());
184185

185186
if (!skipSupportFiles) {
@@ -189,7 +190,7 @@ public void processOpts() {
189190
supportingFiles.add(new SupportingFile("mvnw.cmd", "", "mvnw.cmd"));
190191
supportingFiles.add(new SupportingFile("unsupportedOperationExceptionHandler.mustache",
191192
(sourceFolder + File.separator + configPackage).replace(".", File.separator), "UnsupportedOperationExceptionHandler.java"));
192-
supportingFiles.add(new SupportingFile("mainApplication.mustache", (sourceFolder + File.separator).replace(".", File.separator), "MainApplication.java"));
193+
supportingFiles.add(new SupportingFile("mainApplication.mustache", (sourceFolder + File.separator + basePackage).replace(".", File.separator), "MainApplication.java"));
193194
apiTemplateFiles.put("apiController.mustache", "Controller.java");
194195
}
195196
addHandlebarsLambdas(additionalProperties);
@@ -553,7 +554,7 @@ public void addHandlebarHelpers(Handlebars handlebars) {
553554
}
554555

555556
private boolean isRxJava2Library() {
556-
return library.equals(DEFAULT_LIBRARY);
557+
return library.equals(RXJAVA2_LIBRARY);
557558
}
558559

559560
private boolean isRxJava3Library() {

src/main/resources/handlebars/JavaMicronaut/api.mustache

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ package {{package}};
1010
import com.fasterxml.jackson.databind.ObjectMapper;
1111
import io.micronaut.http.*;
1212
import io.micronaut.http.annotation.*;
13+
{{#useRxJava3}}
14+
import io.reactivex.rxjava3.core.Single;
15+
{{/useRxJava3}}
16+
{{^useRxJava3}}
1317
{{#useRxJava2}}
1418
import io.reactivex.Single;
1519
{{/useRxJava2}}
16-
{{#useRxJava3}}
17-
import io.reactivex.rxjava3.core.Single;
1820
{{/useRxJava3}}
1921
import io.swagger.v3.oas.annotations.*;
2022
import io.swagger.v3.oas.annotations.responses.*;
@@ -61,8 +63,8 @@ public interface {{classname}} {
6163
})
6264
{{/implicitHeaders}}
6365
@{{#lambda.capitalise}}{{httpMethod}}{{/lambda.capitalise}}(value = "{{{path}}}"{{#hasProduces}}, produces = { {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }{{/hasProduces}}{{#hasConsumes}}, consumes = {{braces "left"}}{{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}}{{braces "right"}}{{/hasConsumes}})
64-
default {{>publisher}}<HttpResponse<{{>returnTypes}}>> {{operationId}}({{#parameters}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>cookieParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/parameters}}) {
65-
return {{#useRxJava}}Single{{/useRxJava}}{{#useReactor}}Mono{{/useReactor}}.fromCallable(() -> {
66+
default Single<HttpResponse<{{>returnTypes}}>> {{operationId}}({{#parameters}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>cookieParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/parameters}}) {
67+
return {{^useReactor}}Single{{/useReactor}}{{#useReactor}}Mono{{/useReactor}}.fromCallable(() -> {
6668
throw new UnsupportedOperationException();
6769
});
6870
}

src/main/resources/handlebars/JavaMicronaut/apiController.mustache

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ import {{import}};
66
{{/imports}}
77
import io.micronaut.http.annotation.Controller;
88
import io.micronaut.http.HttpResponse;
9+
{{#useRxJava3}}
10+
import io.reactivex.rxjava3.core.Single;
11+
{{/useRxJava3}}
12+
{{^useRxJava3}}
913
{{#useRxJava2}}
1014
import io.reactivex.Single;
1115
{{/useRxJava2}}
12-
{{#useRxJava3}}
13-
import io.reactivex.rxjava3.core.Single;
1416
{{/useRxJava3}}
1517
{{#useReactor}}
1618
import org.reactivestreams.Publisher;
@@ -35,7 +37,7 @@ public class {{classname}}Controller implements {{classname}} {
3537
{{#contents}}
3638

3739
@Override
38-
public {{>publisher}}<HttpResponse<{{>returnTypes}}>> {{operationId}}({{#parameters}}{{#useBeanValidation}}{{!
40+
public Single<HttpResponse<{{>returnTypes}}>> {{operationId}}({{#parameters}}{{#useBeanValidation}}{{!
3941
Bean validation spec for path parameters (PathParam is always required)
4042
}}{{#isPathParam}}{{>beanValidationParams}}{{/isPathParam}}{{!
4143
Bean validation spec for any other parameters

src/main/resources/handlebars/JavaMicronaut/api_test.mustache

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,20 @@ class {{classname}}ControllerTest {
2525
{{#operations}}
2626
{{#operation}}
2727
{{#contents}}
28+
{{#@first}}
2829
@Test
29-
void {{operationId}}{{#isForm}}WithForm{{/isForm}}Test() {
30+
void {{operationId}}{{#isForm}}Form{{/isForm}}Test() {
3031
{{#parameters}}
31-
{{{dataType}}} {{paramName}} = {{{example}}};
32+
{{{dataType}}} {{paramName}} = null;
3233
{{/parameters}}
3334
try {
34-
{{#useReactor}}Mono.from({{/useReactor}}api.{{operationId}}({{#parameters}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/parameters}}){{#useReactor}}){{/useReactor}}
35-
{{#useRxJava}}
36-
.blockingGet();
37-
{{/useRxJava}}
38-
{{#useReactor}}
39-
.block();
40-
{{/useReactor}}
35+
//TODO: {{#useReactor}}Mono.from({{/useReactor}}api.{{operationId}}({{#parameters}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/parameters}}){{#useReactor}}){{/useReactor}}{{^useReactor}}.blockingGet();{{/useReactor}}{{#useReactor}}.block();{{/useReactor}}
4136
} catch (UnsupportedOperationException e) {
4237
assumeTrue(false, "API is not yet implemented");
4338
}
4439
}
4540

41+
{{/@first}}
4642
{{/contents}}
4743
{{/operation}}
4844
{{/operations}}

src/main/resources/handlebars/JavaMicronaut/enumClass.mustache

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,16 @@
22
* {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}}
33
*/
44
public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {
5+
{{#allowableValues}}
6+
{{#enumVars}}
57
{{#gson}}
6-
{{#allowableValues}}
7-
{{#enumVars}}
8-
@SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}})
9-
{{{name}}}({{{value}}}){{^@last}},
10-
{{/@last}}{{#@last}};{{/@last}}
11-
{{/enumVars}}
12-
{{/allowableValues}}
13-
{{/gson}}
14-
{{^gson}}
15-
{{#allowableValues}}
16-
{{#enumVars}}
17-
{{{name}}}({{{value}}}){{^@last}},
18-
{{/@last}}{{#@last}};{{/@last}}
19-
{{/enumVars}}
20-
{{/allowableValues}}
8+
{{#value}}
9+
@SerializedName({{{toQuotedWord value}}})
10+
{{/value}}
2111
{{/gson}}
12+
{{{name}}}({{#value}}{{{value}}}{{/value}}{{^value}}null{{/value}}){{^@last}},{{/@last}}{{#@last}};{{/@last}}
13+
{{/enumVars}}
14+
{{/allowableValues}}
2215

2316
private {{{datatype}}} value;
2417

src/main/resources/handlebars/JavaMicronaut/enumOuterClass.mustache

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@ import com.fasterxml.jackson.annotation.JsonCreator;
66
* {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}}
77
*/
88
public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} {
9-
{{#gson}}
10-
{{#allowableValues}}{{#enumVars}}
11-
@SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}})
12-
{{{name}}}({{{value}}}){{^@last}},
13-
{{/@last}}{{#@last}};{{/@last}}{{/enumVars}}{{/allowableValues}}
14-
{{/gson}}
15-
{{^gson}}
16-
{{#allowableValues}}{{#enumVars}}
17-
{{{name}}}({{{value}}}){{^@last}},
18-
{{/@last}}{{#@last}};{{/@last}}{{/enumVars}}{{/allowableValues}}
19-
{{/gson}}
9+
{{#allowableValues}}
10+
{{#enumVars}}
11+
{{#gson}}
12+
{{#value}}
13+
@SerializedName({{{toQuotedWord value}}})
14+
{{/value}}
15+
{{/gson}}
16+
{{{name}}}({{#value}}{{{value}}}{{/value}}{{^value}}null{{/value}}){{^@last}},{{/@last}}{{#@last}};{{/@last}}
17+
{{/enumVars}}
18+
{{/allowableValues}}
2019

2120
private {{{dataType}}} value;
2221

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#isFormParam}}{{#notFile}}{{>nullableBeanValidationParams}}@Parameter(description = "{{{description}}}") @Body(value = "{{baseName}}") {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@Parameter(description = "file detail") {{#useBeanValidation}}@Valid {{/useBeanValidation}}MultipartFile {{baseName}}{{/isFile}}{{/isFormParam}}
1+
{{#isFormParam}}{{#notFile}}{{>nullableBeanValidationParams}}@Parameter(description = "{{{description}}}") @Body(value = "{{baseName}}") {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@Parameter(description = "file detail") {{#useBeanValidation}}@Valid {{/useBeanValidation}}File {{baseName}}{{/isFile}}{{/isFormParam}}

src/main/resources/handlebars/JavaMicronaut/mainApplication.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.info.*;
88
info = @Info(
99
title = "{{appName}}",
1010
version = "{{appVersion}}",
11-
description = "{{appDescription}}",
11+
description = "{{{appDescription}}}",
1212
contact = @Contact(
1313
name = "{{infoName}}",
1414
email = "{{infoEmail}}"

src/main/resources/handlebars/JavaMicronaut/pom.mustache

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,17 @@
5959
<scope>compile</scope>
6060
</dependency>
6161
<dependency>
62+
{{#useRxJava3}}
63+
<groupId>io.micronaut.rxjava3</groupId>
64+
<artifactId>micronaut-rxjava3</artifactId>
65+
{{/useRxJava3}}
66+
{{^useRxJava3}}
6267
{{#useRxJava2}}
6368
<groupId>io.micronaut.rxjava2</groupId>
6469
<artifactId>micronaut-rxjava2</artifactId>
6570
{{/useRxJava2}}
66-
{{#useRxJava3}}
67-
<groupId>io.micronaut.rxjava3</groupId>
68-
<artifactId>micronaut-rxjava3</artifactId>
6971
{{/useRxJava3}}
72+
7073
{{#useReactor}}
7174
<groupId>io.micronaut.reactor</groupId>
7275
<artifactId>micronaut-reactor</artifactId>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#useRxJava}}Single{{/useRxJava}}{{#useReactor}}Publisher{{/useReactor}}
1+
{{#useReactor}}Publisher{{/useReactor}}{{^useReactor}}Single{{/useReactor}}

0 commit comments

Comments
 (0)