summaryrefslogtreecommitdiffstats
path: root/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl
diff options
context:
space:
mode:
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl')
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/AggregateConfiguration.java94
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java61
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java89
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java46
4 files changed, 134 insertions, 156 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/AggregateConfiguration.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/AggregateConfiguration.java
index e81d82bf7d..07c81e5f5b 100644
--- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/AggregateConfiguration.java
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/AggregateConfiguration.java
@@ -19,14 +19,17 @@ package org.onap.config.impl;
import static org.onap.config.Constants.LOAD_ORDER_KEY;
import java.io.File;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.configuration2.CombinedConfiguration;
import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.MergeCombiner;
import org.apache.commons.configuration2.tree.OverrideCombiner;
import org.apache.commons.configuration2.tree.UnionCombiner;
@@ -40,61 +43,61 @@ public final class AggregateConfiguration {
private final Map<String, Configuration> mergeConfig = Collections.synchronizedMap(new HashMap<>());
private final Map<String, Configuration> overrideConfig = Collections.synchronizedMap(new LinkedHashMap<>());
- public void addConfig(File file) throws Exception {
- addConfig(file.getAbsolutePath().toUpperCase(), ConfigurationUtils.getMergeStrategy(file),
- ConfigurationUtils.getConfigurationBuilder(file, false).getConfiguration());
+ public void addConfig(File file) throws ConfigurationException {
+ addConfig(fileToUrl(file), ConfigurationUtils.getMergeStrategy(file),
+ ConfigurationUtils.getConfigurationBuilder(file).getConfiguration());
}
- private void addConfig(String path, ConfigurationMode configMode, Configuration config) {
+ public void addConfig(URL url) throws ConfigurationException {
+ addConfig(url, ConfigurationUtils.getMergeStrategy(url),
+ ConfigurationUtils.getConfigurationBuilder(url).getConfiguration());
+ }
+
+ private void addConfig(URL url, ConfigurationMode configMode, Configuration config) {
+
+ String normalizedUrl = normalize(url);
if (configMode != null) {
switch (configMode) {
case MERGE:
- mergeConfig.put(path, config);
+ mergeConfig.put(normalizedUrl, config);
break;
case OVERRIDE:
- overrideConfig.put(path, config);
+ overrideConfig.put(normalizedUrl, config);
break;
case UNION:
- unionConfig.put(path, config);
+ unionConfig.put(normalizedUrl, config);
break;
default:
}
} else {
- rootConfig.put(path, config);
+ rootConfig.put(normalizedUrl, config);
}
}
- public void addConfig(URL url) throws Exception {
- addConfig(url.getFile().toUpperCase(), ConfigurationUtils.getMergeStrategy(url),
- ConfigurationUtils.getConfigurationBuilder(url).getConfiguration());
+ private String normalize(URL url) {
+ // what about Linux where paths are case sensitive?
+ return url.toString().toUpperCase();
}
- public void removeConfig(File file) {
- String key = file.getAbsolutePath().toUpperCase();
- if (rootConfig.containsKey(key)) {
- rootConfig.remove(key);
- } else if (mergeConfig.containsKey(key)) {
- mergeConfig.remove(key);
- } else if (unionConfig.containsKey(key)) {
- unionConfig.remove(key);
- } else if (overrideConfig.containsKey(key)) {
- overrideConfig.remove(key);
- }
- }
+ private URL fileToUrl(File file) {
- public boolean containsConfig(File file) {
- String key = file.getAbsolutePath().toUpperCase();
- return rootConfig.containsKey(key) || mergeConfig.containsKey(key) || unionConfig.containsKey(key)
- || overrideConfig.containsKey(key);
+ try {
+ return file.getAbsoluteFile().toURI().toURL();
+ } catch (MalformedURLException e) {
+ throw new IllegalStateException("URL produced by JDK and is not expected to be malformed. File: "
+ + file.getAbsoluteFile());
+ }
}
public Configuration getFinalConfiguration() {
+
CombinedConfiguration ccRoot = new CombinedConfiguration(new MergeCombiner());
ArrayList<Configuration> tempList = new ArrayList<>(rootConfig.values());
tempList.sort(this::sortForMerge);
for (Configuration conf : tempList) {
ccRoot.addConfiguration(conf);
}
+
CombinedConfiguration ccMergeRoot = new CombinedConfiguration(new MergeCombiner());
ccMergeRoot.addConfiguration(ccRoot);
tempList = new ArrayList<>(mergeConfig.values());
@@ -102,11 +105,13 @@ public final class AggregateConfiguration {
for (Configuration conf : tempList) {
ccMergeRoot.addConfiguration(conf);
}
+
CombinedConfiguration ccUnionRoot = new CombinedConfiguration(new UnionCombiner());
ccUnionRoot.addConfiguration(ccMergeRoot);
for (Configuration conf : unionConfig.values()) {
ccUnionRoot.addConfiguration(conf);
}
+
ArrayList<Configuration> tempOverrideConfigs = new ArrayList<>(overrideConfig.values());
Collections.reverse(tempOverrideConfigs);
tempOverrideConfigs.sort(this::sortForOverride);
@@ -114,31 +119,32 @@ public final class AggregateConfiguration {
for (Configuration conf : tempOverrideConfigs) {
ccOverrideRoot.addConfiguration(conf);
}
+
ccOverrideRoot.addConfiguration(ccUnionRoot);
return ccOverrideRoot;
}
private int sortForOverride(Configuration conf1, Configuration conf2) {
- String order1 = conf1.getString(LOAD_ORDER_KEY);
- String order2 = conf2.getString(LOAD_ORDER_KEY);
- if (ConfigurationUtils.isBlank(order1) || !order1.trim().matches("\\d+")) {
- order1 = "0";
- }
- if (ConfigurationUtils.isBlank(order2) || !order2.trim().matches("\\d+")) {
- order2 = "0";
- }
- return Integer.parseInt(order2.trim()) - Integer.parseInt(order1.trim());
+ return sort(conf1, conf2, (o1, o2) -> o2 - o1);
}
private int sortForMerge(Configuration conf1, Configuration conf2) {
- String order1 = conf1.getString(LOAD_ORDER_KEY);
- String order2 = conf2.getString(LOAD_ORDER_KEY);
- if (ConfigurationUtils.isBlank(order1) || !order1.trim().matches("\\d+")) {
- order1 = "0";
- }
- if (ConfigurationUtils.isBlank(order2) || !order2.trim().matches("\\d+")) {
- order2 = "0";
+ return sort(conf1, conf2, (o1, o2) -> o1 - o2);
+ }
+
+ private int sort(Configuration conf1, Configuration conf2, Comparator<Integer> comparator) {
+ int order1 = readLoadOrder(conf1);
+ int order2 = readLoadOrder(conf2);
+ return comparator.compare(order1, order2);
+ }
+
+ private int readLoadOrder(Configuration conf) {
+
+ String order = conf.getString(LOAD_ORDER_KEY);
+ if (ConfigurationUtils.isBlank(order) || !order.trim().matches("\\d+")) {
+ return 0;
}
- return Integer.parseInt(order1.trim()) - Integer.parseInt(order2.trim());
+
+ return Integer.parseInt(order.trim());
}
}
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java
index 77d0c11c9f..03b2075bac 100644
--- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/CliConfigurationImpl.java
@@ -19,24 +19,19 @@ package org.onap.config.impl;
import static org.onap.config.Constants.DEFAULT_NAMESPACE;
import static org.onap.config.Constants.DEFAULT_TENANT;
import static org.onap.config.Constants.LOAD_ORDER_KEY;
-import static org.onap.config.Constants.MBEAN_NAME;
import static org.onap.config.Constants.MODE_KEY;
import static org.onap.config.Constants.NAMESPACE_KEY;
-import java.lang.management.ManagementFactory;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.StandardMBean;
import org.onap.config.ConfigurationUtils;
import org.onap.config.api.ConfigurationManager;
import org.onap.config.api.Hint;
@@ -44,13 +39,10 @@ import org.onap.config.type.ConfigurationQuery;
public final class CliConfigurationImpl extends ConfigurationImpl implements ConfigurationManager {
+ private static final List<String> KEYS_TO_FILTER = Arrays.asList(NAMESPACE_KEY, MODE_KEY, LOAD_ORDER_KEY);
+
public CliConfigurationImpl() throws Exception {
- MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- ObjectName name = new ObjectName(MBEAN_NAME);
- if (mbs.isRegistered(name)) {
- mbs.unregisterMBean(name);
- }
- mbs.registerMBean(new StandardMBean(this, ConfigurationManager.class), name);
+ super();
}
public String getConfigurationValue(Map<String, Object> input) {
@@ -58,40 +50,51 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con
}
private String getConfigurationValue(ConfigurationQuery queryData) {
+
try {
+
+ Hint[] hints = getHints(queryData);
+
+ String[] value;
if (queryData.isFallback()) {
- return ConfigurationUtils.getCommaSeparatedList(
- get(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(), String[].class,
- queryData.isLatest() ? Hint.LATEST_LOOKUP : Hint.DEFAULT,
- queryData.isExternalLookup() ? Hint.EXTERNAL_LOOKUP : Hint.DEFAULT,
- queryData.isNodeSpecific() ? Hint.NODE_SPECIFIC : Hint.DEFAULT));
+ value = get(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(), String[].class, hints);
} else {
- String[] list =
- getInternal(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(), String[].class,
- queryData.isLatest() ? Hint.LATEST_LOOKUP : Hint.DEFAULT,
- queryData.isExternalLookup() ? Hint.EXTERNAL_LOOKUP : Hint.DEFAULT,
- queryData.isNodeSpecific() ? Hint.NODE_SPECIFIC : Hint.DEFAULT);
- return ConfigurationUtils
- .getCommaSeparatedList(list == null ? Collections.emptyList() : Arrays.asList(list));
+ value = getInternal(queryData.getTenant(), queryData.getNamespace(), queryData.getKey(), String[].class,
+ hints);
}
+
+ return ConfigurationUtils.getCommaSeparatedList(value);
+
} catch (Exception exception) {
exception.printStackTrace();
}
+
return null;
}
+ private Hint[] getHints(ConfigurationQuery query) {
+ List<Hint> hints = new ArrayList<>(Hint.values().length);
+ hints.add(query.isLatest() ? Hint.LATEST_LOOKUP : Hint.DEFAULT);
+ hints.add(query.isExternalLookup() ? Hint.EXTERNAL_LOOKUP : Hint.DEFAULT);
+ hints.add(query.isNodeSpecific() ? Hint.NODE_SPECIFIC : Hint.DEFAULT);
+ return hints.toArray(new Hint[0]);
+ }
+
private Object getInput(Map<String, Object> input) {
Object toReturn = null;
try {
+
toReturn = Class.forName(input.get("ImplClass").toString()).newInstance();
+
Method[] methods = toReturn.getClass().getMethods();
for (Method method : methods) {
if (input.containsKey(method.getName())) {
method.invoke(toReturn, input.get(method.getName()));
}
}
+
} catch (Exception exception) {
exception.printStackTrace();
}
@@ -104,16 +107,21 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con
}
private Map<String, String> listConfiguration(ConfigurationQuery query) {
+
Map<String, String> map = new HashMap<>();
+
try {
+
Collection<String> keys = getKeys(query.getTenant(), query.getNamespace());
for (String key : keys) {
map.put(key, getConfigurationValue(query.key(key)));
}
+
} catch (Exception exception) {
exception.printStackTrace();
return null;
}
+
return map;
}
@@ -122,13 +130,16 @@ public final class CliConfigurationImpl extends ConfigurationImpl implements Con
ArrayList<String> keys = new ArrayList<>();
try {
+
Iterator<String> iter = ConfigurationRepository.lookup().getConfigurationFor(tenant, namespace).getKeys();
while (iter.hasNext()) {
+
String key = iter.next();
- if (!(key.equals(NAMESPACE_KEY) || key.equals(MODE_KEY) || key.equals(LOAD_ORDER_KEY))) {
+ if (!KEYS_TO_FILTER.contains(key)) {
keys.add(key);
}
}
+
} catch (Exception exception) {
//do nothing
}
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 9a93801144..8f8a39d82c 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
@@ -16,6 +16,8 @@
package org.onap.config.impl;
+import static org.onap.config.ConfigurationUtils.isBlank;
+
import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
@@ -40,8 +42,6 @@ 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 ThreadLocal<String> TENANT = ThreadLocal.withInitial(() -> Constants.DEFAULT_TENANT);
-
private static final Object LOCK = new Object();
private static boolean instantiated = false;
@@ -55,8 +55,8 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
private void init() throws Exception {
- if (instantiated || !CliConfigurationImpl.class.isAssignableFrom(this.getClass())) {
- throw new RuntimeException("Illegal access to configuration.");
+ if (instantiated) {
+ return;
}
Map<String, AggregateConfiguration> moduleConfigStore = new HashMap<>();
@@ -76,7 +76,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
}
String configLocation = System.getProperty("config.location");
- if (configLocation != null && configLocation.trim().length() > 0) {
+ if (!isBlank(configLocation)) {
File root = new File(configLocation);
Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
Predicate<File> filePredicate = ConfigurationUtils::isConfig;
@@ -95,7 +95,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
}
String tenantConfigLocation = System.getProperty("tenant.config.location");
- if (tenantConfigLocation != null && tenantConfigLocation.trim().length() > 0) {
+ if (!isBlank(tenantConfigLocation)) {
File root = new File(tenantConfigLocation);
Collection<File> tenantsRoot = ConfigurationUtils.getAllFiles(root, false, true);
Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
@@ -122,7 +122,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
populateFinalConfigurationIncrementally(moduleConfigStore);
String nodeConfigLocation = System.getProperty("node.config.location");
- if (nodeConfigLocation != null && nodeConfigLocation.trim().length() > 0) {
+ if (!isBlank(nodeConfigLocation)) {
File root = new File(nodeConfigLocation);
Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false);
Predicate<File> filePredicate = ConfigurationUtils::isConfig;
@@ -201,16 +201,8 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
@Override
public <T> Map<String, T> populateMap(String tenantId, String namespace, String key, Class<T> clazz) {
- if (tenantId == null || tenantId.trim().length() == 0) {
- tenantId = TENANT.get();
- } else {
- tenantId = tenantId.toUpperCase();
- }
- if (namespace == null || namespace.trim().length() == 0) {
- namespace = Constants.DEFAULT_NAMESPACE;
- } else {
- namespace = namespace.toUpperCase();
- }
+ tenantId = calculateTenant(tenantId);
+ namespace = calculateNamespace(namespace);
Map<String, T> map = new HashMap<>();
Iterator<String> keys;
try {
@@ -234,21 +226,14 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
@Override
public Map generateMap(String tenantId, String namespace, String key) {
- if (tenantId == null || tenantId.trim().length() == 0) {
- tenantId = TENANT.get();
- } else {
- tenantId = tenantId.toUpperCase();
- }
- if (namespace == null || namespace.trim().length() == 0) {
- namespace = Constants.DEFAULT_NAMESPACE;
- } else {
- namespace = namespace.toUpperCase();
- }
+ tenantId = calculateTenant(tenantId);
+ namespace = calculateNamespace(namespace);
+
Map map;
Map parentMap = new HashMap<>();
Iterator<String> keys;
try {
- if (key == null || key.trim().length() == 0) {
+ if (isBlank(key)) {
keys = ConfigurationRepository.lookup().getConfigurationFor(tenantId, namespace).getKeys();
} else {
keys = ConfigurationRepository.lookup().getConfigurationFor(tenantId, namespace).getKeys(key);
@@ -257,11 +242,11 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
map = parentMap;
String k = keys.next();
- if (key != null && key.trim().length() != 0 && !k.startsWith(key + ".")) {
+ if (!isBlank(key) && !k.startsWith(key + ".")) {
continue;
}
String value = getAsString(tenantId, namespace, k);
- if (key != null && key.trim().length() != 0 && k.startsWith(key + ".")) {
+ if (!isBlank(key) && k.startsWith(key + ".")) {
k = k.substring(key.trim().length() + 1);
}
@@ -292,22 +277,17 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
}
- if (tenant == null || tenant.trim().length() == 0) {
- tenant = TENANT.get();
- } else {
- tenant = tenant.toUpperCase();
- }
- if (namespace == null || namespace.trim().length() == 0) {
- namespace = Constants.DEFAULT_NAMESPACE;
- } else {
- namespace = namespace.toUpperCase();
- }
- if ((key == null || key.trim().length() == 0) && !clazz.isAnnotationPresent(Config.class)) {
+ tenant = calculateTenant(tenant);
+ namespace = calculateNamespace(namespace);
+
+ if (isBlank(key) && !clazz.isAnnotationPresent(Config.class)) {
throw new IllegalArgumentException(KEY_CANNOT_BE_NULL);
}
+
if (clazz == null) {
throw new IllegalArgumentException("clazz is null.");
}
+
if (clazz.isPrimitive()) {
clazz = getWrapperClass(clazz);
}
@@ -351,8 +331,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
return null;
}
} else if (clazz.isAnnotationPresent(Config.class)) {
- return read(tenant, namespace, clazz, (key == null || key.trim().length() == 0) ? "" : (key + "."),
- hints);
+ return read(tenant, namespace, clazz, isBlank(key) ? "" : (key + "."), hints);
} else {
throw new IllegalArgumentException(
"Only primitive classes, wrapper classes, corresponding array classes and any "
@@ -364,6 +343,24 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
return null;
}
+ private static String calculateNamespace(String namespace) {
+
+ if (isBlank(namespace)) {
+ return Constants.DEFAULT_NAMESPACE;
+ }
+
+ return namespace.toUpperCase();
+ }
+
+ private static String calculateTenant(String tenant) {
+
+ if (isBlank(tenant)) {
+ return Constants.DEFAULT_TENANT;
+ }
+
+ return tenant.toUpperCase();
+ }
+
private <T> T read(String tenant, String namespace, Class<T> clazz, String keyPrefix, Hint... hints)
throws Exception {
Config confAnnotation = clazz.getAnnotation(Config.class);
@@ -448,11 +445,13 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
}
private <T> T getValue(Object obj, Class<T> clazz, int processingHint) {
+
if (obj == null || obj.toString().trim().length() == 0) {
return null;
} else {
obj = obj.toString().trim();
}
+
if (String.class.equals(clazz)) {
if (obj.toString().startsWith("@") && ConfigurationUtils.isExternalLookup(processingHint)) {
String contents = ConfigurationUtils.getFileContents(
@@ -535,9 +534,9 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration {
return (T[]) obj;
}
- private <T> Collection<T> convert(String commaSaperatedValues, Class<T> clazz, int processingHints) {
+ private <T> Collection<T> convert(String commaSeparatedValues, Class<T> clazz, int processingHints) {
ArrayList<T> collection = new ArrayList<>();
- for (String value : commaSaperatedValues.split(",")) {
+ for (String value : commaSeparatedValues.split(",")) {
try {
T type1 = getValue(value, clazz, processingHints);
if (type1 != null) {
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java
index 5b950d1af6..5863caef68 100644
--- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java
@@ -18,7 +18,6 @@ package org.onap.config.impl;
import java.io.File;
import java.sql.Timestamp;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -31,7 +30,6 @@ import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.FileBasedConfiguration;
import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
-import org.apache.commons.configuration2.ex.ConfigurationException;
import org.onap.config.ConfigurationUtils;
import org.onap.config.Constants;
@@ -105,29 +103,16 @@ public final class ConfigurationRepository {
}
public void populateOverrideConfiguration(String key, File file) {
+
ConfigurationHolder holder = store.get(key);
+
if (holder == null) {
holder = new ConfigurationHolder(new CombinedConfiguration());
store.put(key, holder);
}
- holder.addOverrideConfiguration(file.getAbsolutePath(), ConfigurationUtils.getConfigurationBuilder(file, true));
- populateTenantsNamespace(key);
- }
- public void refreshOverrideConfigurationFor(String key, int index) {
- ConfigurationHolder holder = store.get(key);
- if (holder != null) {
- holder.refreshOverrideConfiguration(index);
- }
- }
-
- public void removeOverrideConfiguration(File file) {
- for (String s : (Iterable<String>) new ArrayList(store.keySet())) {
- ConfigurationHolder holder = store.get(s);
- if (holder.containsOverrideConfiguration(file.getAbsolutePath())) {
- holder.removeOverrideConfiguration(file.getAbsolutePath());
- }
- }
+ holder.addOverrideConfiguration(file.getAbsolutePath(), ConfigurationUtils.getConfigurationBuilder(file));
+ populateTenantsNamespace(key);
}
private class ConfigurationHolder {
@@ -147,20 +132,6 @@ public final class ConfigurationRepository {
this.config = builder;
}
- public void refreshOverrideConfiguration(int index) {
- int count = -1;
- for (FileBasedConfigurationBuilder overrides : overrideConfiguration.values()) {
- try {
- if (++count == index) {
- overrides.save();
- overrides.resetResult();
- }
- } catch (ConfigurationException exception) {
- //do nothing
- }
- }
- }
-
public void addOverrideConfiguration(String path, BasicConfigurationBuilder<FileBasedConfiguration> builder) {
overrideConfiguration.put(path.toUpperCase(), (FileBasedConfigurationBuilder) builder);
getEffectiveConfiguration(config, overrideConfiguration.values());
@@ -181,15 +152,6 @@ public final class ConfigurationRepository {
}
}
- public void removeOverrideConfiguration(String path) {
- overrideConfiguration.remove(path.toUpperCase());
- getEffectiveConfiguration(config, overrideConfiguration.values());
- }
-
- public boolean containsOverrideConfiguration(String path) {
- return overrideConfiguration.containsKey(path.toUpperCase());
- }
-
public Configuration getConfiguration(String namespace) throws Exception {
if (config == null) {