From 9939a1d4a4d390cfb89829ad253d94f8f4102ac5 Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Fri, 22 Jun 2018 08:56:43 +0200 Subject: [PATCH] Fix file stream closing Change-Id: Ie1417769a934fff51a1b8277e472a8f8c04b81eb Issue-ID: AAI-1234 Signed-off-by: Bogumil Zebek --- .../aai/datarouter/util/DataRouterProperties.java | 38 +++++++++++--------- .../aai/datarouter/util/SearchServiceAgent.java | 14 ++++---- .../datarouter/util/DataRouterPropertiesTest.java | 41 ++++++++++++++++++---- src/test/resources/data-router.properties | 2 ++ 4 files changed, 65 insertions(+), 30 deletions(-) create mode 100644 src/test/resources/data-router.properties diff --git a/src/main/java/org/onap/aai/datarouter/util/DataRouterProperties.java b/src/main/java/org/onap/aai/datarouter/util/DataRouterProperties.java index 2b17020..36e4a10 100644 --- a/src/main/java/org/onap/aai/datarouter/util/DataRouterProperties.java +++ b/src/main/java/org/onap/aai/datarouter/util/DataRouterProperties.java @@ -9,7 +9,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -24,31 +24,35 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.util.Properties; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class DataRouterProperties { - private static final Logger logger = LoggerFactory.getLogger(DataRouterProperties.class); + private static final Logger LOGGER = LoggerFactory.getLogger(DataRouterProperties.class); + + private static Properties properties; - private static Properties properties; + static { + File file = new File(DataRouterConstants.DR_CONFIG_FILE); + loadProperties(file); + } - static { - properties = new Properties(); - File file = new File(DataRouterConstants.DR_CONFIG_FILE); - try { - properties.load(new FileInputStream(file)); - } catch (FileNotFoundException e) { - logger.error("FileNotFoundException: ", e); - } catch (IOException e) { - logger.error("IOException: ", e); + static void loadProperties(File file) { + properties = new Properties(); + try (InputStream props = new FileInputStream(file)) { + properties.load(props); + } catch (FileNotFoundException e) { + LOGGER.error("FileNotFoundException: ", e); + } catch (IOException e) { + LOGGER.error("IOException: ", e); + } } - } - public static String get(String key) { - return properties.getProperty(key); - } + public static String get(String key) { + return properties.getProperty(key); + } } diff --git a/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java b/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java index 42861b4..bbdb4c8 100644 --- a/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java +++ b/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java @@ -320,8 +320,7 @@ public class SearchServiceAgent { * Removes a document from the Search Service. * * @param index - The index to create the document in. - * @param id - The identifier for the document. - * @param payload - The document contents. + * @param documentId - The identifier for the document. * @param headers - HTTP headers. */ public void deleteDocument(String index, String documentId, Map> headers) { @@ -340,12 +339,13 @@ public class SearchServiceAgent { */ protected String loadFileData(String filename) throws Exception { StringBuilder data = new StringBuilder(); - try { - BufferedReader in = new BufferedReader(new InputStreamReader( - EntityEventPolicy.class.getClassLoader().getResourceAsStream("/" + filename), - StandardCharsets.UTF_8)); - String line; + try (InputStreamReader inputStreamReader = new InputStreamReader(EntityEventPolicy.class.getClassLoader() + .getResourceAsStream("/" + filename), StandardCharsets.UTF_8); BufferedReader in = new BufferedReader( + inputStreamReader) + ) { + + String line; while ((line = in.readLine()) != null) { data.append(line); } diff --git a/src/test/java/org/onap/aai/datarouter/util/DataRouterPropertiesTest.java b/src/test/java/org/onap/aai/datarouter/util/DataRouterPropertiesTest.java index 024a23d..51505a9 100644 --- a/src/test/java/org/onap/aai/datarouter/util/DataRouterPropertiesTest.java +++ b/src/test/java/org/onap/aai/datarouter/util/DataRouterPropertiesTest.java @@ -3,13 +3,13 @@ * org.onap.aai * ================================================================================ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs + * Copyright © 2017-2018 Nokia * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -20,14 +20,43 @@ */ package org.onap.aai.datarouter.util; +import java.io.File; +import java.net.URISyntaxException; +import org.junit.Assert; import org.junit.Test; -import static org.junit.Assert.*; - +/** + * @author Bogumil Zebek + */ public class DataRouterPropertiesTest { @Test - public void testGet(){ - DataRouterProperties.get("key"); + public void shouldLoadDataRouterPropertiesProperlyWhenSpecifiedFileExists() throws URISyntaxException { + // given + ClassLoader classLoader = getClass().getClassLoader(); + + File file = new File( + classLoader.getResource("data-router.properties").getFile() + ); + + // when + DataRouterProperties.loadProperties(file); + + //then + Assert.assertEquals("value1", DataRouterProperties.get("key1")); + Assert.assertEquals("value2", DataRouterProperties.get("key2")); + Assert.assertNull(DataRouterProperties.get("nonExistingKey")); + } + + @Test + public void shouldCreateEmptyDataRouterPropertiesContainerWhenSpecifiedFileDoesNotExist() { + // given + File nonExistingFile = new File("nonExistingFile.properties"); + + // when + DataRouterProperties.loadProperties(nonExistingFile); + + // then + Assert.assertNull(DataRouterProperties.get("key")); } } \ No newline at end of file diff --git a/src/test/resources/data-router.properties b/src/test/resources/data-router.properties new file mode 100644 index 0000000..f995a3b --- /dev/null +++ b/src/test/resources/data-router.properties @@ -0,0 +1,2 @@ +key1=value1 +key2=value2 \ No newline at end of file -- 2.16.6