You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2019/01/30 23:33:10 UTC

[cxf] branch master updated: Followup on CXF-7957, adding the comment to clarify the changes in Swagger

This is an automated email from the ASF dual-hosted git repository.

reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 74e7684  Followup on CXF-7957, adding the comment to clarify the changes in Swagger
74e7684 is described below

commit 74e7684b76dfa03310f30a0dc520f61b4a6fa1b3
Author: reta <dr...@gmail.com>
AuthorDate: Wed Jan 30 18:32:52 2019 -0500

    Followup on CXF-7957, adding the comment to clarify the changes in Swagger
---
 .../cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionFilter.java | 6 ++++--
 .../java/org/apache/cxf/jaxrs/swagger/parse/SwaggerParseUtils.java  | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionFilter.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionFilter.java
index 3aa7c97..503b14d 100644
--- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionFilter.java
+++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionFilter.java
@@ -57,8 +57,10 @@ public final class SwaggerToOpenApiConversionFilter implements ContainerRequestF
     @Override
     public void filter(ContainerRequestContext reqCtx, ContainerResponseContext respCtx) throws IOException {
         if (Boolean.TRUE == reqCtx.getProperty(OPEN_API_PROPERTY)) {
-            String swaggerJson = respCtx.getEntity() instanceof String ? (String)respCtx.getEntity()
-                    : Json.pretty(respCtx.getEntity());
+            final Object entity = respCtx.getEntity();
+            // Right before 1.5.18, the entity was always a String but became a model object
+            // (io.swagger.models.Swagger) after. For now, let us serialize it to JSON manually.
+            String swaggerJson = entity instanceof String ? (String)entity : Json.pretty(entity);
             String openApiJson = SwaggerToOpenApiConversionUtils.getOpenApiFromSwaggerJson(
                     createMessageContext(), swaggerJson, openApiConfig);
             respCtx.setEntity(openApiJson);
diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/parse/SwaggerParseUtils.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/parse/SwaggerParseUtils.java
index 50284c1..cecec16 100644
--- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/parse/SwaggerParseUtils.java
+++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/parse/SwaggerParseUtils.java
@@ -131,6 +131,8 @@ public final class SwaggerParseUtils {
                 userOp.setVerb(operEntry.getKey().toUpperCase());
 
                 Map<String, Object> oper = CastUtils.cast((Map<?, ?>)operEntry.getValue());
+                // The operation could be null, the particular HTTP verb may not contain any
+                // operations but Swagger may still include it.
                 if (oper != null) {
                     userOp.setPath(operPath);