From abb2c4d57e885e1e22bddb6734883309666783f7 Mon Sep 17 00:00:00 2001 From: wejs Date: Tue, 6 Feb 2018 17:14:35 +0100 Subject: [PATCH] Sonar fixes in RestServiceNode Part2 Additionally lesser changes in JsonParsingNone and FlowGenerator Change-Id: Id4a31df9c3c902d33522114c7e2d82654e60a352 Issue-ID: APPC-525 Signed-off-by: wejs --- .../appc/flow/controller/node/FlowGenerator.java | 9 +-- .../appc/flow/controller/node/JsonParsingNode.java | 35 ++++------ .../appc/flow/controller/node/RestServiceNode.java | 77 ++++++++-------------- 3 files changed, 44 insertions(+), 77 deletions(-) diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java index fe894c955..74a513fc8 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java @@ -45,7 +45,7 @@ public class FlowGenerator { log.debug("Data in context" + ctx.getAttributeKeySet() ); Transactions transactions = new Transactions(); - List transactionList = new ArrayList(); + List transactionList = new ArrayList<>(); Transaction singleTransaction = new Transaction(); singleTransaction.setTransactionId(1); @@ -54,10 +54,7 @@ public class FlowGenerator { singleTransaction.setPayload(ctx.getAttribute(FlowControllerConstants.PAYLOAD)); singleTransaction.setActionLevel(ctx.getAttribute(FlowControllerConstants.ACTION_LEVEL)); - - - - List responseList = new ArrayList(); + List responseList = new ArrayList<>(); Response response = new Response(); ResponseAction ra = new ResponseAction(); @@ -70,7 +67,7 @@ public class FlowGenerator { transactions.setTransactions(transactionList); - log.debug("Sequence String" + transactions.toString()); + log.debug(fn + " Sequence String" + transactions.toString()); return transactions; } diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/JsonParsingNode.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/JsonParsingNode.java index 7952c1cfb..d6d3ee120 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/JsonParsingNode.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/JsonParsingNode.java @@ -21,7 +21,6 @@ package org.onap.appc.flow.controller.node; import java.io.IOException; -import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -40,53 +39,45 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class JsonParsingNode implements SvcLogicJavaPlugin{ - private static final EELFLogger log = EELFManager.getInstance().getLogger(JsonParsingNode.class); - private static final String SDNC_CONFIG_DIR_VAR = "SDNC_CONFIG_DIR"; public void parse(Map inParams, SvcLogicContext ctx) throws SvcLogicException { String fn = "RestServiceNode.sendRequest"; log.info("Received processParamKeys call with params : " + inParams); String responsePrefix = inParams.get(FlowControllerConstants.INPUT_PARAM_RESPONSE_PRIFIX); - try - { - responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; + try { //Remove below for Block - if(isValidJSON(inParams.get("data")) !=null){ - JsonNode jnode = isValidJSON(inParams.get("data")); - ObjectMapper mapper = new ObjectMapper(); - Map map = new HashMap(); - map = mapper.readValue(jnode.toString(), new TypeReference>(){}); + JsonNode jnode = isValidJSON(inParams.get("data")); + if(jnode != null) { + Map map = new ObjectMapper().readValue(jnode.toString(), new TypeReference>(){}); for (Entry entry : map.entrySet()) { ctx.setAttribute(responsePrefix + entry.getKey(),(String) entry.getValue()); } - } ctx.setAttribute(responsePrefix + FlowControllerConstants.OUTPUT_PARAM_STATUS, FlowControllerConstants.OUTPUT_STATUS_SUCCESS); } catch (Exception e) { ctx.setAttribute(responsePrefix + FlowControllerConstants.OUTPUT_PARAM_STATUS, FlowControllerConstants.OUTPUT_STATUS_FAILURE); ctx.setAttribute(responsePrefix + FlowControllerConstants.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage()); - e.printStackTrace(); - log.error("Error Message : " + e.getMessage()); + log.error(fn + " Error Message : " + e.getMessage(), e); throw new SvcLogicException(e.getMessage()); } } - public JsonNode isValidJSON(String json) throws IOException { - JsonNode output = null; + private JsonNode isValidJSON(String json) throws IOException { + JsonNode output; log.info("Received response from Interface " + json); - if(json ==null || json.isEmpty()) + if(json == null || json.isEmpty()) return null; - try{ + try { ObjectMapper objectMapper = new ObjectMapper(); output = objectMapper.readTree(json); - } catch(JsonProcessingException e){ - log.warn("Response received from interface is not a valid JSON block" + json); + } catch(JsonProcessingException e) { + log.warn("Response received from interface is not a valid JSON block" + json, e); return null; - } - + } return output; } } diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java index aa01e5ba9..f3b9b0495 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/RestServiceNode.java @@ -43,7 +43,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class RestServiceNode implements SvcLogicJavaPlugin{ - private static final EELFLogger log = EELFManager.getInstance().getLogger(RestServiceNode.class); private static final String SDNC_CONFIG_DIR_VAR = "SDNC_CONFIG_DIR"; @@ -51,8 +50,7 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ String fn = "RestServiceNode.sendRequest"; log.info("Received processParamKeys call with params : " + inParams); String responsePrefix = inParams.get(FlowControllerConstants.INPUT_PARAM_RESPONSE_PRIFIX); - try - { + try { responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : ""; //Remove below for Block for (Object key : ctx.getAttributeKeySet()) { @@ -67,14 +65,13 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ } catch (Exception e) { ctx.setAttribute(responsePrefix + FlowControllerConstants.OUTPUT_PARAM_STATUS, FlowControllerConstants.OUTPUT_STATUS_FAILURE); ctx.setAttribute(responsePrefix + FlowControllerConstants.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage()); - e.printStackTrace(); - log.error("Error Message : " + e.getMessage()); + log.error("Error Message : " + e.getMessage(), e); throw new SvcLogicException(e.getMessage()); } } - public void send(SvcLogicContext ctx, Map inParams) throws Exception{ - try{ + private void send(SvcLogicContext ctx, Map inParams) throws Exception { + try { Properties prop = loadProperties(); log.info("Loaded Properties " + prop.toString()); String responsePrefix = inParams.get(FlowControllerConstants.INPUT_PARAM_RESPONSE_PRIFIX); @@ -82,32 +79,31 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ String resourceUri = ""; if(ctx.getAttribute(FlowControllerConstants.INPUT_URL) != null && !(ctx.getAttribute(FlowControllerConstants.INPUT_URL).isEmpty())) resourceUri = ctx.getAttribute(FlowControllerConstants.INPUT_URL); - else{ + else { resourceUri = resourceUri.concat(FlowControllerConstants.HTTP); log.info("resourceUri= " + resourceUri ); resourceUri = resourceUri.concat(ctx.getAttribute(FlowControllerConstants.INPUT_HOST_IP_ADDRESS)); resourceUri = resourceUri.concat(":"); resourceUri = resourceUri.concat(ctx.getAttribute(FlowControllerConstants.INPUT_PORT_NUMBER)); - + if(ctx.getAttribute(FlowControllerConstants.INPUT_CONTEXT) != null && !ctx.getAttribute(FlowControllerConstants.INPUT_CONTEXT).isEmpty()){ resourceUri = resourceUri.concat("/").concat(ctx.getAttribute(FlowControllerConstants.INPUT_CONTEXT)); log.info("resourceUri= " + resourceUri ); } else if(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".context")) != null ){ - log.info("resourceUri = " + resourceUri ); + log.info("resourceUri = " + resourceUri ); resourceUri = resourceUri.concat("/").concat(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".context"))); - } - else + } else { throw new Exception("Could Not found the context for operation " + ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION)); - + } if(ctx.getAttribute(FlowControllerConstants.INPUT_SUB_CONTEXT) != null && !ctx.getAttribute(FlowControllerConstants.INPUT_SUB_CONTEXT).isEmpty()){ - resourceUri = resourceUri.concat("/").concat(ctx.getAttribute(FlowControllerConstants.INPUT_SUB_CONTEXT)); - log.info("resourceUri" + resourceUri ); + resourceUri = resourceUri.concat("/").concat(ctx.getAttribute(FlowControllerConstants.INPUT_SUB_CONTEXT)); + log.info("resourceUri" + resourceUri ); } else if(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".sub-context")) != null ){ - resourceUri = resourceUri.concat("/").concat(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".sub-context"))); - log.info("resourceUri" + resourceUri ); + resourceUri = resourceUri.concat("/").concat(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".sub-context"))); + log.info("resourceUri" + resourceUri ); } } @@ -123,16 +119,15 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ throw new Exception("Dont know request-action " + transaction.getAction()); //This code need to get changed to get the UserID and pass from a common place. - if(transaction.getuId() == null ) + if(transaction.getuId() == null) transaction.setuId(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".default-rest-user"))); if(transaction.getPswd() == null) transaction.setPswd(prop.getProperty(ctx.getAttribute(FlowControllerConstants.INPUT_REQUEST_ACTION).concat(".default-rest-pass"))); HashMap output = restRequestExecutor.execute(transaction, ctx); - if(output.get("restResponse") !=null && isValidJSON(output.get("restResponse")) != null) - { - ctx.setAttribute(responsePrefix + "." + FlowControllerConstants.OUTPUT_STATUS_MESSAGE , output.get("restResponse")); + if(isValidJSON(output.get("restResponse")) != null) { + ctx.setAttribute(responsePrefix + "." + FlowControllerConstants.OUTPUT_STATUS_MESSAGE , output.get("restResponse")); // JsonNode restResponse = isValidJSON(output.get("restResponse")); // for (String key : inParams.keySet()) { // if(key !=null && key.startsWith("output-")){ @@ -148,11 +143,9 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ // } } log.info("Response from Rest :" ); - } - catch(Exception e) - { - e.printStackTrace(); - log.error("Error Message " + e.getMessage()); + + } catch(Exception e) { + log.error("Error Message: " + e.getMessage(), e); throw e; } } @@ -163,8 +156,7 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ if (propDir == null) throw new Exception("Cannot find Property file -" + SDNC_CONFIG_DIR_VAR); String propFile = propDir + FlowControllerConstants.APPC_FLOW_CONTROLLER; - InputStream propStream = new FileInputStream(propFile); - try + try (InputStream propStream = new FileInputStream(propFile)) { props.load(propStream); } @@ -172,35 +164,22 @@ public class RestServiceNode implements SvcLogicJavaPlugin{ { throw new Exception("Could not load properties file " + propFile, e); } - finally - { - try - { - propStream.close(); - } - catch (Exception e) - { - log.warn("Could not close FileInputStream", e); - } - } - // TODO Auto-generated method stub return props; } - - public JsonNode isValidJSON(String json) throws IOException { - JsonNode output = null; + + private JsonNode isValidJSON(String json) throws IOException { + JsonNode output; log.info("Received response from Interface " + json); - if(json ==null || json.isEmpty()) + if(json == null || json.isEmpty()) return null; - try{ + try { ObjectMapper objectMapper = new ObjectMapper(); output = objectMapper.readTree(json); - } catch(JsonProcessingException e){ - log.warn("Response received from interface is not a valid JSON block" + json); + } catch(JsonProcessingException e) { + log.warn("Response received from interface is not a valid JSON block" + json, e); return null; - } + } log.info("state is " + output.findValue("state")); - return output; } } -- 2.16.6