Skip to content

Commit 7a50501

Browse files
authored
Merge pull request #12131 from swagger-api/jakarta_jersey3_changes
Jakarta jersey3 changes
2 parents 712f77d + 66d2c00 commit 7a50501

File tree

128 files changed

+2684
-185
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

+2684
-185
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
6666
public static final String ERROR_ON_UNKNOWN_ENUM = "errorOnUnknownEnum";
6767
public static final String CHECK_DUPLICATED_MODEL_NAME = "checkDuplicatedModelName";
6868
public static final String ADDITIONAL_MODEL_TYPE_ANNOTATIONS = "additionalModelTypeAnnotations";
69+
public static final String JAKARTA = "jakarta";
6970

7071
protected String dateLibrary = "threetenbp";
7172
protected boolean supportAsync = false;
@@ -100,6 +101,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
100101
protected String modelDocPath = "docs/";
101102
protected boolean supportJava6= false;
102103
protected boolean disableHtmlEscaping = false;
104+
protected boolean jakarta = false;
103105
private NotNullAnnotationFeatures notNullOption;
104106
private IgnoreUnknownJacksonFeatures ignoreUnknown;
105107
protected List<String> additionalModelTypeAnnotations = new LinkedList<>();
@@ -212,6 +214,13 @@ public AbstractJavaCodegen() {
212214
cliOptions.add(CliOption.newBoolean(DISABLE_HTML_ESCAPING, "Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)"));
213215
cliOptions.add(CliOption.newBoolean(CHECK_DUPLICATED_MODEL_NAME, "Check if there are duplicated model names (ignoring case)"));
214216
cliOptions.add(CliOption.newString(ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "Additional annotations for model type(class level annotations)"));
217+
218+
CliOption jeeSpec = CliOption.newBoolean(JAKARTA, "Use Jakarta EE (package jakarta.*) instead of Java EE (javax.*)");
219+
Map<String, String> jeeSpecModeOptions = new HashMap<String, String>();
220+
jeeSpecModeOptions.put("true", "Use Jakarta EE (package jakarta.*)");
221+
jeeSpecModeOptions.put("false", "Use Java EE (javax.*)");
222+
jeeSpec.setEnum(jeeSpecModeOptions);
223+
cliOptions.add(jeeSpec);
215224
}
216225

217226
@Override
@@ -523,6 +532,11 @@ public void processOpts() {
523532
additionalProperties.put("legacyDates", true);
524533
}
525534

535+
if (additionalProperties.containsKey(JAKARTA)) {
536+
setJakarta(Boolean.parseBoolean(String.valueOf(additionalProperties.get(JAKARTA))));
537+
additionalProperties.put(JAKARTA, jakarta);
538+
}
539+
526540
if (this.skipAliasGeneration == null) {
527541
this.skipAliasGeneration = Boolean.TRUE;
528542
}
@@ -1496,6 +1510,10 @@ public String escapeQuotationMark(String input) {
14961510
return input.replace("\"", "");
14971511
}
14981512

