Skip to content

Commit 85541d1

Browse files
authored
Merge pull request #1130 from swagger-api/Fyro-Ing-issues/1054
Fyro ing issues/1054
2 parents b185e5f + 31a85f3 commit 85541d1

File tree

128 files changed

+983
-199
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+983
-199
lines changed

src/main/java/io/swagger/codegen/v3/generators/handlebars/java/JavaHelper.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,26 @@ public CharSequence getModelImports(Map<String, Object> templateData, Options op
7979
boolean withXml = Boolean.valueOf(String.valueOf(templateData.get("withXml")));
8080
boolean parcelableModel = Boolean.valueOf(String.valueOf(templateData.get("parcelableModel")));
8181
boolean useBeanValidation = Boolean.valueOf(String.valueOf(templateData.get("useBeanValidation")));
82+
boolean jakarta = Boolean.valueOf(String.valueOf(templateData.get("jakarta")));
8283
if (serializableMode) {
8384
builder.append("import java.io.Serializable;\n");
8485
}
8586
if (jackson && withXml) {
8687
builder.append("import com.fasterxml.jackson.dataformat.xml.annotation.*;\n");
8788
}
88-
if (withXml) {
89-
builder.append("import javax.xml.bind.annotation.*;\n");
89+
if (withXml && jakarta) {
90+
builder.append("import jakarta.xml.bind.annotation.*;\n");
91+
} else if (withXml) {
92+
builder.append("import jakarta.xml.bind.annotation.*;\n");
9093
}
9194
if (parcelableModel) {
9295
builder.append("import android.os.Parcelable;\n");
9396
builder.append("import android.os.Parcel;\n");
9497
}
95-
if (useBeanValidation) {
98+
if (useBeanValidation && jakarta) {
99+
builder.append("import jakarta.validation.constraints.*;\n");
100+
builder.append("import jakarta.validation.Valid;\n");
101+
} else if (useBeanValidation) {
96102
builder.append("import javax.validation.constraints.*;\n");
97103
builder.append("import javax.validation.Valid;\n");
98104
}

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

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package io.swagger.codegen.v3.generators.java;
22

3+
import static io.swagger.codegen.v3.CodegenConstants.HAS_ENUMS_EXT_NAME;
4+
import static io.swagger.codegen.v3.CodegenConstants.IS_ENUM_EXT_NAME;
5+
import static io.swagger.codegen.v3.generators.features.NotNullAnnotationFeatures.NOT_NULL_JACKSON_ANNOTATION;
6+
import static io.swagger.codegen.v3.generators.handlebars.ExtensionHelper.getBooleanValue;
7+
38
import com.github.jknack.handlebars.Handlebars;
49
import io.swagger.codegen.v3.CliOption;
510
import io.swagger.codegen.v3.CodegenArgument;
@@ -26,11 +31,6 @@
2631
import io.swagger.v3.oas.models.parameters.RequestBody;
2732
import io.swagger.v3.oas.models.responses.ApiResponse;
2833
import io.swagger.v3.parser.util.SchemaTypeUtil;
29-
import org.apache.commons.lang3.BooleanUtils;
30-
import org.apache.commons.lang3.StringUtils;
31-
import org.slf4j.Logger;
32-
import org.slf4j.LoggerFactory;
33-
3434
import java.io.File;
3535
import java.util.Arrays;
3636
import java.util.HashMap;
@@ -42,11 +42,10 @@
4242
import java.util.Objects;
4343
import java.util.Optional;
4444
import java.util.regex.Pattern;
45-
46-
import static io.swagger.codegen.v3.CodegenConstants.HAS_ENUMS_EXT_NAME;
47-
import static io.swagger.codegen.v3.CodegenConstants.IS_ENUM_EXT_NAME;
48-
import static io.swagger.codegen.v3.generators.features.NotNullAnnotationFeatures.NOT_NULL_JACKSON_ANNOTATION;
49-
import static io.swagger.codegen.v3.generators.handlebars.ExtensionHelper.getBooleanValue;
45+
import org.apache.commons.lang3.BooleanUtils;
46+
import org.apache.commons.lang3.StringUtils;
47+
import org.slf4j.Logger;
48+
import org.slf4j.LoggerFactory;
5049

5150
public abstract class AbstractJavaCodegen extends DefaultCodegenConfig {
5251
private static Logger LOGGER = LoggerFactory.getLogger(AbstractJavaCodegen.class);
@@ -62,6 +61,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegenConfig {
6261

6362
public static final String WIREMOCK_OPTION = "wiremock";
6463

64+
public static final String JAKARTA = "jakarta";
65+
6566
protected String dateLibrary = "threetenbp";
6667
protected boolean java8Mode = false;
6768
protected boolean java11Mode = false;
@@ -93,6 +94,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegenConfig {
9394
protected String apiDocPath = "docs/";
9495
protected String modelDocPath = "docs/";
9596
protected boolean supportJava6= false;
97+
protected boolean jakarta = false;
9698
private NotNullAnnotationFeatures notNullOption;
9799

98100
public AbstractJavaCodegen() {
@@ -194,6 +196,15 @@ public AbstractJavaCodegen() {
194196
cliOptions.add(CliOption.newBoolean(CHECK_DUPLICATED_MODEL_NAME, "Check if there are duplicated model names (ignoring case)"));
195197

196198
cliOptions.add(CliOption.newBoolean(WIREMOCK_OPTION, "Use wiremock to generate endpoint calls to mock on generated tests."));
199+
200+
cliOptions.add(CliOption.newBoolean(JAKARTA, "Use Jakarta EE (package jakarta.*) instead of Java EE (javax.*)"));
201+
202+
CliOption jeeSpec = CliOption.newBoolean(JAKARTA, "Use Jakarta EE (package jakarta.*) instead of Java EE (javax.*)");
203+
Map<String, String> jeeSpecModeOptions = new HashMap<String, String>();
204+
jeeSpecModeOptions.put("true", "Use Jakarta EE (package jakarta.*)");
205+
jeeSpecModeOptions.put("false", "Use Java EE (javax.*)");
206+
jeeSpec.setEnum(jeeSpecModeOptions);
207+
cliOptions.add(jeeSpec);
197208
}
198209

199210
@Override
@@ -490,6 +501,11 @@ public void processOpts() {
490501
} else if (dateLibrary.equals("legacy")) {
491502
additionalProperties.put("legacyDates", true);
492503
}
504+
505+
if (additionalProperties.containsKey(JAKARTA)) {
506+
setJakarta(Boolean.parseBoolean(String.valueOf(additionalProperties.get(JAKARTA))));
507+
additionalProperties.put(JAKARTA, jakarta);
508+
}
493509
}
494510

495511
private void sanitizeConfig() {
@@ -1564,6 +1580,10 @@ public void setJava11Mode(boolean java11Mode) {
15641580
this.java11Mode = java11Mode;
15651581
}
15661582

1583+
public void setJakarta(boolean jakarta) {
1584+
this.jakarta = jakarta;
1585+
}
1586+
15671587
@Override
15681588
public String escapeQuotationMark(String input) {
15691589
// remove " to avoid code injection

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import io.swagger.codegen.v3.CodegenProperty;
66
import io.swagger.codegen.v3.SupportingFile;
77
import io.swagger.codegen.v3.generators.features.BeanValidationFeatures;
8-
import org.apache.commons.lang3.StringUtils;
9-
108
import java.io.File;
119

1210
/**
@@ -48,7 +46,14 @@ public void processOpts() {
4846

4947
super.processOpts();
5048

51-
importMapping.put("Valid", "javax.validation.Valid");
49+
if (additionalProperties.containsKey(JAKARTA)) {
50+
setJakarta(convertPropertyToBoolean(JAKARTA));
51+
}
52+
if (jakarta) {
53+
importMapping.put("Valid", "jakarta.validation.Valid");
54+
} else {
55+
importMapping.put("Valid", "javax.validation.Valid");
56+
}
5257

5358
// Three API templates to support CDI injection
5459
apiTemplateFiles.put("apiService.mustache", ".java");

src/main/resources/handlebars/Java/ApiClient.mustache

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,14 @@ import com.sun.jersey.api.client.WebResource.Builder;
2929
import com.sun.jersey.multipart.FormDataMultiPart;
3030
import com.sun.jersey.multipart.file.FileDataBodyPart;
3131

32+
{{#jakarta}}
33+
import jakarta.ws.rs.core.Response.Status.Family;
34+
import jakarta.ws.rs.core.MediaType;
35+
{{/jakarta}}
36+
{{^jakarta}}
3237
import javax.ws.rs.core.Response.Status.Family;
3338
import javax.ws.rs.core.MediaType;
39+
{{/jakarta}}
3440

3541
import java.util.Collection;
3642
import java.util.Collections;

src/main/resources/handlebars/Java/BeanValidationException.mustache

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package {{invokerPackage}};
22

33
import java.util.Set;
4-
4+
{{#jakarta}}
5+
import jakarta.validation.ConstraintViolation;
6+
import jakarta.validation.ValidationException;
7+
{{/jakarta}}
8+
{{^jakarta}}
59
import javax.validation.ConstraintViolation;
610
import javax.validation.ValidationException;
11+
{{/jakarta}}
712

813
public class BeanValidationException extends ValidationException {
914
/**

src/main/resources/handlebars/Java/build.gradle.java11.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repositories {
1313
ext {
1414
swagger_annotations_version = "{{#useOas2}}1.5.24{{/useOas2}}{{^useOas2}}2.0.0{{/useOas2}}"
1515
jackson_version = "{{^threetenbp}}2.11.4{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
16-
jersey_version = "1.19.4"
16+
jersey_version = "{{#jakarta}}3.1.0{{/jakarta}}{{^jakarta}}1.19.4{{/jakarta}}"
1717
jodatime_version = "2.10.5"
1818
junit_version = "4.13.1"
1919
}
@@ -38,7 +38,7 @@ dependencies {
3838
{{#threetenbp}}
3939
implementation "com.github.joschi.jackson:jackson-datatype-threetenbp:$jackson_version"
4040
{{/threetenbp}}
41-
implementation 'com.sun.xml.ws:jaxws-rt:2.3.3'
41+
implementation 'com.sun.xml.ws:jaxws-rt:{{#jakarta}}4.0.0{{/jakarta}}{{^jakarta}}2.3.3{{/jakarta}}'
4242
testImplementation "junit:junit:$junit_version"
4343
{{#wiremock}}
4444
testImplementation "com.github.tomakehurst:wiremock:2.27.2"
@@ -73,4 +73,4 @@ publishing {
7373

7474
tasks.withType(JavaCompile) {
7575
options.encoding = 'UTF-8'
76-
}
76+
}

src/main/resources/handlebars/Java/build.gradle.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ if(hasProperty('target') && target == 'android') {
5454
}
5555

5656
dependencies {
57-
provided 'javax.annotation:jsr250-api:1.0'
57+
provided 'jakarta.annotation:jakarta.annotation-api:{{#jakarta}}2.1.1{{/jakarta}}{{^jakarta}}1.3.5{{/jakarta}}'
5858
}
5959
}
6060

@@ -113,7 +113,7 @@ ext {
113113
swagger_annotations_version = "2.0.0"
114114
{{/useOas2}}
115115
jackson_version = "2.10.1"
116-
jersey_version = "1.19.4"
116+
jersey_version = "{{#jakarta}}3.1.0{{/jakarta}}{{^jakarta}}1.19.4{{/jakarta}}"
117117
jodatime_version = "2.9.9"
118118
junit_version = "4.12"
119119
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{^hideGenerationTimestamp}}@javax.annotation.Generated(value = "{{generatorClass}}", date = "{{generatedDate}}"){{/hideGenerationTimestamp}}
1+
{{^hideGenerationTimestamp}}@{{#jakarta}}jakarta{{/jakarta}}{{^jakarta}}javax{{/jakarta}}.annotation.Generated(value = "{{generatorClass}}", date = "{{generatedDate}}"){{/hideGenerationTimestamp}}

src/main/resources/handlebars/Java/libraries/feign/build.gradle.java11.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
}
5151
implementation "org.json:json:20180130"
5252
implementation "com.brsanthu:migbase64:2.2"
53-
implementation "com.sun.xml.ws:jaxws-rt:2.3.3"
53+
implementation "com.sun.xml.ws:jaxws-rt:{{#jakarta}}4.0.0{{/jakarta}}{{^jakarta}}2.3.3{{/jakarta}}"
5454
testImplementation "junit:junit:$junit_version"
5555
testImplementation "com.squareup.okhttp3:mockwebserver:3.6.0"
5656
testImplementation "org.assertj:assertj-core:1.7.1"
@@ -87,4 +87,4 @@ publishing {
8787

8888
tasks.withType(JavaCompile) {
8989
options.encoding = 'UTF-8'
90-
}
90+
}

src/main/resources/handlebars/Java/libraries/feign/build.gradle.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ if(hasProperty('target') && target == 'android') {
5454
}
5555

5656
dependencies {
57-
provided 'javax.annotation:jsr250-api:1.0'
57+
provided 'jakarta.annotation:jakarta.annotation-api:{{#jakarta}}2.1.1{{/jakarta}}{{^jakarta}}1.3.5{{/jakarta}}'
5858
}
5959
}
6060

0 commit comments

Comments
 (0)