X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-rest-stub%2Fcps-ncmp-rest-stub-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Frest%2Fstub%2Fcontroller%2FNetworkCmProxyStubController.java;h=e33af45f9bf2c8cabec7da9b8e2abc0e767b8383;hb=fc7a5d30953cfedd7e2ea2f969adab03716de6df;hp=ee035bf5791b5d10f06e4f592ee4251fe7339dbd;hpb=4992e60c1fca462d199799852fc4c93609d49e5a;p=cps.git diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java index ee035bf57..e33af45f9 100644 --- a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/src/main/java/org/onap/cps/ncmp/rest/stub/controller/NetworkCmProxyStubController.java @@ -22,16 +22,18 @@ package org.onap.cps.ncmp.rest.stub.controller; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.UUID; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.impl.operations.DatastoreType; import org.onap.cps.ncmp.rest.api.NetworkCmProxyApi; @@ -42,21 +44,24 @@ import org.onap.cps.ncmp.rest.model.RestModuleReference; import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; import org.onap.cps.ncmp.rest.model.RestOutputCmHandleCompositeState; import org.onap.cps.ncmp.rest.model.RestOutputCmHandlePublicProperties; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.ClassPathResource; +import org.onap.cps.ncmp.rest.stub.providers.ResourceProvider; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - @Slf4j @RestController @RequestMapping("${rest.api.ncmp-stub-base-path}") public class NetworkCmProxyStubController implements NetworkCmProxyApi { - @Value("${stub.path}") - private String pathToResponseFiles; + @Autowired + private ResourceProvider resourceProvider; + + @Autowired + private ObjectMapper objectMapper; + private static final String ASYNC_REQUEST_ID = "requestId"; @Override @@ -70,16 +75,18 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApi { final Map asyncResponseData = asyncResponse.getBody(); Object responseObject = null; // read JSON file and map/convert to java POJO - final ClassPathResource resource = new ClassPathResource( - pathToResponseFiles + "passthrough-operational-example.json"); - try (InputStream inputStream = resource.getInputStream()) { - final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); - final ObjectMapper mapper = new ObjectMapper(); - responseObject = mapper.readValue(string, Object.class); - } catch (final IOException exception) { - log.error("Error reading the file.", exception); + try { + final Optional optionalResponseObject = getResponseObject( + "passthrough-operational-example.json", Object.class); + if (optionalResponseObject.isPresent()) { + responseObject = optionalResponseObject.get(); + } + + } catch (final IOException ioException) { + log.error("Error reading the file.", ioException); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } + if (asyncResponseData == null) { return ResponseEntity.ok(responseObject); } @@ -91,18 +98,20 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApi { @Override public ResponseEntity> searchCmHandles( final CmHandleQueryParameters cmHandleQueryParameters) { - List restOutputCmHandles = null; // read JSON file and map/convert to java POJO - final ClassPathResource resource = new ClassPathResource(pathToResponseFiles + "cmHandlesSearch.json"); - try (InputStream inputStream = resource.getInputStream()) { - final String string = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); - final ObjectMapper mapper = new ObjectMapper(); - restOutputCmHandles = Arrays.asList(mapper.readValue(string, RestOutputCmHandle[].class)); - } catch (final IOException exception) { - log.error("Error reading the file.", exception); + try { + final Optional optionalResponseObject = getResponseObject("cmHandlesSearch.json", + RestOutputCmHandle[].class); + if (optionalResponseObject.isPresent()) { + final List restOutputCmHandles = Arrays.asList(optionalResponseObject.get()); + return ResponseEntity.ok(restOutputCmHandles); + } + } catch (final IOException ioException) { + log.error("Error reading the file.", ioException); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } - return ResponseEntity.ok(restOutputCmHandles); + + return ResponseEntity.ok(Collections.emptyList()); } private ResponseEntity> populateAsyncResponse(final String topicParamInQuery) { @@ -122,14 +131,23 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApi { return asyncResponseData; } + private Optional getResponseObject(final String filename, final Class type) throws IOException { + final Optional optionalInputStream = resourceProvider.getResourceInputStream(filename); + if (optionalInputStream.isPresent()) { + final String content = new String(optionalInputStream.get().readAllBytes(), StandardCharsets.UTF_8); + return Optional.of(objectMapper.readValue(content, type)); + } + return Optional.empty(); + } + @Override - public ResponseEntity createResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, - final String datastoreName, final String cmHandle, - @Valid final Object body, + public ResponseEntity createResourceDataRunningForCmHandle(final String datastoreName, final String cmHandle, + @NotNull @Valid final String resourceIdentifier, + @Valid final Object body, final String contentType) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } - + @Override public ResponseEntity deleteResourceDataRunningForCmHandle(final String datastoreName, final String cmHandle, @NotNull @Valid final String resourceIdentifier, @@ -165,13 +183,13 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApi { } @Override - public ResponseEntity patchResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, - final String datastoreName, final String cmHandle, - @Valid final Object body, + public ResponseEntity patchResourceDataRunningForCmHandle(final String datastoreName, final String cmHandle, + @NotNull @Valid final String resourceIdentifier, + @Valid final Object body, final String contentType) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } - + @Override public ResponseEntity queryResourceDataForCmHandle(final String datastoreName, final String cmHandle, @Valid final String cpsPath, @Valid final String options, @@ -200,9 +218,10 @@ public class NetworkCmProxyStubController implements NetworkCmProxyApi { } @Override - public ResponseEntity updateResourceDataRunningForCmHandle(@NotNull @Valid final String resourceIdentifier, - final String datastoreName, - final String cmHandle, @Valid final Object body, + public ResponseEntity updateResourceDataRunningForCmHandle(final String datastoreName, + final String cmHandle, + @NotNull @Valid final String resourceIdentifier, + @Valid final Object body, final String contentType) { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);