[cxf] 01/02: Various small improvements to OpenApiCustomizer to allow easier override
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
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
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();