From b937b203b9e3276041428c7090c41a58583bc3f6 Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Thu, 5 Nov 2020 15:14:02 +0100 Subject: CBS configuration fetching - Fix deadlock problem which occurs during starting application Change-Id: I9103f0efd7caa105727f4814532934881335190f Issue-ID: DCAEGEN2-2495 Signed-off-by: Zebek Bogumil (cherry picked from commit 266777f52144bc1e6110c18d34de612538b78b26) --- .../onap/dcae/configuration/ConfigFilesFacade.java | 35 +++++++++++++++------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'src/main/java/org/onap/dcae/configuration/ConfigFilesFacade.java') diff --git a/src/main/java/org/onap/dcae/configuration/ConfigFilesFacade.java b/src/main/java/org/onap/dcae/configuration/ConfigFilesFacade.java index c0280c75..c94e6c30 100644 --- a/src/main/java/org/onap/dcae/configuration/ConfigFilesFacade.java +++ b/src/main/java/org/onap/dcae/configuration/ConfigFilesFacade.java @@ -40,16 +40,29 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class ConfigFilesFacade { +/** + * ConfigFilesFacade is used for reading and writing application properties and dmaap configuration. + */ +public class ConfigFilesFacade { private static final Logger log = LoggerFactory.getLogger(ConfigFilesFacade.class); - private final Path dMaaPConfigPath; - private final Path propertiesPath; + private Path dmaapConfigPath; + private Path propertiesPath; ConfigFilesFacade(Path propertiesPath, Path dMaaPConfigPath) { this.propertiesPath = propertiesPath; - this.dMaaPConfigPath = dMaaPConfigPath; + this.dmaapConfigPath = dMaaPConfigPath; + } + + /** + * Set new paths + * @param propertiesFile application property file + * @param dmaapConfigFile dmaap configuration file + */ + public void setPaths(Path propertiesFile, Path dmaapConfigFile) { + this.propertiesPath = propertiesFile; + this.dmaapConfigPath = dmaapConfigFile; } Try> readCollectorProperties() { @@ -62,19 +75,19 @@ class ConfigFilesFacade { } Try readDMaaPConfiguration() { - log.info(f("Reading DMaaP configuration from file: '%s'", dMaaPConfigPath)); - return readFile(dMaaPConfigPath) + log.info(f("Reading DMaaP configuration from file: '%s'", dmaapConfigPath)); + return readFile(dmaapConfigPath) .recover(FileNotFoundException.class, __ -> "{}") - .mapFailure(enhanceError("Unable to read DMaaP configuration from file '%s'", dMaaPConfigPath)) + .mapFailure(enhanceError("Unable to read DMaaP configuration from file '%s'", dmaapConfigPath)) .flatMap(Conversions::toJson) .onFailure(logError(log)) .peek(props -> log.info(f("Read following DMaaP properties: '%s'", props))); } Try writeDMaaPConfiguration(JSONObject dMaaPConfiguration) { - log.info(f("Writing DMaaP configuration '%s' into file '%s'", dMaaPConfiguration, dMaaPConfigPath)); - return writeFile(dMaaPConfigPath, indentConfiguration(dMaaPConfiguration.toString())) - .mapFailure(enhanceError("Could not save new DMaaP configuration to path '%s'", dMaaPConfigPath)) + log.info(f("Writing DMaaP configuration '%s' into file '%s'", dMaaPConfiguration, dmaapConfigPath)); + return writeFile(dmaapConfigPath, indentConfiguration(dMaaPConfiguration.toString())) + .mapFailure(enhanceError("Could not save new DMaaP configuration to path '%s'", dmaapConfigPath)) .onFailure(logError(log)) .peek(__ -> log.info("Written successfully")); } @@ -127,4 +140,4 @@ class ConfigFilesFacade { private String indentConfiguration(String configuration) { return new JSONObject(configuration).toString(4); } -} \ No newline at end of file +} -- cgit 1.2.3-korg