2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.fe.config;
23 import org.openecomp.sdc.common.api.BasicConfiguration;
24 import org.openecomp.sdc.common.api.ConfigurationListener;
25 import org.openecomp.sdc.common.api.ConfigurationSource;
26 import org.openecomp.sdc.common.api.FileChangeCallback;
27 import org.openecomp.sdc.common.config.EcompErrorConfiguration;
28 import org.openecomp.sdc.common.config.IEcompConfigurationManager;
29 import org.openecomp.sdc.common.rest.api.RestConfigurationInfo;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
33 import java.util.HashMap;
36 public class ConfigurationManager implements FileChangeCallback, IEcompConfigurationManager {
38 private ConfigurationSource configurationSource = null;
39 private static ConfigurationManager instance;
40 private static Logger logger = LoggerFactory.getLogger(ConfigurationManager.class.getName());
42 public ConfigurationManager(ConfigurationSource configurationSource) {
44 this.configurationSource = configurationSource;
45 loadConfigurationFiles();
49 private Map<String, Object> configurations = new HashMap<>();
51 private void loadConfigurationFiles() {
53 loadConfigurationClass(Configuration.class);
54 loadConfigurationClass(RestConfigurationInfo.class);
55 loadConfigurationClass(EcompErrorConfiguration.class);
56 loadConfigurationClass(PluginsConfiguration.class);
57 loadConfigurationClass(WorkspaceConfiguration.class);
61 private <T extends BasicConfiguration> void loadConfigurationClass(Class<T> clazz) {
62 ConfigurationListener configurationListener = new ConfigurationListener(clazz, this);
64 logger.info("created listener for class {}: {}", clazz.getName(), configurationListener);
66 T object = configurationSource.getAndWatchConfiguration(clazz, configurationListener);
68 configurations.put(getKey(clazz), object);
71 private <T> String getKey(Class<T> class1) {
73 return class1.getSimpleName();
77 public Configuration getConfiguration() {
79 return (Configuration) configurations.get(getKey(Configuration.class));
83 public RestConfigurationInfo getRestClientConfiguration() {
85 return (RestConfigurationInfo) configurations.get(getKey(RestConfigurationInfo.class));
90 public EcompErrorConfiguration getEcompErrorConfiguration() {
92 return (EcompErrorConfiguration) configurations.get(getKey(EcompErrorConfiguration.class));
96 public PluginsConfiguration getPluginsConfiguration() {
98 logger.info("requested plugins configuration and got this:{}", configurations.get(getKey(PluginsConfiguration.class)));
100 return (PluginsConfiguration) configurations.get(getKey(PluginsConfiguration.class));
104 public WorkspaceConfiguration getWorkspaceConfiguration() {
106 logger.info("requested plugins configuration and got this:{}", configurations.get(getKey(WorkspaceConfiguration.class)));
108 return (WorkspaceConfiguration) configurations.get(getKey(WorkspaceConfiguration.class));
112 public Configuration getConfigurationAndWatch(ConfigurationListener configurationListener) {
114 if (configurationListener != null) {
116 configurationSource.addWatchConfiguration(Configuration.class, configurationListener);
119 return (Configuration) configurations.get(getKey(Configuration.class));
123 public void reconfigure(BasicConfiguration obj) { }
125 public static ConfigurationManager getConfigurationManager() {
129 public static void setTestInstance(ConfigurationManager configurationManagerInstance) {
130 instance = configurationManagerInstance;