1513+
public void setJakarta(boolean jakarta) {
1514+
this.jakarta = jakarta;
1515+
}
1516+
14991517
@Override
15001518
public String escapeUnsafeCharacters(String input) {
15011519
return input.replace("*/", "*_/").replace("/*", "/_*");

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public JavaClientCodegen() {
8484
supportedLibraries.put("jersey1", "HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.11.4. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
8585
supportedLibraries.put("feign", "HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.11.4");
8686
supportedLibraries.put("jersey2", "HTTP client: Jersey client 2.29.1. JSON processing: Jackson 2.11.4");
87+
supportedLibraries.put("jersey3", "HTTP client: Jersey client 3.0.10. JSON processing: Jackson 2.10.2");
8788
supportedLibraries.put("okhttp-gson", "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
8889
supportedLibraries.put("okhttp4-gson", "HTTP client: OkHttp 4.10.0. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
8990
supportedLibraries.put(RETROFIT_1, "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.");
@@ -123,6 +124,10 @@ public void processOpts() {
123124
if (RETROFIT_1.equalsIgnoreCase(library)) {
124125
dateLibrary = "joda";
125126
}
127+
if ("jersey3".equalsIgnoreCase(library)) {
128+
dateLibrary = "java8";
129+
additionalProperties.put(JAKARTA, true);
130+
}
126131

127132
super.processOpts();
128133

@@ -252,7 +257,7 @@ public void processOpts() {
252257
if ("retrofit2".equals(getLibrary()) && !usePlayWS) {
253258
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
254259
}
255-
} else if ("jersey2".equals(getLibrary())) {
260+
} else if ("jersey3".equals(getLibrary()) || "jersey2".equals(getLibrary())) {
256261
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
257262
supportingFiles.add(new SupportingFile("ApiResponse.mustache", invokerFolder, "ApiResponse.java"));
258263
additionalProperties.put("jackson", "true");

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@ public String getName() {
5050
public void processOpts() {
5151
super.processOpts();
5252

53+
if (additionalProperties.containsKey(JAKARTA)) {
54+
setJakarta(convertPropertyToBoolean(JAKARTA));
55+
}
56+
if (jakarta) {
57+
importMapping.put("Valid", "jakarta.validation.Valid");
58+
} else {
59+
importMapping.put("Valid", "javax.validation.Valid");
60+
}
61+
5362
if (additionalProperties.containsKey(USE_BEANVALIDATION)) {
5463
this.setUseBeanValidation(convertPropertyToBoolean(USE_BEANVALIDATION));
5564
}

modules/swagger-codegen/src/main/resources/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;

modules/swagger-codegen/src/main/resources/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
/**

modules/swagger-codegen/src/main/resources/Java/build.gradle.java11.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ repositories {
1616
ext {
1717
swagger_annotations_version = "1.5.24"
1818
jackson_version = "{{^threetenbp}}2.11.4{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
19-
jersey_version = "1.19.4"
19+
jersey_version = "{{#jakarta}}3.1.0{{/jakarta}}{{^jakarta}}1.19.4{{/jakarta}}"
2020
jodatime_version = "2.10.5"
2121
junit_version = "4.13.1"
2222
}
@@ -36,7 +36,7 @@ dependencies {
3636
{{#threetenbp}}
3737
implementation "com.github.joschi.jackson:jackson-datatype-threetenbp:$jackson_version"
3838
{{/threetenbp}}
39-
implementation 'com.sun.xml.ws:jaxws-rt:2.3.3'
39+
implementation 'com.sun.xml.ws:jaxws-rt:{{#jakarta}}4.0.0{{/jakarta}}{{^jakarta}}2.3.3{{/jakarta}}'
4040
testImplementation "junit:junit:$junit_version"
4141
{{#wiremock}}
4242
testImplementation "com.github.tomakehurst:wiremock:2.27.2"

modules/swagger-codegen/src/main/resources/Java/build.gradle.mustache

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

5555
dependencies {
56-
provided 'javax.annotation:jsr250-api:1.0'
56+
provided 'jakarta.annotation:jakarta.annotation-api:{{#jakarta}}2.1.1{{/jakarta}}{{^jakarta}}1.3.5{{/jakarta}}'
5757
}
5858
}
5959

@@ -122,7 +122,7 @@ if(hasProperty('target') && target == 'android') {
122122
ext {
123123
swagger_annotations_version = "1.5.24"
124124
jackson_version = "{{^threetenbp}}2.11.4{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
125-
jersey_version = "1.19.4"
125+
jersey_version = "{{#jakarta}}3.1.0{{/jakarta}}{{^jakarta}}1.19.4{{/jakarta}}"
126126
jodatime_version = "2.10.5"
127127
junit_version = "4.12"
128128
}
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}}

modules/swagger-codegen/src/main/resources/Java/libraries/feign/build.gradle.java11.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ dependencies {
4545
{{/threetenbp}}
4646
implementation "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"
4747
implementation "com.brsanthu:migbase64:2.2"
48-
implementation "com.sun.xml.ws:jaxws-rt:2.3.3"
48+
implementation "com.sun.xml.ws:jaxws-rt:{{#jakarta}}4.0.0{{/jakarta}}{{^jakarta}}2.3.3{{/jakarta}}"
4949
testImplementation "junit:junit:$junit_version"
5050
testImplementation "com.squareup.okhttp3:mockwebserver:3.6.0"
5151
testImplementation "org.assertj:assertj-core:1.7.1"

modules/swagger-codegen/src/main/resources/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)