summaryrefslogtreecommitdiffstats
path: root/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java')
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java31
1 files changed, 14 insertions, 17 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java
index 8f8a39d82c..c51c8621a9 100644
--- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java
@@ -21,6 +21,7 @@ import static org.onap.config.ConfigurationUtils.isBlank;
import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier;
import java.net.URL;
import java.util.ArrayList;
@@ -32,6 +33,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
+import org.apache.commons.configuration2.ex.ConfigurationException;
import org.onap.config.ConfigurationUtils;
import org.onap.config.Constants;
import org.onap.config.NonConfigResource;
@@ -42,22 +44,18 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
private static final String KEY_CANNOT_BE_NULL = "Key can't be null.";
- private static final Object LOCK = new Object();
+ private static final NonConfigResource nonConfigResource = new NonConfigResource();
- private static boolean instantiated = false;
+ static {
- public ConfigurationImpl() throws Exception {
-
- synchronized (LOCK) {
+ try {
init();
+ } catch (ConfigurationException e) {
+ throw new IllegalStateException("Failed to initialize configuration");
}
}
- private void init() throws Exception {
-
- if (instantiated) {
- return;
- }
+ private static void init() throws ConfigurationException {
Map<String, AggregateConfiguration> moduleConfigStore = new HashMap<>();
List<URL> classpathResources = ConfigurationUtils.getAllClassPathResources();
@@ -72,7 +70,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
moduleConfig.addConfig(url);
} else {
- NonConfigResource.add(url);
+ nonConfigResource.add(url);
}
}
String configLocation = System.getProperty("config.location");
@@ -90,7 +88,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
moduleConfig.addConfig(file);
} else {
- NonConfigResource.add(file);
+ nonConfigResource.add(file);
}
}
}
@@ -135,11 +133,9 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
}
}
-
- instantiated = true;
}
- private void populateFinalConfigurationIncrementally(Map<String, AggregateConfiguration> configs) {
+ private static void populateFinalConfigurationIncrementally(Map<String, AggregateConfiguration> configs) {
if (configs.get(Constants.DEFAULT_TENANT + Constants.KEY_ELEMENTS_DELIMITER + Constants.DB_NAMESPACE) != null) {
ConfigurationRepository.lookup().populateConfiguration(
@@ -362,7 +358,8 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
private <T> T read(String tenant, String namespace, Class<T> clazz, String keyPrefix, Hint... hints)
- throws Exception {
+ throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
+
Config confAnnotation = clazz.getAnnotation(Config.class);
if (confAnnotation != null && confAnnotation.key().length() > 0 && !keyPrefix.endsWith(".")) {
keyPrefix += (confAnnotation.key() + ".");
@@ -455,7 +452,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
if (String.class.equals(clazz)) {
if (obj.toString().startsWith("@") && ConfigurationUtils.isExternalLookup(processingHint)) {
String contents = ConfigurationUtils.getFileContents(
- NonConfigResource.locate(obj.toString().substring(1).trim()));
+ nonConfigResource.locate(obj.toString().substring(1).trim()));
if (contents == null) {
contents = ConfigurationUtils.getFileContents(obj.toString().substring(1).trim());
}