Skip to content

Commit 5a4a738

Browse files
committed
updated spring generator to work with java 11
1 parent 74e2b27 commit 5a4a738

File tree

7 files changed

+91
-48
lines changed

7 files changed

+91
-48
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class SpringCodegen extends AbstractJavaCodegen
2929
public static final String DELEGATE_PATTERN = "delegatePattern";
3030
public static final String SINGLE_CONTENT_TYPES = "singleContentTypes";
3131
public static final String JAVA_8 = "java8";
32+
public static final String JAVA_11 = "java11";
3233
public static final String ASYNC = "async";
3334
public static final String RESPONSE_WRAPPER = "responseWrapper";
3435
public static final String USE_TAGS = "useTags";
@@ -47,6 +48,7 @@ public class SpringCodegen extends AbstractJavaCodegen
4748
protected boolean delegateMethod = false;
4849
protected boolean singleContentTypes = false;
4950
protected boolean java8 = false;
51+
protected boolean java11 = false;
5052
protected boolean async = false;
5153
protected String responseWrapper = "";
5254
protected boolean useTags = false;
@@ -134,6 +136,15 @@ public void processOpts() {
134136
setDateLibrary("java8");
135137
}
136138
}
139+
if (additionalProperties.containsKey(JAVA_11)) {
140+
this.setJava8(Boolean.valueOf(additionalProperties.get(JAVA_11).toString()));
141+
}
142+
if (this.java11) {
143+
additionalProperties.put("javaVersion", "11");
144+
additionalProperties.put("jdk11", "true");
145+
}
146+
147+
additionalProperties.put("isJava8or11", this.java8 || this.java11);
137148

138149
// set invokerPackage as basePackage
139150
if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) {
@@ -174,10 +185,6 @@ public void processOpts() {
174185
this.setSingleContentTypes(Boolean.valueOf(additionalProperties.get(SINGLE_CONTENT_TYPES).toString()));
175186
}
176187

177-
if (additionalProperties.containsKey(JAVA_8)) {
178-
this.setJava8(Boolean.valueOf(additionalProperties.get(JAVA_8).toString()));
179-
}
180-
181188
if (additionalProperties.containsKey(ASYNC)) {
182189
this.setAsync(Boolean.valueOf(additionalProperties.get(ASYNC).toString()));
183190
}
@@ -301,7 +308,7 @@ public void processOpts() {
301308
}
302309
}
303310

