From: Pamela Dragosh Date: Fri, 26 Jan 2018 18:32:21 +0000 (-0500) Subject: Use try-with-resources X-Git-Tag: v1.2.0~178 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=commitdiff_plain;h=38261bb20e49c39f710aef47b5415dcdf14a1729 Use try-with-resources Also enhanced JUnit tests to ensure this will work. Reduced code. Issue-ID: POLICY-482 Change-Id: If07e17df274bdb709f7ca60078bd1fbd78d1aaaa Signed-off-by: Pamela Dragosh --- diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java index 1e6e3ef3a..e62c87839 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java @@ -25,7 +25,6 @@ import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; @@ -150,34 +149,22 @@ public class PolicyManagerServlet extends HttpServlet { protected static void initializeJSONLoad() { closedLoopJsonLocation = Paths.get(XACMLProperties .getProperty(XACMLRestProperties.PROP_ADMIN_CLOSEDLOOP)); - FileInputStream inputStream = null; - JsonReader jsonReader = null; String location = closedLoopJsonLocation.toString(); - try { - inputStream = new FileInputStream(location); - if (location.endsWith("json")) { - jsonReader = Json.createReader(inputStream); - policyNames = jsonReader.readArray(); - serviceTypeNamesList = new ArrayList<>(); - for (int i = 0; i < policyNames.size(); i++) { - javax.json.JsonObject policyName = policyNames.getJsonObject(i); - String name = policyName.getJsonString("serviceTypePolicyName").getString(); - serviceTypeNamesList.add(name); - } + if (! location.endsWith("json")) { + LOGGER.warn("JSONConfig file does not end with extension .json"); + return; + } + try (FileInputStream inputStream = new FileInputStream(location); + JsonReader jsonReader = Json.createReader(inputStream)) { + policyNames = jsonReader.readArray(); + serviceTypeNamesList = new ArrayList<>(); + for (int i = 0; i < policyNames.size(); i++) { + javax.json.JsonObject policyName = policyNames.getJsonObject(i); + String name = policyName.getJsonString("serviceTypePolicyName").getString(); + serviceTypeNamesList.add(name); } - } catch (FileNotFoundException e) { + } catch (IOException e) { LOGGER.error("Exception Occured while initializing the JSONConfig file"+e); - }finally{ - try { - if(inputStream != null){ - inputStream.close(); - } - if(jsonReader != null){ - jsonReader.close(); - } - } catch (IOException e) { - LOGGER.error("Exception Occured while closing the File InputStream"+e); - } } } diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java index dc2159bc1..267d5fa4e 100644 --- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java +++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java @@ -19,6 +19,7 @@ */ package org.onap.policy.admin; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.BufferedReader; @@ -134,12 +135,46 @@ public class PolicyManagerServletTest extends Mockito{ when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties"); System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "JSONConfig.json"); servlet.init(servletConfig); + + assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0); + assertTrue(PolicyManagerServlet.getPolicyNames().size() > 0); + } catch (Exception e1) { logger.error("Exception Occured"+e1); fail(); } } + @Test + public void testBadInitJson() { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + ServletConfig servletConfig = mock(ServletConfig.class); + try { + when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers)); + when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties"); + System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "JSONConfig.foo"); + servlet.init(servletConfig); + } catch (Exception e1) { + logger.error("Exception Occured"+e1); + fail(); + } + } + + @Test + public void testBadInitJsonInvalidFile() { + PolicyManagerServlet servlet = new PolicyManagerServlet(); + ServletConfig servletConfig = mock(ServletConfig.class); + try { + when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers)); + when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties"); + System.setProperty("xacml.rest.admin.closedLoopJSON", new File(".").getCanonicalPath() + File.separator + "src"+ File.separator + "test" + File.separator + "resources" + File.separator + "IDonotExist.json"); + servlet.init(servletConfig); + } catch (Exception e1) { + logger.error("Exception Occured"+e1); + fail(); + } + } + @SuppressWarnings("static-access") @Test public void testDescribePolicy(){