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=bf84b439f541a2d81edcd34481d9eed3b2861462;hb=cb623959af429d7ac0999a113d3373cb8f950ee2;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..bf84b439f 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 @@ -26,9 +26,11 @@ 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; @@ -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,6 +131,15 @@ 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,