304-
if ((!this.delegatePattern && this.java8) || this.delegateMethod) {
311+
if ((!this.delegatePattern && (this.java8 || this.java11)) || this.delegateMethod) {
305312
additionalProperties.put("jdk8-no-delegate", true);
306313
}
307314

@@ -312,8 +319,6 @@ public void processOpts() {
312319
}
313320

314321
if (this.java8) {
315-
additionalProperties.put("javaVersion", "1.8");
316-
additionalProperties.put("jdk8", "true");
317322
if (this.async) {
318323
additionalProperties.put(RESPONSE_WRAPPER, "CompletableFuture");
319324
}
@@ -657,6 +662,8 @@ public void setSingleContentTypes(boolean singleContentTypes) {
657662

658663
public void setJava8(boolean java8) { this.java8 = java8; }
659664

665+
public void setJava11(boolean java11) { this.java11 = java11; }
666+
660667
public void setAsync(boolean async) { this.async = async; }
661668

662669
public void setResponseWrapper(String responseWrapper) { this.responseWrapper = responseWrapper; }

modules/swagger-codegen/src/main/resources/JavaSpring/api.mustache

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import java.util.Optional;
4949
{{/useOptional}}
5050
{{/jdk8-no-delegate}}
5151
{{#async}}
52-
import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture{{/jdk8}};
52+
import java.util.concurrent.{{^isJava8or11}}Callable{{/isJava8or11}}{{#isJava8or11}}CompletableFuture{{/isJava8or11}};
5353
{{/async}}
5454
{{>generatedAnnotation}}
5555
{{#useBeanValidation}}
@@ -59,7 +59,7 @@ import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture
5959
{{#operations}}
6060
@RequestMapping(value = "{{{contextPath}}}")
6161
public interface {{classname}} {
62-
{{#jdk8}}
62+
{{#isJava8or11}}
6363

6464
{{^isDelegate}}
6565
Logger log = LoggerFactory.getLogger({{classname}}.class);
@@ -79,7 +79,7 @@ public interface {{classname}} {
7979
{{#isDelegate}}
8080
{{classname}}Delegate getDelegate();
8181
{{/isDelegate}}
82-
{{/jdk8}}
82+
{{/isJava8or11}}
8383
{{#operation}}
8484

8585
@ApiOperation(value = "{{{summary}}}", nickname = "{{{operationId}}}", notes = "{{{notes}}}"{{#returnBaseType}}, response = {{{returnBaseType}}}.class{{/returnBaseType}}{{#returnContainer}}, responseContainer = "{{{returnContainer}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = {
@@ -104,7 +104,7 @@ public interface {{classname}} {
104104
produces = { {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}{{#hasConsumes}}
105105
consumes = { {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}{{/singleContentTypes}}
106106
method = RequestMethod.{{httpMethod}})
107-
{{#jdk8}}{{#defaultInterfaces}}default {{/defaultInterfaces}}{{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}){{#jdk8}}{{^defaultInterfaces}};{{/defaultInterfaces}}{{#defaultInterfaces}} {
107+
{{#isJava8or11}}{{#defaultInterfaces}}default {{/defaultInterfaces}}{{/isJava8or11}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}){{#isJava8or11}}{{^defaultInterfaces}};{{/defaultInterfaces}}{{#defaultInterfaces}} {
108108
{{#delegate-method}}
109109
return {{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
110110
}
@@ -132,7 +132,7 @@ public interface {{classname}} {
132132
{{#isDelegate}}
133133
return getDelegate().{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
134134
{{/isDelegate}}
135-
}{{/defaultInterfaces}}{{/jdk8}}
135+
}{{/defaultInterfaces}}{{/isJava8or11}}
136136

137137
{{/operation}}
138138
}

modules/swagger-codegen/src/main/resources/JavaSpring/apiController.mustache

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package {{package}};
22

3-
{{^jdk8}}
3+
{{^isJava8or11}}
44
{{#imports}}import {{import}};
55
{{/imports}}
6-
{{/jdk8}}
6+
{{/isJava8or11}}
77
{{^isDelegate}}
88
import com.fasterxml.jackson.databind.ObjectMapper;
99
{{/isDelegate}}
10-
{{^jdk8}}
10+
{{^isJava8or11}}
1111
import io.swagger.annotations.*;
1212
import org.slf4j.Logger;
1313
import org.slf4j.LoggerFactory;
1414
import org.springframework.http.HttpStatus;
1515
import org.springframework.http.ResponseEntity;
16-
{{/jdk8}}
16+
{{/isJava8or11}}
1717
import org.springframework.stereotype.Controller;
18-
{{^jdk8}}
18+
{{^isJava8or11}}
1919
import org.springframework.web.bind.annotation.PathVariable;
2020
import org.springframework.web.bind.annotation.RequestBody;
2121
import org.springframework.web.bind.annotation.RequestHeader;
@@ -27,27 +27,27 @@ import org.springframework.web.multipart.MultipartFile;
2727
import javax.validation.constraints.*;
2828
import javax.validation.Valid;
2929
{{/useBeanValidation}}
30-
{{/jdk8}}
30+
{{/isJava8or11}}
3131
{{^isDelegate}}
3232
import javax.servlet.http.HttpServletRequest;
33-
{{#jdk8}}
33+
{{#isJava8or11}}
3434
import java.util.Optional;
35-
{{/jdk8}}
35+
{{/isJava8or11}}
3636
{{/isDelegate}}
3737
{{^jdk8-no-delegate}}
3838
{{#useOptional}}
3939
import java.util.Optional;
4040
{{/useOptional}}
4141
{{/jdk8-no-delegate}}
42-
{{^jdk8}}
42+
{{^isJava8or11}}
4343
{{^isDelegate}}
4444
import java.io.IOException;
4545
{{/isDelegate}}
4646
import java.util.List;
4747
{{#async}}
4848
import java.util.concurrent.Callable;
4949
{{/async}}
50-
{{/jdk8}}
50+
{{/isJava8or11}}
5151
{{>generatedAnnotation}}
5252
@Controller
5353
{{#operations}}
@@ -60,19 +60,19 @@ public class {{classname}}Controller implements {{classname}} {
6060
public {{classname}}Controller({{classname}}Delegate delegate) {
6161
this.delegate = delegate;
6262
}
63-
{{#jdk8}}
63+
{{#isJava8or11}}
6464

6565
@Override
6666
public {{classname}}Delegate getDelegate() {
6767
return delegate;
6868
}
69-
{{/jdk8}}
69+
{{/isJava8or11}}
7070
{{/isDelegate}}
7171
{{^isDelegate}}
72-
{{^jdk8}}
72+
{{^isJava8or11}}
7373
private static final Logger log = LoggerFactory.getLogger({{classname}}Controller.class);
7474

75-
{{/jdk8}}
75+
{{/isJava8or11}}
7676
private final ObjectMapper objectMapper;
7777

7878
private final HttpServletRequest request;
@@ -82,7 +82,7 @@ public class {{classname}}Controller implements {{classname}} {
8282
this.objectMapper = objectMapper;
8383
this.request = request;
8484
}
85-
{{#jdk8}}
85+
{{#isJava8or11}}
8686

8787
@Override
8888
public Optional<ObjectMapper> getObjectMapper() {
@@ -93,10 +93,10 @@ public class {{classname}}Controller implements {{classname}} {
9393
public Optional<HttpServletRequest> getRequest() {
9494
return Optional.ofNullable(request);
9595
}
96-
{{/jdk8}}
96+
{{/isJava8or11}}
9797

9898
{{/isDelegate}}
99-
{{^jdk8}}
99+
{{^isJava8or11}}
100100
{{#operation}}
101101
public {{#async}}Callable<{{/async}}ResponseEntity<{{>returnTypes}}>{{#async}}>{{/async}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}) {
102102
{{^isDelegate}}
@@ -142,6 +142,6 @@ public class {{classname}}Controller implements {{classname}} {
142142
}
143143

144144
{{/operation}}
145-
{{/jdk8}}
145+
{{/isJava8or11}}
146146
}
147147
{{/operations}}

modules/swagger-codegen/src/main/resources/JavaSpring/apiDelegate.mustache

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@ package {{package}};
22

33
{{#imports}}import {{import}};
44
{{/imports}}
5-
{{#jdk8}}
5+
{{#isJava8or11}}
66
import com.fasterxml.jackson.databind.ObjectMapper;
7-
{{/jdk8}}
7+
{{/isJava8or11}}
88
import io.swagger.annotations.*;
9-
{{#jdk8}}
9+
{{#isJava8or11}}
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212
import org.springframework.http.HttpStatus;
13-
{{/jdk8}}
13+
{{/isJava8or11}}
1414
import org.springframework.http.ResponseEntity;
1515
import org.springframework.web.multipart.MultipartFile;
16-
{{#jdk8}}
16+
{{#isJava8or11}}
1717
import java.io.IOException;
18-
{{/jdk8}}
18+
{{/isJava8or11}}
1919

20-
{{#jdk8}}
20+
{{#isJava8or11}}
2121
import javax.servlet.http.HttpServletRequest;
22-
{{/jdk8}}
22+
{{/isJava8or11}}
2323
import java.util.List;
24-
{{#jdk8}}
24+
{{#isJava8or11}}
2525
import java.util.Optional;
26-
{{/jdk8}}
27-
{{^jdk8}}
26+
{{/isJava8or11}}
27+
{{^isJava8or11}}
2828
{{#useOptional}}
2929
import java.util.Optional;
3030
{{/useOptional}}
31-
{{/jdk8}}
31+
{{/isJava8or11}}
3232
{{#async}}
33-
import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture{{/jdk8}};
33+
import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#isJava8or11}}CompletableFuture{{/isJava8or11}};
3434
{{/async}}
3535

3636
{{#operations}}
@@ -40,7 +40,7 @@ import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture
4040
*/
4141
{{>generatedAnnotation}}
4242
public interface {{classname}}Delegate {
43-
{{#jdk8}}
43+
{{#isJava8or11}}
4444

4545
Logger log = LoggerFactory.getLogger({{classname}}.class);
4646

@@ -55,7 +55,7 @@ public interface {{classname}}Delegate {
5555
default Optional<String> getAcceptHeader() {
5656
return getRequest().map(r -> r.getHeader("Accept"));
5757
}
58-
{{/jdk8}}
58+
{{/isJava8or11}}
5959

6060
{{#operation}}
6161
/**

modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-boot/pom.mustache

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<name>{{artifactId}}</name>
77
<version>{{artifactVersion}}</version>
88
<properties>
9-
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
9+
<java.version>{{#java11}}11{{/java11}}{{^java11}}{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}{{/java11}}</java.version>
1010
<maven.compiler.source>${java.version}</maven.compiler.source>
1111
<maven.compiler.target>${java.version}</maven.compiler.target>
1212
<springfox-version>2.7.0</springfox-version>
@@ -34,6 +34,24 @@
3434
</plugins>
3535
{{/interfaceOnly}}
3636
</build>
37+
{{#java11}}
38+
<profiles>
39+
<profile>
40+
<id>jdk11</id>
41+
<activation>
42+
<jdk>[11,)</jdk>
43+
</activation>
44+
<dependencies>
45+
<dependency>
46+
<groupId>com.sun.xml.ws</groupId>
47+
<artifactId>jaxws-rt</artifactId>
48+
<version>2.3.3</version>
49+
<type>pom</type>
50+
</dependency>
51+
</dependencies>
52+
</profile>
53+
</profiles>
54+
{{/java11}}
3755
<dependencies>
3856
<dependency>
3957
<groupId>org.springframework.boot</groupId>

modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-cloud/pom.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<name>{{artifactId}}</name>
77
<version>{{artifactVersion}}</version>
88
<properties>
9-
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
9+
<java.version>{{#java11}}11{{/java11}}{{^java11}}{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}{{/java11}}</java.version>
1010
<maven.compiler.source>${java.version}</maven.compiler.source>
1111
<maven.compiler.target>${java.version}</maven.compiler.target>
1212
<swagger-core-version>1.5.24</swagger-core-version>

modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/pom.mustache

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,24 @@
6565
</plugin>
6666
</plugins>
6767
</build>
68+
{{#java11}}
69+
<profiles>
70+
<profile>
71+
<id>jdk11</id>
72+
<activation>
73+
<jdk>[11,)</jdk>
74+
</activation>
75+
<dependencies>
76+
<dependency>
77+
<groupId>com.sun.xml.ws</groupId>
78+
<artifactId>jaxws-rt</artifactId>
79+
<version>2.3.3</version>
80+
<type>pom</type>
81+
</dependency>
82+
</dependencies>
83+
</profile>
84+
</profiles>
85+
{{/java11}}
6886
<dependencies>
6987
<dependency>
7088
<groupId>org.slf4j</groupId>
@@ -205,7 +223,7 @@
205223
</dependency>
206224
</dependencies>
207225
<properties>
208-
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
226+
<java.version>{{#java11}}11{{/java11}}{{^java11}}{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}{{/java11}}</java.version>
209227
<maven.compiler.source>${java.version}</maven.compiler.source>
210228
<maven.compiler.target>${java.version}</maven.compiler.target>
211229
<jetty-version>9.3.27.v20190418</jetty-version>

0 commit comments

Comments
 (0)