summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-notification-lib
diff options
context:
space:
mode:
authorsebdet <sebastien.determe@intl.att.com>2021-06-04 17:49:31 +0200
committerAndr� Schmid <andre.schmid@est.tech>2021-06-09 17:48:27 +0000
commit3fdd800133ad5f07aadc90f9731cca28e96896d9 (patch)
treec35caa9fbd5b529fd4e1e12fbf8708eb1e6d2830 /openecomp-be/lib/openecomp-sdc-notification-lib
parentc65578b5c01651975d218d81e0f4856746641298 (diff)
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 <sebastien.determe@intl.att.com> Change-Id: I44aeb3a4baf45753c3c43f7b4d202253ae4186eb
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-notification-lib')
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/pom.xml5
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/ConfigurationManager.java93
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/config/NotificationConfigurationManager.java40
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/NotificationWorker.java4
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/main/java/org/openecomp/sdc/notification/workers/impl/NewNotificationsReaderRestImpl.java4
-rw-r--r--openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml (renamed from openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/onboarding_configuration.yaml)0
6 files changed, 49 insertions, 97 deletions
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
@@ -15,6 +15,11 @@
<dependencies>
<dependency>
<groupId>org.openecomp.sdc.core</groupId>
+ <artifactId>openecomp-common-lib</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.sdc.core</groupId>
<artifactId>openecomp-utilities-lib</artifactId>
<version>${project.version}</version>
</dependency>
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<String, Object> 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<String, LinkedHashMap<String, Object>> 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<String, InputStream> 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> 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/onboarding_configuration.yaml b/openecomp-be/lib/openecomp-sdc-notification-lib/openecomp-sdc-notification-worker/src/test/resources/configuration.yaml
index cc04531c7c..cc04531c7c 100644
--- 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/configuration.yaml