Skip to content

Commit 2232f4d

Browse files
committed
added option for java11
1 parent 7a1e029 commit 2232f4d

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

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

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
5858
public static final String DEFAULT_LIBRARY = "<default>";
5959
public static final String DATE_LIBRARY = "dateLibrary";
6060
public static final String JAVA8_MODE = "java8";
61+
public static final String JAVA11_MODE = "java11";
6162
public static final String SUPPORT_ASYNC = "supportAsync";
6263
public static final String WITH_XML = "withXml";
6364
public static final String SUPPORT_JAVA6 = "supportJava6";
@@ -69,6 +70,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
6970
protected String dateLibrary = "threetenbp";
7071
protected boolean supportAsync = false;
7172
protected boolean java8Mode = false;
73+
protected boolean java11Mode = false;
7274
protected boolean withXml = false;
7375
protected String invokerPackage = "io.swagger";
7476
protected String groupId = "io.swagger";
@@ -184,6 +186,7 @@ public AbstractJavaCodegen() {
184186
CliOption dateLibrary = new CliOption(DATE_LIBRARY, "Option. Date library to use");
185187
Map<String, String> dateOptions = new HashMap<String, String>();
186188
dateOptions.put("java8", "Java 8 native JSR310 (preferred for jdk 1.8+) - note: this also sets \"" + JAVA8_MODE + "\" to true");
189+
dateOptions.put("java11", "Java 11 native JSR384 (preferred for jdk 11+) - note: this also sets \"" + JAVA11_MODE + "\" to true");
187190
dateOptions.put("threetenbp", "Backport of JSR310 (preferred for jdk < 1.8)");
188191
dateOptions.put("java8-localdatetime", "Java 8 using LocalDateTime (for legacy app only)");
189192
dateOptions.put("java8-instant", "Java 8 using Instant");
@@ -199,6 +202,13 @@ public AbstractJavaCodegen() {
199202
java8Mode.setEnum(java8ModeOptions);
200203
cliOptions.add(java8Mode);
201204

205+
CliOption java11Mode = new CliOption(JAVA11_MODE, "Option. Use Java11 classes instead of third party equivalents");
206+
Map<String, String> java11ModeOptions = new HashMap<String, String>();
207+
java11ModeOptions.put("true", "Use Java 11 classes");
208+
java11ModeOptions.put("false", "Various third party libraries as needed");
209+
java11Mode.setEnum(java11ModeOptions);
210+
cliOptions.add(java11Mode);
211+
202212
cliOptions.add(CliOption.newBoolean(DISABLE_HTML_ESCAPING, "Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)"));
203213
cliOptions.add(CliOption.newBoolean(CHECK_DUPLICATED_MODEL_NAME, "Check if there are duplicated model names (ignoring case)"));
204214
cliOptions.add(CliOption.newString(ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "Additional annotations for model type(class level annotations)"));
@@ -453,12 +463,10 @@ public void processOpts() {
453463
// used later in recursive import in postProcessingModels
454464
importMapping.put("com.fasterxml.jackson.annotation.JsonProperty", "com.fasterxml.jackson.annotation.JsonCreator");
455465

456-
if (additionalProperties.containsKey(JAVA8_MODE)) {
457-
setJava8Mode(Boolean.parseBoolean(additionalProperties.get(JAVA8_MODE).toString()));
458-
if ( java8Mode ) {
459-
additionalProperties.put("java8", true);
460-
}
461-
}
466+
setJava8Mode(Boolean.parseBoolean(String.valueOf(additionalProperties.get(JAVA8_MODE))));
467+
additionalProperties.put(JAVA8_MODE, java8Mode);
468+
setJava11Mode(Boolean.parseBoolean(String.valueOf(additionalProperties.get(JAVA11_MODE))));
469+
additionalProperties.put(JAVA11_MODE, java11Mode);
462470

463471
if (additionalProperties.containsKey(SUPPORT_ASYNC)) {
464472
setSupportAsync(Boolean.parseBoolean(additionalProperties.get(SUPPORT_ASYNC).toString()));
@@ -1464,6 +1472,10 @@ public void setJava8Mode(boolean enabled) {
14641472
this.java8Mode = enabled;
14651473
}
14661474

1475+
public void setJava11Mode(boolean java11Mode) {
1476+
this.java11Mode = java11Mode;
1477+
}
1478+
14671479
public void setDisableHtmlEscaping(boolean disabled) {
14681480
this.disableHtmlEscaping = disabled;
14691481
}

0 commit comments

Comments
 (0)