In preparation for Java 17 migration Swagger codegen needs to be replaced by OpenaAPI 3.0
Issue-ID: CPS-1745
Signed-off-by: egernug <gerard.nugent@est.tech>
Change-Id: I46be8bafad5b5ccff055221e4f3c60b7ec422a70
YangResources:
type: array
items:
- type: object
$ref: '#/components/schemas/YangResource'
YangResource:
cmHandleProperties:
type: object
+ nullable: true
additionalProperties:
type: string
example: {"prop1":"value1","prop2":"value2"}
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
- <version>2.1.4</version>
+ <version>2.2.10</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
</resources>
<plugins>
<plugin>
- <groupId>io.swagger.codegen.v3</groupId>
- <artifactId>swagger-codegen-maven-plugin</artifactId>
+ <groupId>org.openapitools</groupId>
+ <artifactId>openapi-generator-maven-plugin</artifactId>
+ <version>6.6.0</version>
<executions>
<execution>
<goals>
</goals>
<configuration>
<inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
- <language>spring</language>
+ <generatorName>spring</generatorName>
<generateSupportingFiles>false</generateSupportingFiles>
+ <invokerPackage>org.onap.cps.ncmp.dmi.rest.controller</invokerPackage>
<apiPackage>org.onap.cps.ncmp.dmi.rest.api</apiPackage>
<modelPackage>org.onap.cps.ncmp.dmi.model</modelPackage>
+ <generateAliasAsModel>true</generateAliasAsModel>
<configOptions>
<sourceFolder>src/gen/java</sourceFolder>
<dateLibrary>java11</dateLibrary>
<interfaceOnly>true</interfaceOnly>
<useTags>true</useTags>
+ <openApiNullable>false</openApiNullable>
+ <skipDefaultInterface>true</skipDefaultInterface>
</configOptions>
</configuration>
</execution>
<phase>compile</phase>
<configuration>
<inputSpec>${project.basedir}/openapi/openapi.yml</inputSpec>
- <language>openapi-yaml</language>
+ <generatorName>openapi-yaml</generatorName>
</configuration>
</execution>
</executions>
<outputDirectory>${project.basedir}/target/classes/static/api-docs</outputDirectory>
<resources>
<resource>
- <directory>${project.basedir}/target/generated-sources/swagger/</directory>
+ <directory>${project.basedir}/target/generated-sources/openapi/openapi</directory>
<includes>
<include>openapi.yaml</include>
</includes>
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;
return ResponseEntity.ok(moduleSet);
}
+
@Override
public ResponseEntity<YangResources> retrieveModuleResources(
final String cmHandle,
/**
* 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<Void> getResourceDataForCmHandleDataOperation(final String requestId, final String topic,
- final List<DataOperationRequest> dataOperationRequests) {
+ public ResponseEntity<Void> getResourceDataForCmHandleDataOperation(final String topic, final String requestId,
+ final ResourceDataOperationRequests resourceDataOperationRequests) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
* 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<Object> dataAccessPassthrough(final String resourceIdentifier,
- final String datastoreName,
+ public ResponseEntity<Object> dataAccessPassthrough(final String datastoreName,
final String cmHandle,
+ final String resourceIdentifier,
final String optionsParamInQuery,
final String topicParamInQuery,
final DataAccessRequest dataAccessRequest) {
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;
}
}
- 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());
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
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<ModuleSetSchemas>
+ def moduleSetSchemasList = [moduleSetSchema] as List<ModuleSetSchemasInner>
def moduleSet = new ModuleSet()
moduleSet.schemas(moduleSetSchemasList)
mockDmiService.getModulesForCmHandle('node1') >> moduleSet