From 72871cf93098f4b72cb182d81c5b58ab86ae46b0 Mon Sep 17 00:00:00 2001 From: Antoine Reilles Date: Sun, 12 Mar 2023 16:24:30 +0100 Subject: [PATCH] [cxf-cdi] use InputStream for binary body (#14439) Use a single InputStream instead of "File". This allows the generated code to build in case of a definition like: requestBody: content: text/plain: schema: type: string format: binary This fixes #9372 --- .../codegen/languages/JavaJAXRSCXFCDIServerCodegen.java | 2 ++ .../src/main/resources/JavaJaxRS/cxf-cdi/api.mustache | 2 +- .../jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApi.java | 1 - .../src/gen/java/org/openapitools/api/PetApiService.java | 1 - .../main/java/org/openapitools/api/impl/PetApiServiceImpl.java | 1 - 5 files changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java index 4bb58c88e50..b6dd22cbfd3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaJAXRSCXFCDIServerCodegen.java @@ -50,6 +50,8 @@ public class JavaJAXRSCXFCDIServerCodegen extends JavaJAXRSSpecServerCodegen imp // Use standard types typeMapping.put("DateTime", "java.util.Date"); + typeMapping.put("binary", "java.io.InputStream"); + typeMapping.put("file", "java.io.InputStream"); // Updated template directory embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf-cdi"; diff --git a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/api.mustache b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/api.mustache index b9d34d678d6..f00d72939a7 100644 --- a/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/api.mustache +++ b/modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/api.mustache @@ -61,7 +61,7 @@ public class {{classname}} { @ApiResponses(value = { {{#responses}} @ApiResponse(code = {{{code}}}, message = "{{{message}}}", response = {{{baseType}}}.class{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}} }) public Response {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}}, {{/-last}}{{/allParams}}) { - return delegate.{{nickname}}({{#allParams}}{{#isFile}}{{paramName}}InputStream, {{paramName}}Detail{{/isFile}}{{^isFile}}{{paramName}}{{/isFile}}, {{/allParams}}securityContext); + return delegate.{{nickname}}({{#allParams}}{{#isFile}}{{#isMultipart}}{{paramName}}InputStream, {{paramName}}Detail{{/isMultipart}}{{^isMultipart}}{{paramName}}{{/isMultipart}}{{/isFile}}{{^isFile}}{{paramName}}{{/isFile}}, {{/allParams}}securityContext); } {{/operation}} } diff --git a/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApi.java b/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApi.java index 57c63b56395..e368bc861a0 100644 --- a/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApi.java +++ b/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApi.java @@ -1,6 +1,5 @@ package org.openapitools.api; -import java.io.File; import org.openapitools.model.ModelApiResponse; import org.openapitools.model.Pet; import org.openapitools.api.PetApiService; diff --git a/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApiService.java b/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApiService.java index cd8754bc876..74c874a64a7 100644 --- a/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApiService.java +++ b/samples/server/petstore/jaxrs-cxf-cdi/src/gen/java/org/openapitools/api/PetApiService.java @@ -6,7 +6,6 @@ import org.openapitools.model.*; import org.apache.cxf.jaxrs.ext.multipart.Attachment; import org.apache.cxf.jaxrs.ext.multipart.Multipart; -import java.io.File; import org.openapitools.model.ModelApiResponse; import org.openapitools.model.Pet; diff --git a/samples/server/petstore/jaxrs-cxf-cdi/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf-cdi/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java index ad4a6518971..b9005914f6e 100644 --- a/samples/server/petstore/jaxrs-cxf-cdi/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-cxf-cdi/src/main/java/org/openapitools/api/impl/PetApiServiceImpl.java @@ -5,7 +5,6 @@ import org.openapitools.model.*; import org.apache.cxf.jaxrs.ext.multipart.Attachment; -import java.io.File; import org.openapitools.model.ModelApiResponse; import org.openapitools.model.Pet;