Skip to content

Commit e54af21

Browse files
committed
added jakarta option for java generator and templates
1 parent 712f77d commit e54af21

35 files changed

+159
-40
lines changed

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

Lines changed: 20 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,15 @@ 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+
cliOptions.add(CliOption.newBoolean(JAKARTA, "Use Jakarta EE (package jakarta.*) instead of Java EE (javax.*)"));
219+
220+
CliOption jeeSpec = CliOption.newBoolean(JAKARTA, "Use Jakarta EE (package jakarta.*) instead of Java EE (javax.*)");
221+
Map<String, String> jeeSpecModeOptions = new HashMap<String, String>();
222+
jeeSpecModeOptions.put("true", "Use Jakarta EE (package jakarta.*)");
223+
jeeSpecModeOptions.put("false", "Use Java EE (javax.*)");
224+
jeeSpec.setEnum(jeeSpecModeOptions);
225+
cliOptions.add(jeeSpec);
215226
}
216227

217228
@Override
@@ -523,6 +534,11 @@ public void processOpts() {
523534
additionalProperties.put("legacyDates", true);
524535
}
525536

537+
if (additionalProperties.containsKey(JAKARTA)) {
538+
setJakarta(Boolean.parseBoolean(String.valueOf(additionalProperties.get(JAKARTA))));
539+
additionalProperties.put(JAKARTA, jakarta);
540+
}
541+
526542
if (this.skipAliasGeneration == null) {
527543
this.skipAliasGeneration = Boolean.TRUE;
528544
}
@@ -1496,6 +1512,10 @@ public String escapeQuotationMark(String input) {
14961512
return input.replace("\"", "");
14971513
}
14981514

1515+
public void setJakarta(boolean jakarta) {
1516+
this.jakarta = jakarta;
1517+
}
1518+
14991519
@Override
15001520
public String escapeUnsafeCharacters(String input) {
15011521
return input.replace("*/", "*_/").replace("/*", "/_*");

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: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ 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}}
37+
import javax.ws.rs.core.Response.Status.Family;
38+
import javax.ws.rs.core.MediaType;
39+
{{/jakarta}}
40+
3241
import javax.ws.rs.core.Response.Status.Family;
3342
import javax.ws.rs.core.MediaType;
3443

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

modules/swagger-codegen/src/main/resources/Java/libraries/feign/pom.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@
195195
<dependency>
196196
<groupId>com.sun.xml.ws</groupId>
197197
<artifactId>jaxws-rt</artifactId>
198-
<version>2.3.3</version>
198+
<version>{{#jakarta}}4.0.0{{/jakarta}}{{^jakarta}}2.3.3{{/jakarta}}</version>
199199
<type>pom</type>
200200
</dependency>
201201
</dependencies>

0 commit comments

Comments
 (0)