You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by il...@apache.org on 2019/11/14 12:27:14 UTC

[cxf] branch 3.2.x-fixes updated (3473c63 -> 9b95506)

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

ilgrosso pushed a change to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git.


    from 3473c63  Recording .gitmergeinfo Changes
     new 74a79a1  Various small improvements to OpenApiCustomizer to allow easier override
     new 9b95506  [CXF-8158] Only proceed with javadoc description replacement when JAX-RS and OpenAPI parameters have same size

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../cxf/jaxrs/openapi/OpenApiCustomizer.java       | 58 +++++++++++-----------
 1 file changed, 30 insertions(+), 28 deletions(-)


[cxf] 01/02: Various small improvements to OpenApiCustomizer to allow easier override

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 74a79a113cbc10084db4e06fb34f07987eb10d5e
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 14 09:27:28 2019 +0100

    Various small improvements to OpenApiCustomizer to allow easier override
---
 .../cxf/jaxrs/openapi/OpenApiCustomizer.java       | 52 +++++++++++-----------
 1 file changed, 27 insertions(+), 25 deletions(-)

diff --git a/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java b/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
index abdc7b7..c3e05cf 100644
--- a/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
+++ b/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
@@ -43,23 +43,23 @@ import io.swagger.v3.jaxrs2.Reader;
 import io.swagger.v3.oas.integration.api.OpenAPIConfiguration;
 import io.swagger.v3.oas.models.OpenAPI;
 import io.swagger.v3.oas.models.Operation;
-import io.swagger.v3.oas.models.PathItem.HttpMethod;
 import io.swagger.v3.oas.models.parameters.Parameter;
 import io.swagger.v3.oas.models.responses.ApiResponse;
 import io.swagger.v3.oas.models.servers.Server;
 import io.swagger.v3.oas.models.tags.Tag;
+import java.util.Optional;
 
 public class OpenApiCustomizer {
 
-    private boolean dynamicBasePath;
+    protected boolean dynamicBasePath;
 
-    private boolean replaceTags;
+    protected boolean replaceTags;
 
-    private DocumentationProvider javadocProvider;
+    protected DocumentationProvider javadocProvider;
 
-    private List<ClassResourceInfo> cris;
+    protected List<ClassResourceInfo> cris;
 
-    private String applicationPath;
+    protected String applicationPath;
 
     public OpenAPIConfiguration customize(final OpenAPIConfiguration configuration) {
         if (configuration == null) {
@@ -101,51 +101,53 @@ public class OpenApiCustomizer {
 
             List<Tag> tags = new ArrayList<>();
             oas.getPaths().forEach((pathKey, pathItem) -> {
-                Tag tag = null;
+                Optional<Tag> tag;
                 if (replaceTags && operations.containsKey(pathKey)) {
                     ClassResourceInfo cri = operations.get(pathKey);
 
-                    tag = new Tag();
+                    tag = Optional.of(new Tag());
                     tag.setName(cri.getURITemplate().getValue().replaceAll("/", "_"));
                     if (javadocProvider != null) {
                         tag.setDescription(javadocProvider.getClassDoc(cri));
                     }
 
-                    if (!tags.contains(tag)) {
-                        tags.add(tag);
+                    if (!tags.contains(tag.get())) {
+                        tags.add(tag.get());
                     }
+                } else {
+                    tag = Optional.empty();
                 }
 
-                for (Map.Entry<HttpMethod, Operation> subentry : pathItem.readOperationsMap().entrySet()) {
-                    if (replaceTags && tag != null) {
-                        subentry.getValue().setTags(Collections.singletonList(tag.getName()));
+                pathItem.readOperationsMap().forEach((method, operation) -> {
+                    if (replaceTags && tag.isPresent()) {
+                        operation.setTags(Collections.singletonList(tag.get().getName()));
                     }
 
-                    Pair<String, String> key = Pair.of(subentry.getKey().name(), pathKey);
+                    Pair<String, String> key = Pair.of(method.name(), pathKey);
                     if (methods.containsKey(key) && javadocProvider != null) {
                         OperationResourceInfo ori = methods.get(key);
 
-                        if (StringUtils.isBlank(subentry.getValue().getSummary())) {
-                            subentry.getValue().setSummary(javadocProvider.getMethodDoc(ori));
+                        if (StringUtils.isBlank(operation.getSummary())) {
+                            operation.setSummary(javadocProvider.getMethodDoc(ori));
                         }
 
-                        if (subentry.getValue().getParameters() == null) {
+                        if (operation.getParameters() == null) {
                             List<Parameter> parameters = new ArrayList<>();
                             addParameters(parameters);
-                            subentry.getValue().setParameters(parameters);
+                            operation.setParameters(parameters);
                         } else {
-                            for (int i = 0; i < subentry.getValue().getParameters().size(); i++) {
-                                if (StringUtils.isBlank(subentry.getValue().getParameters().get(i).getDescription())) {
-                                    subentry.getValue().getParameters().get(i).
+                            for (int i = 0; i < operation.getParameters().size(); i++) {
+                                if (StringUtils.isBlank(operation.getParameters().get(i).getDescription())) {
+                                    operation.getParameters().get(i).
                                             setDescription(javadocProvider.getMethodParameterDoc(ori, i));
                                 }
                             }
-                            addParameters(subentry.getValue().getParameters());
+                            addParameters(operation.getParameters());
                         }
 
-                        customizeResponses(subentry.getValue(), ori);
+                        customizeResponses(operation, ori);
                     }
-                }
+                });
             });
             if (replaceTags && oas.getTags() != null) {
                 oas.setTags(tags);
@@ -250,7 +252,7 @@ public class OpenApiCustomizer {
         }
     }
 
-    private MessageContext createMessageContext() {
+    protected MessageContext createMessageContext() {
         return JAXRSUtils.createContextValue(JAXRSUtils.getCurrentMessage(), null, MessageContext.class);
     }
 }


[cxf] 02/02: [CXF-8158] Only proceed with javadoc description replacement when JAX-RS and OpenAPI parameters have same size

Posted by il...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 3.2.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 9b955067d520f6a1974020708cd5471f7fe7d234
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Thu Nov 14 09:28:15 2019 +0100

    [CXF-8158] Only proceed with javadoc description replacement when JAX-RS and OpenAPI parameters have same size
---
 .../java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java b/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
index c3e05cf..4e08823 100644
--- a/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
+++ b/rt/rs/description-openapi-v3/src/main/java/org/apache/cxf/jaxrs/openapi/OpenApiCustomizer.java
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.ws.rs.ApplicationPath;
 
@@ -47,7 +48,6 @@ import io.swagger.v3.oas.models.parameters.Parameter;
 import io.swagger.v3.oas.models.responses.ApiResponse;
 import io.swagger.v3.oas.models.servers.Server;
 import io.swagger.v3.oas.models.tags.Tag;
-import java.util.Optional;
 
 public class OpenApiCustomizer {
 
@@ -106,9 +106,9 @@ public class OpenApiCustomizer {
                     ClassResourceInfo cri = operations.get(pathKey);
 
                     tag = Optional.of(new Tag());
-                    tag.setName(cri.getURITemplate().getValue().replaceAll("/", "_"));
+                    tag.get().setName(cri.getURITemplate().getValue().replaceAll("/", "_"));
                     if (javadocProvider != null) {
-                        tag.setDescription(javadocProvider.getClassDoc(cri));
+                        tag.get().setDescription(javadocProvider.getClassDoc(cri));
                     }
 
                     if (!tags.contains(tag.get())) {
@@ -135,15 +135,15 @@ public class OpenApiCustomizer {
                             List<Parameter> parameters = new ArrayList<>();
                             addParameters(parameters);
                             operation.setParameters(parameters);
-                        } else {
+                        } else if (operation.getParameters().size() == ori.getParameters().size()) {
                             for (int i = 0; i < operation.getParameters().size(); i++) {
                                 if (StringUtils.isBlank(operation.getParameters().get(i).getDescription())) {
                                     operation.getParameters().get(i).
                                             setDescription(javadocProvider.getMethodParameterDoc(ori, i));
                                 }
                             }
-                            addParameters(operation.getParameters());
                         }
+                        addParameters(operation.getParameters());
 
                         customizeResponses(operation, ori);
                     }