diff options
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java')
-rw-r--r-- | common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationRepository.java | 21 |
1 files changed, 11 insertions, 10 deletions
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 132043d5b5..5b950d1af6 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 @@ -20,6 +20,7 @@ import java.io.File; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; @@ -38,10 +39,14 @@ public final class ConfigurationRepository { private static final ConfigurationRepository repo = new ConfigurationRepository(); - private final Set<String> tenants = new HashSet<>(); - private final Set<String> namespaces = new HashSet<>(); - private final LinkedHashMap<String, ConfigurationHolder> store = + private final Set<String> tenants = Collections.synchronizedSet(new HashSet<>()); + + private final Set<String> namespaces = Collections.synchronizedSet(new HashSet<>()); + + private final Map<String, ConfigurationHolder> store = Collections.synchronizedMap( + new LinkedHashMap<String, ConfigurationHolder>(16, 0.75f, true) { + @Override protected boolean removeEldestEntry(Map.Entry eldest) { try { @@ -51,7 +56,8 @@ public final class ConfigurationRepository { return false; } } - }; + }); + private ConfigurationRepository() { tenants.add(Constants.DEFAULT_TENANT); @@ -80,13 +86,8 @@ public final class ConfigurationRepository { } public Configuration getConfigurationFor(String tenant, String namespace) throws Exception { - ConfigurationHolder config; String module = tenant + Constants.KEY_ELEMENTS_DELIMITER + namespace; - config = store.get(module); - if (config == null) { - config = new ConfigurationHolder(new BasicConfigurationBuilder<>(AgglomerateConfiguration.class)); - store.put(module, config); - } + ConfigurationHolder config = store.get(module); return config.getConfiguration(tenant + Constants.KEY_ELEMENTS_DELIMITER + namespace); } |