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

2019-11-14 Thread ilgrosso
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ò 
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 cris;
+protected List cris;
 
-private String applicationPath;
+protected String applicationPath;
 
 public OpenAPIConfiguration customize(final OpenAPIConfiguration 
configuration) {
 if (configuration == null) {
@@ -101,51 +101,53 @@ public class OpenApiCustomizer {
 
 List tags = new ArrayList<>();
 oas.getPaths().forEach((pathKey, pathItem) -> {
-Tag tag = null;
+Optional 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 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 key = 
Pair.of(subentry.getKey().name(), pathKey);
+Pair 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 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 < 

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

2019-11-14 Thread ilgrosso
This is an automated email from the ASF dual-hosted git repository.

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

commit 58a0c9ba8afe47b78d181e5d0eb3f98179cdc8cb
Author: Francesco Chicchiriccò 
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 f24f2d7..315e1d1 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 cris;
+protected List cris;
 
-private String applicationPath;
+protected String applicationPath;
 
 public OpenAPIConfiguration customize(final OpenAPIConfiguration 
configuration) {
 if (configuration == null) {
@@ -101,51 +101,53 @@ public class OpenApiCustomizer {
 
 List tags = new ArrayList<>();
 oas.getPaths().forEach((pathKey, pathItem) -> {
-Tag tag = null;
+Optional 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 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 key = 
Pair.of(subentry.getKey().name(), pathKey);
+Pair 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 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 < 

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

2019-11-14 Thread ilgrosso
This is an automated email from the ASF dual-hosted git repository.

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

commit ded3d576bd441552dd95ea7a094790f9987f0851
Author: Francesco Chicchiriccò 
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 f24f2d7..315e1d1 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 cris;
+protected List cris;
 
-private String applicationPath;
+protected String applicationPath;
 
 public OpenAPIConfiguration customize(final OpenAPIConfiguration 
configuration) {
 if (configuration == null) {
@@ -101,51 +101,53 @@ public class OpenApiCustomizer {
 
 List tags = new ArrayList<>();
 oas.getPaths().forEach((pathKey, pathItem) -> {
-Tag tag = null;
+Optional 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 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 key = 
Pair.of(subentry.getKey().name(), pathKey);
+Pair 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 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();