From 2f9b487779e02fdb364eb46b356676424a06b8fe Mon Sep 17 00:00:00 2001 From: Jochem Kuijpers <1162720+JochemKuijpers@users.noreply.github.com> Date: Mon, 13 May 2024 10:48:59 +0200 Subject: [PATCH] Fixes incorrect Jackson imports in Java templates used in ApiClient.java when useJakartaEe=true (#18507) * Adds useJakartaEe condition to select the appropriate Jackson package to import. This also removes the import on the apache-httpclient template where it doesn't actually get used, requiring users to declare additional dependencies for compilation that aren't actually required by the generated code other than for import. * Ran generate-samples.sh --- .../src/main/resources/Java/ApiClient.mustache | 5 +++++ .../Java/libraries/apache-httpclient/ApiClient.mustache | 1 - .../src/main/resources/JavaJaxRS/cxf-ext/api_test.mustache | 6 ++++++ .../test/resources/2_0/templates/Java/ApiClient.mustache | 5 +++++ .../src/main/java/org/openapitools/client/ApiClient.java | 1 - .../src/main/java/org/openapitools/client/ApiClient.java | 1 - 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/ApiClient.mustache index 749c4eb2b7b..9cf548d446e 100644 --- a/modules/openapi-generator/src/main/resources/Java/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/ApiClient.mustache @@ -8,7 +8,12 @@ import com.fasterxml.jackson.datatype.joda.JodaModule; {{/joda}} import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import java.time.OffsetDateTime; +{{#useJakartaEe}} +import com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider; +{{/useJakartaEe}} +{{^useJakartaEe}} import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; +{{/useJakartaEe}} import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache index 0ed24d0b353..8720a267305 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache @@ -8,7 +8,6 @@ import com.fasterxml.jackson.datatype.joda.JodaModule; {{/joda}} import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import java.time.OffsetDateTime; -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/api_test.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/api_test.mustache index 85c4dd5b695..a4477b5a0aa 100644 --- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/api_test.mustache +++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/api_test.mustache @@ -23,8 +23,14 @@ import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; {{/useLoggingFeature}} +{{#useJakartaEe}} +import com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider; +import com.fasterxml.jackson.jakarta.rs.xml.JacksonXMLProvider; +{{/useJakartaEe}} +{{^useJakartaEe}} import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider; +{{/useJakartaEe}} import org.apache.cxf.jaxrs.provider.MultipartProvider; import java.util.Arrays; diff --git a/modules/openapi-generator/src/test/resources/2_0/templates/Java/ApiClient.mustache b/modules/openapi-generator/src/test/resources/2_0/templates/Java/ApiClient.mustache index d5029896718..2c34b3c5d0c 100644 --- a/modules/openapi-generator/src/test/resources/2_0/templates/Java/ApiClient.mustache +++ b/modules/openapi-generator/src/test/resources/2_0/templates/Java/ApiClient.mustache @@ -19,7 +19,12 @@ import java.time.OffsetDateTime; {{#threetenbp}} import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule; {{/threetenbp}} +{{#useJakartaEe}} +import com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider; +{{/useJakartaEe}} +{{^useJakartaEe}} import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; +{{/useJakartaEe}} import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; diff --git a/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java index 872244b8900..da2b5ab2c75 100644 --- a/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import java.time.OffsetDateTime; -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java index e392c3488c3..6551c346254 100644 --- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import java.time.OffsetDateTime; -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType;