From 3fdd800133ad5f07aadc90f9731cca28e96896d9 Mon Sep 17 00:00:00 2001 From: sebdet Date: Fri, 4 Jun 2021 17:49:31 +0200 Subject: Create a common ConfigurationManager class Create a common ConfigurationManager class as some classes have the same logic Issue-ID: SDC-3616 Signed-off-by: sebdet Change-Id: I44aeb3a4baf45753c3c43f7b4d202253ae4186eb --- .../openecomp-sdc-notification-worker/pom.xml | 5 ++ .../notification/config/ConfigurationManager.java | 93 ---------------------- .../config/NotificationConfigurationManager.java | 40 ++++++++++ .../notification/workers/NotificationWorker.java | 4 +- .../impl/NewNotificationsReaderRestImpl.java | 4 +- .../src/test/resources/configuration.yaml | 5 ++ .../test/resources/onboarding_configuration.yaml | 5 -- 7 files changed, 54 insertions(+), 102 deletions(-) delete mode 100644 openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/ConfigurationManager.java create mode 100644 openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/NotificationConfigurationManager.java create mode 100644 openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml delete mode 100644 openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/onboarding_configuration.yaml (limited to 'openecomp-be/lib/openecomp-sdc-notification-lib') diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/pom.xml b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/pom.xml index 5842955fb9..4f56264846 100644 --- a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/pom.xml +++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/pom.xml @@ -13,6 +13,11 @@ + + org.openecomp.sdc.core + openecomp-common-lib + ${project.version} + org.openecomp.sdc.core openecomp-utilities-lib diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/ConfigurationManager.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/ConfigurationManager.java deleted file mode 100644 index e597de0f20..0000000000 --- a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/ConfigurationManager.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -package org.openecomp.sdc.notification.config; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.function.BiConsumer; -import org.onap.sdc.tosca.services.YamlUtil; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; - -public class ConfigurationManager { - - private static final String CONFIGURATION_YAML_FILE = "onboarding_configuration.yaml"; - private static final String NOTIFICATIONS_CONFIG = "notifications"; - private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationManager.class); - private static final ConfigurationManager SINGLETON = new ConfigurationManager(); - private LinkedHashMap notificationsConfiguration; - - private ConfigurationManager() { - initConfiguration(); - } - - public static ConfigurationManager getInstance() { - return SINGLETON; - } - - private void initConfiguration() { - YamlUtil yamlUtil = new YamlUtil(); - readConfigurationFromStream(yamlUtil, (filename, stream) -> { - if (stream == null) { - LOGGER.warn("Configuration not found: " + filename + ". Using defaults"); - return; - } - Map> configurationMap = yamlUtil.yamlToMap(stream); - if (configurationMap == null) { - LOGGER.warn("Configuration cannot be parsed: " + filename + ". Using defaults"); - return; - } - notificationsConfiguration = configurationMap.get(NOTIFICATIONS_CONFIG); - if (notificationsConfiguration == null) { - LOGGER.error(NOTIFICATIONS_CONFIG + " is missing in configuration file '" + filename + "'. Using defaults"); - } - }); - } - - private void readConfigurationFromStream(YamlUtil yamlUtil, BiConsumer reader) { - String configurationYamlFile = System.getProperty(CONFIGURATION_YAML_FILE); - try { - if (configurationYamlFile == null) { - try (InputStream inputStream = yamlUtil.loadYamlFileIs("/" + CONFIGURATION_YAML_FILE)) { - reader.accept(CONFIGURATION_YAML_FILE, inputStream); - } - } else { - try (InputStream inputStream = new FileInputStream(configurationYamlFile)) { - reader.accept(configurationYamlFile, inputStream); - } - } - } catch (IOException e) { - LOGGER.error("Failed to read configuration", e); - } - } - - public T getConfigValue(String name, T defaultValue) { - Object value = notificationsConfiguration.get(name); - try { - return value == null ? defaultValue : (T) value; - } catch (ClassCastException e) { - LOGGER.warn(String.format("Failed to read configuration property '%s' as requested type. Using default '%s'", name, defaultValue), e); - return defaultValue; - } - } -} diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/NotificationConfigurationManager.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/NotificationConfigurationManager.java new file mode 100644 index 0000000000..d1ef6ef823 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/NotificationConfigurationManager.java @@ -0,0 +1,40 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.openecomp.sdc.notification.config; + +import org.openecomp.sdc.common.CommonConfigurationManager; + +/** + * This class return a config manager dedicated to notification Yaml section. + * @see org.openecomp.sdc.common.CommonConfigurationManager + */ +public class NotificationConfigurationManager extends CommonConfigurationManager { + + private static NotificationConfigurationManager singletonInstance; + private NotificationConfigurationManager() { + super("notifications"); + } + public static synchronized NotificationConfigurationManager getInstance() { + if (singletonInstance == null) { + singletonInstance = new NotificationConfigurationManager(); + } + return singletonInstance; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/NotificationWorker.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/NotificationWorker.java index c69c4ca524..fcd131aa78 100644 --- a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/NotificationWorker.java +++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/NotificationWorker.java @@ -28,7 +28,7 @@ import java.util.function.Consumer; import org.apache.commons.collections4.CollectionUtils; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.notification.config.ConfigurationManager; +import org.openecomp.sdc.notification.config.NotificationConfigurationManager; import org.openecomp.sdc.notification.types.NotificationsStatusDto; public class NotificationWorker { @@ -45,7 +45,7 @@ public class NotificationWorker { private NewNotificationsReader news = null; public NotificationWorker(NewNotificationsReader news) { - ConfigurationManager cm = ConfigurationManager.getInstance(); + NotificationConfigurationManager cm = NotificationConfigurationManager.getInstance(); pollingSleepInterval = cm.getConfigValue(POLLING_INTERVAL, DEFAULT_POLLING_INTERVAL); selectionLimit = cm.getConfigValue(SELECTION_SIZE, DEFAULT_SELECTION_LIMIT); Objects.requireNonNull(news, "NotificationNews object is not initialized."); diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/impl/NewNotificationsReaderRestImpl.java b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/impl/NewNotificationsReaderRestImpl.java index 7f2390b38a..4fb7bcd32b 100644 --- a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/impl/NewNotificationsReaderRestImpl.java +++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/impl/NewNotificationsReaderRestImpl.java @@ -30,7 +30,7 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; -import org.openecomp.sdc.notification.config.ConfigurationManager; +import org.openecomp.sdc.notification.config.NotificationConfigurationManager; import org.openecomp.sdc.notification.types.NotificationsStatusDto; import org.openecomp.sdc.notification.workers.NewNotificationsReader; @@ -50,7 +50,7 @@ public class NewNotificationsReaderRestImpl implements NewNotificationsReader { private static int bePort; public NewNotificationsReaderRestImpl() { - ConfigurationManager cm = ConfigurationManager.getInstance(); + NotificationConfigurationManager cm = NotificationConfigurationManager.getInstance(); bePort = cm.getConfigValue(BE_PORT, DEFAULT_BE_PORT); beHost = cm.getConfigValue(BE_HOST, DEFAULT_BE_HOST); } diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml new file mode 100644 index 0000000000..cc04531c7c --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml @@ -0,0 +1,5 @@ +notifications: + pollingIntervalMsec: 3000 + selectionSize: 5 + beHost: localhost + beHttpPort: 8080 diff --git a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/onboarding_configuration.yaml b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/onboarding_configuration.yaml deleted file mode 100644 index cc04531c7c..0000000000 --- a/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/onboarding_configuration.yaml +++ /dev/null @@ -1,5 +0,0 @@ -notifications: - pollingIntervalMsec: 3000 - selectionSize: 5 - beHost: localhost - beHttpPort: 8080 -- cgit 1.2.3-korg