From 9a289e97134012896c01f4183b8fcb8806a9f1a8 Mon Sep 17 00:00:00 2001
From: martin-mfg <2026226+martin-mfg@users.noreply.github.com>
Date: Tue, 29 Apr 2025 09:01:43 +0200
Subject: [PATCH] adjust jersey2/jersey3 templates (#21171)
* respect useJakartaEE in jersey3
* useJakarteEE=true in jersey3 samples
* don't force jakarta package for jersey3
* adjust whitespace between jersey2 and jersey3
* enforce useJakartaEe for jersey3, warn on misuse for jersey 2
* set useJakartaEe for jersey3, generate samples
---
.../openapitools/codegen/languages/JavaClientCodegen.java | 4 ++++
.../resources/Java/libraries/jersey2/ApiClient.mustache | 2 +-
.../resources/Java/libraries/jersey3/ApiClient.mustache | 2 +-
.../src/main/resources/Java/libraries/jersey3/api.mustache | 4 ++--
.../main/resources/Java/libraries/jersey3/api_test.mustache | 4 ++--
.../resources/Java/libraries/jersey3/build.gradle.mustache | 1 -
.../main/resources/Java/libraries/jersey3/model.mustache | 4 ++--
.../src/main/resources/Java/libraries/jersey3/pom.mustache | 6 ++++++
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
samples/client/petstore/java/jersey3-oneOf/build.gradle | 1 -
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
samples/client/petstore/java/jersey3/build.gradle | 1 -
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
.../src/main/java/org/openapitools/client/ApiClient.java | 2 +-
21 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
index 9763f706468..f198604d301 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
@@ -587,6 +587,9 @@ public class JavaClientCodegen extends AbstractJavaCodegen
// The flag below should be set for all Java libraries, but the templates need to be ported
// one by one for each library.
supportsAdditionalPropertiesWithComposedSchema = true;
+ if (useJakartaEe) {
+ LOGGER.warn("Jersey 2 is not compatible with Jakarta EE. Please use Jersey 3 or set {} to false.", USE_JAKARTA_EE);
+ }
} else if (libJersey3) {
additionalProperties.put("jersey3", true);
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
@@ -603,6 +606,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
// The flag below should be set for all Java libraries, but the templates need to be ported
// one by one for each library.
supportsAdditionalPropertiesWithComposedSchema = true;
+ setUseJakartaEe(true);
applyJakartaPackage();
} else if (libNative) {
supportingFiles.add(new SupportingFile("ApiResponse.mustache", invokerFolder, "ApiResponse.java"));
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/ApiClient.mustache
index ee7fcb2513c..733904e12ed 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/ApiClient.mustache
@@ -1021,7 +1021,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/ApiClient.mustache
index 6ba811059bb..733904e12ed 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/ApiClient.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/ApiClient.mustache
@@ -1386,7 +1386,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
protected Client buildHttpClient() {
// Create ClientConfig if it has not been initialized yet
if (clientConfig == null) {
- clientConfig = getDefaultClientConfig();
+ clientConfig = getDefaultClientConfig();
}
ClientBuilder clientBuilder = ClientBuilder.newBuilder();
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api.mustache
index 66051c4ffbc..d9e9bf14bcd 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api.mustache
@@ -12,8 +12,8 @@ import {{javaxPackage}}.ws.rs.core.GenericType;
{{/imports}}
{{#useBeanValidation}}
-import jakarta.validation.constraints.*;
-import jakarta.validation.Valid;
+import {{javaxPackage}}.validation.constraints.*;
+import {{javaxPackage}}.validation.Valid;
{{/useBeanValidation}}
import java.util.ArrayList;
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api_test.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api_test.mustache
index 7b8214bd48a..926ba0a8291 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api_test.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/api_test.mustache
@@ -17,8 +17,8 @@ import java.util.List;
import java.util.Map;
{{#useBeanValidation}}
-import jakarta.validation.constraints.*;
-import jakarta.validation.Valid;
+import {{javaxPackage}}.validation.constraints.*;
+import {{javaxPackage}}.validation.Valid;
{{/useBeanValidation}}
/**
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/build.gradle.mustache
index f95eafca0c6..3c87fc238cd 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/build.gradle.mustache
@@ -152,7 +152,6 @@ dependencies {
{{#useReflectionEqualsHashCode}}
implementation "org.apache.commons:commons-lang3:$commons_lang3_version"
{{/useReflectionEqualsHashCode}}
-
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version"
}
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/model.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/model.mustache
index 1904ee40ea4..2758278acee 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/model.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/model.mustache
@@ -42,8 +42,8 @@ import android.os.Parcelable;
import android.os.Parcel;
{{/parcelableModel}}
{{#useBeanValidation}}
-import jakarta.validation.constraints.*;
-import jakarta.validation.Valid;
+import {{javaxPackage}}.validation.constraints.*;
+import {{javaxPackage}}.validation.Valid;
{{/useBeanValidation}}
{{#performBeanValidation}}
import org.hibernate.validator.constraints.*;
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/pom.mustache
index a3c11504171..7a119555bfd 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/pom.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey3/pom.mustache
@@ -408,8 +408,14 @@
2.17.1
2.17.1
0.2.6
+ {{#useJakartaEe}}
2.1.1
3.0.2
+ {{/useJakartaEe}}
+ {{^useJakartaEe}}
+ 1.3.5
+ 2.0.2
+ {{/useJakartaEe}}
5.10.0
{{#hasHttpSignatureMethods}}
1.8
diff --git a/samples/client/others/java/jersey2-oneOf-Mixed/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/jersey2-oneOf-Mixed/src/main/java/org/openapitools/client/ApiClient.java
index 78413630781..7aa5015c743 100644
--- a/samples/client/others/java/jersey2-oneOf-Mixed/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/others/java/jersey2-oneOf-Mixed/src/main/java/org/openapitools/client/ApiClient.java
@@ -800,7 +800,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/client/others/java/jersey2-oneOf-duplicates/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/jersey2-oneOf-duplicates/src/main/java/org/openapitools/client/ApiClient.java
index 78413630781..7aa5015c743 100644
--- a/samples/client/others/java/jersey2-oneOf-duplicates/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/others/java/jersey2-oneOf-duplicates/src/main/java/org/openapitools/client/ApiClient.java
@@ -800,7 +800,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/ApiClient.java
index 0cd79b9bded..4c2152ed339 100644
--- a/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/petstore/java/jersey2-java8-localdatetime/src/main/java/org/openapitools/client/ApiClient.java
@@ -941,7 +941,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
index 0cd79b9bded..4c2152ed339 100644
--- a/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
@@ -941,7 +941,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/client/petstore/java/jersey3-oneOf/build.gradle b/samples/client/petstore/java/jersey3-oneOf/build.gradle
index 95a7eee9bbd..3ed93e90970 100644
--- a/samples/client/petstore/java/jersey3-oneOf/build.gradle
+++ b/samples/client/petstore/java/jersey3-oneOf/build.gradle
@@ -121,7 +121,6 @@ dependencies {
implementation "org.openapitools:jackson-databind-nullable:$jackson_databind_nullable_version"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
-
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version"
}
diff --git a/samples/client/petstore/java/jersey3-oneOf/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/jersey3-oneOf/src/main/java/org/openapitools/client/ApiClient.java
index bd8d8299973..eaa055a1da3 100644
--- a/samples/client/petstore/java/jersey3-oneOf/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/petstore/java/jersey3-oneOf/src/main/java/org/openapitools/client/ApiClient.java
@@ -1142,7 +1142,7 @@ public class ApiClient extends JavaTimeFormatter {
protected Client buildHttpClient() {
// Create ClientConfig if it has not been initialized yet
if (clientConfig == null) {
- clientConfig = getDefaultClientConfig();
+ clientConfig = getDefaultClientConfig();
}
ClientBuilder clientBuilder = ClientBuilder.newBuilder();
diff --git a/samples/client/petstore/java/jersey3/build.gradle b/samples/client/petstore/java/jersey3/build.gradle
index 10c96f84970..47fa3017b74 100644
--- a/samples/client/petstore/java/jersey3/build.gradle
+++ b/samples/client/petstore/java/jersey3/build.gradle
@@ -129,7 +129,6 @@ dependencies {
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
implementation "jakarta.validation:jakarta.validation-api:$bean_validation_version"
implementation "org.apache.commons:commons-lang3:$commons_lang3_version"
-
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version"
}
diff --git a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/ApiClient.java
index d1bcfb455b4..7273a4b5b21 100644
--- a/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/client/petstore/java/jersey3/src/main/java/org/openapitools/client/ApiClient.java
@@ -1381,7 +1381,7 @@ public class ApiClient extends JavaTimeFormatter {
protected Client buildHttpClient() {
// Create ClientConfig if it has not been initialized yet
if (clientConfig == null) {
- clientConfig = getDefaultClientConfig();
+ clientConfig = getDefaultClientConfig();
}
ClientBuilder clientBuilder = ClientBuilder.newBuilder();
diff --git a/samples/openapi3/client/extensions/x-auth-id-alias/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/extensions/x-auth-id-alias/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
index acfe345c88e..65d58ff0e2c 100644
--- a/samples/openapi3/client/extensions/x-auth-id-alias/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/openapi3/client/extensions/x-auth-id-alias/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
@@ -849,7 +849,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java
index 16d54514658..1e68a5bb4a2 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-special-characters/src/main/java/org/openapitools/client/ApiClient.java
@@ -800,7 +800,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-swagger1/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/petstore/java/jersey2-java8-swagger1/src/main/java/org/openapitools/client/ApiClient.java
index b9014e5e916..e7063c188e3 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-swagger1/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-swagger1/src/main/java/org/openapitools/client/ApiClient.java
@@ -925,7 +925,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8-swagger2/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/petstore/java/jersey2-java8-swagger2/src/main/java/org/openapitools/client/ApiClient.java
index b9014e5e916..e7063c188e3 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8-swagger2/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8-swagger2/src/main/java/org/openapitools/client/ApiClient.java
@@ -925,7 +925,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*
diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
index 2799f52eeee..1d5f981c980 100644
--- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
+++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/ApiClient.java
@@ -1023,7 +1023,7 @@ public class ApiClient extends JavaTimeFormatter {
return entity;
}
- /**
+ /**
* Adds the object with the provided key to the MultiPart.
* Based on the object type sets Content-Disposition and Content-Type.
*