From 1118bedbd3981c12aebcb9fa99e8744a9bf413c3 Mon Sep 17 00:00:00 2001 From: egernug Date: Wed, 28 Jun 2023 10:57:53 +0100 Subject: Change to OpenAPI 3.0 In preparation for Java 17 migration Swagger codegen needs to be replaced by OpenaAPI 3.0 Issue-ID: CPS-1745 Signed-off-by: egernug Change-Id: I46be8bafad5b5ccff055221e4f3c60b7ec422a70 --- openapi/components.yml | 2 +- pom.xml | 17 +++++++++++------ .../cps/ncmp/dmi/rest/controller/DmiRestController.java | 17 +++++++++-------- .../org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java | 6 +++--- .../dmi/rest/controller/DmiRestControllerSpec.groovy | 6 +++--- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/openapi/components.yml b/openapi/components.yml index a339134e..3104a6dc 100644 --- a/openapi/components.yml +++ b/openapi/components.yml @@ -137,7 +137,6 @@ components: YangResources: type: array items: - type: object $ref: '#/components/schemas/YangResource' YangResource: @@ -173,6 +172,7 @@ components: cmHandleProperties: type: object + nullable: true additionalProperties: type: string example: {"prop1":"value1","prop2":"value2"} diff --git a/pom.xml b/pom.xml index 7a37f765..e35c840f 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ io.swagger.core.v3 swagger-annotations - 2.1.4 + 2.2.10 net.logstash.logback @@ -247,8 +247,9 @@ - io.swagger.codegen.v3 - swagger-codegen-maven-plugin + org.openapitools + openapi-generator-maven-plugin + 6.6.0 @@ -256,15 +257,19 @@ ${project.basedir}/openapi/openapi.yml - spring + spring false + org.onap.cps.ncmp.dmi.rest.controller org.onap.cps.ncmp.dmi.rest.api org.onap.cps.ncmp.dmi.model + true src/gen/java java11 true true + false + true @@ -276,7 +281,7 @@ compile ${project.basedir}/openapi/openapi.yml - openapi-yaml + openapi-yaml @@ -294,7 +299,7 @@ ${project.basedir}/target/classes/static/api-docs - ${project.basedir}/target/generated-sources/swagger/ + ${project.basedir}/target/generated-sources/openapi/openapi openapi.yaml diff --git a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java index b0ee4cf0..2ed1ebd3 100644 --- a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java +++ b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java @@ -32,10 +32,10 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.dmi.model.CmHandles; import org.onap.cps.ncmp.dmi.model.DataAccessRequest; -import org.onap.cps.ncmp.dmi.model.DataOperationRequest; import org.onap.cps.ncmp.dmi.model.ModuleReferencesRequest; import org.onap.cps.ncmp.dmi.model.ModuleResourcesReadRequest; import org.onap.cps.ncmp.dmi.model.ModuleSet; +import org.onap.cps.ncmp.dmi.model.ResourceDataOperationRequests; import org.onap.cps.ncmp.dmi.model.YangResources; import org.onap.cps.ncmp.dmi.notifications.async.AsyncTaskExecutor; import org.onap.cps.ncmp.dmi.rest.api.DmiPluginApi; @@ -80,6 +80,7 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi { return ResponseEntity.ok(moduleSet); } + @Override public ResponseEntity retrieveModuleResources( final String cmHandle, @@ -107,14 +108,14 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi { /** * This method is not implemented for ONAP DMI plugin. * - * @param requestId requestId generated by NCMP as an ack for client * @param topic client given topic name - * @param dataOperationRequests list of operation details + * @param requestId requestId generated by NCMP as an ack for client + * @param resourceDataOperationRequests list of operation details * @return (@ code ResponseEntity) response entity */ @Override - public ResponseEntity getResourceDataForCmHandleDataOperation(final String requestId, final String topic, - final List dataOperationRequests) { + public ResponseEntity getResourceDataForCmHandleDataOperation(final String topic, final String requestId, + final ResourceDataOperationRequests resourceDataOperationRequests) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } @@ -123,18 +124,18 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi { * It filters the response on the basis of options query parameters and returns response. Passthrough Running * supports both read and write operation whereas passthrough operational does not support write operations. * - * @param resourceIdentifier resource identifier to fetch data * @param datastoreName name of the datastore * @param cmHandle cm handle identifier + * @param resourceIdentifier resource identifier to fetch data * @param optionsParamInQuery options query parameter * @param topicParamInQuery topic name for (triggering) async responses * @param dataAccessRequest data Access Request * @return {@code ResponseEntity} response entity */ @Override - public ResponseEntity dataAccessPassthrough(final String resourceIdentifier, - final String datastoreName, + public ResponseEntity dataAccessPassthrough(final String datastoreName, final String cmHandle, + final String resourceIdentifier, final String optionsParamInQuery, final String topicParamInQuery, final DataAccessRequest dataAccessRequest) { diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java index 753d16f7..a9a13a38 100644 --- a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java +++ b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java @@ -38,7 +38,7 @@ import org.onap.cps.ncmp.dmi.exception.ModuleResourceNotFoundException; import org.onap.cps.ncmp.dmi.exception.ModulesNotFoundException; import org.onap.cps.ncmp.dmi.model.DataAccessRequest; import org.onap.cps.ncmp.dmi.model.ModuleSet; -import org.onap.cps.ncmp.dmi.model.ModuleSetSchemas; +import org.onap.cps.ncmp.dmi.model.ModuleSetSchemasInner; import org.onap.cps.ncmp.dmi.model.YangResource; import org.onap.cps.ncmp.dmi.model.YangResources; import org.onap.cps.ncmp.dmi.service.client.NcmpRestClient; @@ -137,8 +137,8 @@ public class DmiServiceImpl implements DmiService { } } - private ModuleSetSchemas toModuleSetSchemas(final ModuleSchema moduleSchema) { - final ModuleSetSchemas moduleSetSchemas = new ModuleSetSchemas(); + private ModuleSetSchemasInner toModuleSetSchemas(final ModuleSchema moduleSchema) { + final ModuleSetSchemasInner moduleSetSchemas = new ModuleSetSchemasInner(); moduleSetSchemas.setModuleName(moduleSchema.getIdentifier()); moduleSetSchemas.setNamespace(moduleSchema.getNamespace()); moduleSetSchemas.setRevision(moduleSchema.getVersion()); diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy index 96c1ed8e..8ce9735a 100644 --- a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy +++ b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy @@ -27,12 +27,12 @@ import org.onap.cps.ncmp.dmi.config.WebSecurityConfig import org.onap.cps.ncmp.dmi.exception.DmiException import org.onap.cps.ncmp.dmi.exception.ModuleResourceNotFoundException import org.onap.cps.ncmp.dmi.exception.ModulesNotFoundException +import org.onap.cps.ncmp.dmi.model.ModuleSetSchemasInner import org.onap.cps.ncmp.dmi.notifications.async.AsyncTaskExecutor import org.onap.cps.ncmp.dmi.notifications.async.DmiAsyncRequestResponseEventProducer import org.onap.cps.ncmp.dmi.service.model.ModuleReference import org.onap.cps.ncmp.dmi.model.ModuleSet -import org.onap.cps.ncmp.dmi.model.ModuleSetSchemas import org.onap.cps.ncmp.dmi.model.YangResource import org.onap.cps.ncmp.dmi.model.YangResources import org.onap.cps.ncmp.dmi.service.DmiService @@ -84,10 +84,10 @@ class DmiRestControllerSpec extends Specification { def getModuleUrl = "$basePathV1/ch/node1/modules" def someValidJson = '{}' and: 'DMI service returns some module' - def moduleSetSchema = new ModuleSetSchemas(namespace:'some-namespace', + def moduleSetSchema = new ModuleSetSchemasInner(namespace:'some-namespace', moduleName:'some-moduleName', revision:'some-revision') - def moduleSetSchemasList = [moduleSetSchema] as List + def moduleSetSchemasList = [moduleSetSchema] as List def moduleSet = new ModuleSet() moduleSet.schemas(moduleSetSchemasList) mockDmiService.getModulesForCmHandle('node1') >> moduleSet -- cgit 1.2.3-korg